2019年3月18日に広島大学で第3回HPC-Phys 勉強会が開催されました。この勉強会は計算基礎科学連携拠点(JICFuS)およびポスト「京」重点課題9「宇宙の基本法則と進化の解明」の主催です。これは物理に軸足を置きつつ数値計算を活発に行っている研究者が集まり、計算の技術的な側面を議論する集まりの3回目です。
午前中は前回同様、GPU のチュートリアルを行ないました。GPU を用いてプログラムを高速化する実習です。今回は、前回に時間不足で消化不良になってしまった CUDA を用いた方法を取り上げました。
午後は、多倍長精度計算と乱数に関するトピックを集めました。数学的には実数は小数点以下無限桁あります(たとえば 2 は 2.000・・・と0が無限に続きます)。ですが計算機では有限桁しか扱えません。単精度浮動小数点数で約7桁、倍精度浮動小数点数で約15桁で、精度が必要な計算では桁数が足りないことがあります。
一つめの講演は、線形演算ライブラリ Lapack の倍精度から多倍長精度への拡張に関する話です。多倍長精度 Lapack の開発者である中田真秀さんが様々な多倍長精度精度計算のライブラリの紹介からはじめて、多倍長精度 Lapack のビルド、現在実装されてる関数やその実装方法に関する話をしてくださりました。計算精度が重要になる計算に、粒子の時間発展を追いかける(=運動方程式の積分)ものがあります。精度が足りなかったり不適切な数値積分法を用いると、たとえばエネルギー保存則を満たさない解になってしまいます。似鳥啓吾さんの講演では、積分公式の精度に焦点をあてた話がありました。
さて、シミュレーションでは乱数が必要になることがよくあります。たとえば粒子の初期位置・初期速度は(然るべき分布に従った)乱数で決める、というような場合です。計算機の上では、決定論的なアルゴリズムに基づいて生成する疑似乱数を用います。(疑似)乱数に関わる数学の専門家である松本眞さん・斎藤睦夫さん(発表者は斎藤さん)には、松本さんたちが開発した疑似乱数生成アルゴリズム(メルセンヌ・ツイスター法)やその周辺の話題を取り上げていただきました。その後、石川健一さんからは、格子QCDシミュレーションにおける乱数利用や、計算精度に関する話がありました。
いずれの講演も途中に多くの質問が出て活発な議論がなされました。また今回は試験的にテレビ会議システムでつないで早稲田大学にリモート会場を設けました。参加人数は広島会場が39名で早稲田会場は4名の計43名でした。
勉強会後の懇親会は、格子QCDのシミュレーション分野で長年活躍され3月で広島大学を定年となる大川正典さんを囲んで和やかに行われました。
世話人の一人で会の発起人である金森さんからは「アルゴリズムやライブラリの開発者と利用者が顔を合わせて議論する貴重な機会になりました。講演者の皆様、参加者の皆様、またチュートリアルを引き受けて下さった青山さんに感謝します。」とコメントをいただきました。
講演資料やGPU チュートリアルでの配布資料は勉強会 web site
http://hpc-phys.kek.jp/
をご参照ください。
関連リンク