2016 年 3 月 14 日に英国 Allinea 社 (http://www.allinea.com) の製品管理部門の Vice President マーク・オコナー氏が来日され、Allinea 製品に関するセミナーが開催されました。 セミナー後、インタビューを引き受けていただけましたので iSUS の取材記事として、セミナーで紹介された内容をインタビューでお聞きしたもので補足して紹介したいと思います。 |
Allinea 社は創立 10 年を迎える比較的新しい企業ですが、主要な大規模 HPC システムの 80% で Allinea 社の開発ツールが活用されています。Top 10 では、中国の「天河」と日本の「京」では、残念ながら採用されていません。
現在の HPC 環境では、コード自身がハイパフォーマンスに対応していないケースも多く、マシン自身の性能向上に期待してきたケースも多くあります。しかし、それはプロセッサーのアーキテクチャーが変わる場合に問題として露見することになります。
HPC における 1 つの問題は、科学者とコンピューター・エンジニアの認識は別であり、科学者たちは、コードを 10 倍高速化するようなエンジニア、つまりヒーローを必要としています。実際の HPC 環境では、ヒーローよりも科学者が多数です。これらの科学者を支援するツールが必要となっています。
Allinea Forge*は、HPC に特化したヒーロー向けの製品と言えるでしょう。このスイートには、Allinea MAP*: プロファイラーと Allinea DDT*: デバッガーという 2 つのコア製品が含まれます。 |
|
Allinea MAP* はパフォーマンスをプロファイルするツールです。Windows* や Linux* デスクトップにインストールして、クラスターに SSH で接続して、アプリケーションを直接起動できます。最大の特徴はプロファイル情報を提供し、可視化できることです。ソースコードレベルで CPU の占有時間を表示したり、実際の実行時間と並列処理の時間を確認できます。また、オーバーヘッドも簡単に検知できます。パフォーマンス・データを収集するに際して、インストルメントや再コンパイルの必要はありません。すでに利用中の IDE に統合して利用できます。MAPは、軽量で、作成するデータも少なく、アプリケーションの実行に与える影響は最小限です。 |
Allinea DDT* も同様で IDE に統合できます。また DDT は、ソース・コントロールを理解し、変更点の反映をトラックできます。これはチームで作業する場合は、非常に有効です。DDT は、スレッド間で共有されるグローバルデータを動的に監視でき (トレースポイントの設定)、ベクトル化の有無も容易に確認できます。 |
Allinea Performance Reports* は、管理者向けのツールであり、パフォーマンス・サマリーを提供します。これにより、計算、通信、メモリーアクセス、IO 時間やボトルネックを識別できます。また、エネルギー消費も監視できます。ノード数、CPU 数、クロックなどをマップしたグラフの生成も可能です。 |
ユーザー (科学者) もこのような、ツールを活用することが重要です。ソースコードをベースに、小規模から大規模 (これまでの実績では 70 万コア) まで対応できます。
インテル社が提供するパフォーマンス・ツール (インテル® VTune™ Amplifier やインテル® Trace Analyzer & Collector) も、クラスターシステムのパフォーマンスの問題を深部まで追求できますが、Allinea のツールは、クラスターシステムの一般的な問題をより簡単に、そしてすぐに検出できるのが特徴です。 Allinea のツールで問題を特定したのち、さらに詳しく調査するには、インテル® VTune™ Amplifier やインテル® Trace Analyzer & Collector が有効でしょう。 |
|
また、Allinea ツールを活用する利点として、IA 以外のシステム (Power* や ARM* ベース) でも利用できるため、将来アーキテクチャーを変更したとしても新たにツールを導入し直す必要はありません。 それに、CUDA* やインテル® MIC を導入するヘテロジニアス・システムにも対応できます。 |
Q & A 集
どのようなジョブ・コントロールに対応していますか?
クラスター環境では、ジョブの投入とスケジュール管理のため、さまざまなジョブ・コントロールが利用されますが、Allinea のツールはそのほとんどに対応しています。現在、SLURM* 2.6.3+ と 14.03+、PBS*、TORQUE*、Moab*、Oracle Grid Engine*、Loadleveler* そして Cobalt* などで動作を確認しています。
Allinea 製品が対応する言語とプログラミング・モデルは?
現在 C/C++ と Fortran 言語に対応していますが、Python* は HPC 分野で需要が高まっているため将来のバージョンで対応予定です。また、OpenMPI* はもちろんですが、OpenMP*、OpenSHMEM (MPI 上で)、OpenCL* 、pthread* など主要な並列プログラミング・モデルに対応しています。DirectCompute* はすべて確認していませんが利用できるでしょう。
クラスター・アプリケーションの回帰テストに利用できますか?
MAP や REPORTS はコマンドライン版も用意されているため、毎回 GUI を起動することなくシステムやアプリケーションに変更を加えるたびにコマンドラインでデータを収集できます。
クラスターシステム以外もサポートする予定はありますか?
BIGDATA を扱う大規模システムもビジネスの可能性としては考えられますが、現在それに特化したパフォーマンス解析機能をサポートする予定はありません。科学者の皆さんからの要望が高まれば考えます。
インタビュー後、オコナー氏は次の訪問先であるシンガポールへ旅立っていきました。
編集後記: すでにインテル® Parallel Studio XE Cluster Edition をお使いの方には、ほとんどの機能はインテル社のソフトウェア開発製品でカバーできると思われるかもしれませんが、インテル社の製品がインテル® VTune™ Amplifier XE やインテル® Trace Analyzer & Collector などのように機能別に縦割りなのに対して、Allinea 社の製品はそれらが統合されたトップダウンから問題を見つけるのに適しているかもしれません。 おそらく、インテル® Advisor XE がクラスター対応に (もしなれば)、Allinea MAP に近い製品となるかもしれません。
Allinea 社の製品に関する問い合わせは、こちらへ。
インタビュアー: 編集長すがわら