SIMDでQuicksortを一気に速くしたGoogleの話
Google Open Source Blogが伝えたのは、数字の配列をかなり速く並べ替える公開コードだ。しかも速いだけではなく、Intel、Arm、RISC-V といった複数のCPUで動く「portable」な実装だという点が面白い。ソートは地味に見えるが、データベースや分析処理の土台になるので、ここが速くなると上の層まで効いてくる。この記事は、単なる性能自慢ではなく、「どうやってそんな差を出したのか」をかなり具体的に説明している。 元記事は、数値配列をソートするオープンソースコードを公開したという話から始まる。そのコードは C++ の `std::sort` より約10倍速く、しかも「最先端のアーキテクチャ専用アルゴリズム」を上回ると説明している。ところが、ここで強調されているのは単純な高速化ではない。AVX-512専用、Arm専用といった一発芸ではなく、現代の主要CPUアーキテクチャのあいだでそのまま持ち運べる実装であることだ。 背景にあるのは、最近の columnar database の流れだ。これは行ごとに全部を並べるのではなく、同じ列の値をまとめて保存する方式で、SQLク
papoo.work