概要
ソースコードで配布されているソフトウェアをコンパイル・リンクして計算機上で問題なく動作可能とする行為を「ビルド」と呼んでいます。
今回、当社がビルドした Amber22 について、
- どのようなソフトウェア/機能を組み込んだのか
- どんなテストを行い、その結果はどうだったのか
- どんなトラブルがあったのか、どう解決したのか
をまとめたページを作成しました。こちらです。
ビルドを通じてお客様の力になります
C/C++ や Fortran のソースコードを自分でコンパイルしたことのある方にとっては、「わざわざビルドについて書くことなど何もないのでは?」と思われるかもしれません。実は、科学技術計算で用いられるソフトウェアのビルドの場合、
- 最新のバージョン
- 計算結果の精度
- 計算速度
- 動作の安定性
の全てを両立しようとすると、ハードルがいくつかあります。
今回の Amber のビルドにおいては、実際に以下のハードルがありました:
- CPU Parallelテストにおいて、出力結果のずれ(「file comparisons failed」の個数)が弊社規定数を超過した。
- GPU版をoneAPIでビルドするとリンクエラーが発生した。
- コンパイラを変更してビルドすると計算速度が低下した。
こうしたトラブルに対処するには、アプリケーション・ライブラリ・ドライバ・カーネルを広く見通しながら、情報を集めるために様々にビルド条件を変えて試行錯誤を行ってエラー原因を切り分け、エラーの解決策を調査・検討し、それを適用して問題が解決したことを確認する、ということを一つ一つ行う必要があります。
こうしたトラブル対処を迅速に行うには、ビルドに関する経験・コツが必要になってきます。そして、弊社は20年以上継続してビルドの経験を積んできた、トラブル対処に長けた技術者がビルドにあたっています。
ソフトウェアを使って研究や開発の成果をあげることが主目的のユーザーにとっては、こうしたビルドのトラブルに対処することは、本質的ではなく、できれば避けて通りたいところでしょう。そうしたとき、『餅は餅屋』、ぜひ弊社に頼っていただければと思います。
弊社では、こうしたビルドに関するトラブルに対処したバイナリを調製し、研究の基礎として安心してご活用いただけるように、問題無いバイナリであることを「バイナリ仕様書」という同梱ドキュメントでお示ししております。
ビルドを通じてお客様のお役に立てれば幸いです。