ソフトウェアセットアップの職人技、「ビルド」
ソースコード配布されている科学技術計算ソフトウェアをサーバー/ワークステーションで高速に動作可能にするには適切に「ビルド」する必要があり ます。これは、-O3といった最適化オプションを使うだけに留まりません。最適化を攻めつつも数値精度を遵守するように数値表現の粗さを調節したり、 動作試験をして異常が見られたら原因を推定してコンパイラやライブラリを見直すといった、繊細で、経験がものを言う作業です。弊社では、長年の経験 でこの職人技を身に着けた、高性能と高品質に徹底したこだわりをもつ技術陣が、お客様の安定した計算環境を支えます。
確かな技術
20年以上継続してビルドの経験を積んできた、トラブル対処に長けた技術者達
納品時は動作試験を実施
実際に動作試験を行い、必要な数値精度と最高速度を両立するバイナリを編み出して納品します
ターンキー(TURNKEY)
システムごとの構成に合わせてバイナリと起動用スクリプトを調製、確実に動作する一式をご提供します
Case
必要な数値精度と計算速度を両立
VASP 6.3.1ではAVX-512を活用して高速化したかったのですが、コ ンパイルオプションを色々振ってみても、どうやっても数値精度 がNGになりました。そのため数値精度と計算速度を両立できる AVX2バイナリを採用しました。
エラー対処に手間のかかるアプリのビルドもお任せ
LAMMPSでは外部ライブラリの最新バージョンを常に使用できるとは限りません。例えばpaceの v2021.10.25はLAMMPSで使う場合に致命的なバグがある為、v2021.4.9を採用しました。vtkでは9.1は互換 性に問題があり、LAMMPSのビルド手順に手を加えて8.2を採用しました。こうした動作チェックやトラブ ル対処を弊社が代わりに実施することで、お客様は研究と計算に集中できます。
安定したコンパイラバージョンを注意深く選定
弊社ではコンパイラを使うとき、マイナーバージョンの違いであっても、まず、HPL等で過去のバージョン との違いを調べ、さらに多数のプログラムを実際にコンパイルして動作をチェックし、異常挙動や不安定な 動作になりがちなバージョンを排除しています。例えばifort 17は、様々なプログラムで相性問題が生じた ため不採用としました。他にも、ifortのOpenMPの仕様が19.0と19.1とで異なっており、古い仕様のOpenMP を扱うアプリではエラーとなるためOpenMPを無効にしたビルドを行う対応を行いました。
対応実績
Publications
弊社の業務に関連し、弊社技術者が関わった論文や研究発表等の一部をご紹介いたします。
Tech Blog
HPCシステムズのエンジニア達による技術ブログです。