「GTC 2015 - 巨大電波望遠鏡「SKA」でパルサーを見つける」の関連記事 |
---|
・【レポート】GTC 2015 - MPIを使ったマルチGPUのプログラミング「基礎編」 ・【レポート】GTC 2015 - MPIを使ったマルチGPUのプログラミング「高性能化編」 ・→ そのほかのGTC 2015の記事はコチラ |
「Square Kilometer Array(SKA)」は巨大な電波望遠鏡である。チリのAtacama高地に作られたALMA電波望遠鏡の全パラボラアンテナの受信面積の合計は約650平方メートルであるが、SKAはその名の通り、1平方キロメートルの受信面積を目指している。
当初は南アフリカとオーストラリアが誘致を競っていたが、SKA Midと呼ばれる350MHz~14GHzをカバーする部分は南アフリカ、SKA Lowと呼ばれる50MHz~350MHzをカバーする部分はオーストラリアに建設されることに決まった。
フェーズ1ではMidは33,000平方メートル、Lowは0.4平方キロメートルで1平方キロメートルという最終目標の半分弱となっている。フェーズ1の建設は2018年から2023年という計画になっており、部分的な運転による観測開始は2020年の予定になっている。
オーストラリアに建設されるSKA Lowは約13万台のアンテナを持ち、500カ所に処理ステーションを設ける。これらのアンテナからの生データは毎秒157TBに上り、年間に4.9ゼッタバイト(Zetta ByteはPeta Byteの1,000,000倍)という膨大な量になる。
超新星の残骸の高速回転するパルサー中性子星が、他の中性子星、あるいはブラックホールと連星になっている系では、強力な重力場が形成されているので、このような極限の環境でもアインシュタインの一般相対性理論が成り立っているかを検証することができる。このため、SKAで、連星のパルサーを見つけようとしている。
次の図は縦軸が時間で、横軸が周波数で、受信電波の強さが色で表されている。共通重心の周りをパルサーが回るので、地球に近づく方向に動いている時は、ドップラー効果で受信される周波数が高くなり、遠ざかる方向に動いているときは周波数が低くなる。このため、左側の図のように弧を描いて見える。このため、パルサー自体が出す電波を正しく測定するためには右の図のようになるように、回転の効果を補正する必要がある。
この回転による加減速の影響や電波が飛んでくる間に電子などとの相互作用で周波数が揺らぐ分散が起こるが、これがどれだけあるかは分からない。このため、これに210の加速度と212通りの分散を想定したデータを作って処理を行ってみて、一番もっともらしいデータがでる値を選ぶ。
サンプリング間隔は50μsで、7分間の受信で223(8M)回のサンプリングを行ってFFTを行う。これに加えて、加速と分散の想定が400万通りあるので、8M点のFFTを400万回計算する必要がある。さらにSKAは1本のビームではなく、1,111カ所を同時に観測できるマルチビームのアンテナであるので、システム全体では40億回あまりのFFTを計算しなければならない。
そして、FFT前の信号は右側の上の図のように、ノイズしか見えないが、下のFFT後の信号では、いくつかのピークが見えるようになる。しかし、この信号は基本波だけでなく、いくつもの高調波があるので、これらの合計を求める必要がある。
これらの計算量は膨大であるので、GPUを計算に使う予定であり、NVIDIAのK40Cを使って開発を行っているという。
電波の到着時刻の揺らぎを補正するリサンプルの部分は、メモリバウンドになる処理である。このリサンプルの部分は、チューニングの結果性能を1.6倍に改善したが、8M点のFFTと合わせた全体の性能改善は1.1倍に留まり、1回のFFTに1.58ms掛かっている。
高調波の合計の計算は、メモリアクセスが飛び飛びになり、メモリリミットで演算性能が出ない。これをコンパイラのアンロールが効くようにソースを書くことと、通常はアプリでは使えないL1キャッシュに読み出したグローバル変数を格納することで7倍に性能を向上したという。
結果として、Resample 8%、FFT 27%、Harmonic Sum 65%の実行時間比率であったのであるが、下記のように一番処理の複雑なFFTの時間が66%になった。そして、全体性能は最初のコードと比べて2.5倍になったが、まだ、450TFlopsである。メモリリミットなので、Pascalから採用されるHBMは性能向上に貢献しそうである。
SKA Midのデータをリアルタイムで解析するためには、分散を取り除くDedispersionで0.5ExaFlops、ResamplingとFFTで1.3ExaFlops、Harmonic Sumで0.5ExaFlops、その他0.1ExaFlopsで、合計2.4ExaFlopsの演算能力が必要という計算になる。稼働開始時期を考えると、これはTop500の1位に近い性能である。
この時期にはNVIDIAのVolta GPUが使え、1個のVoltaで実効6PFlopsが実現できるとすると、500ノード(ステーション)でそれぞれ2個のGPUがあれば良いと述べているが、6PFlopsは2~3桁楽観的な見通しではないかと思われる。