Advanced Cluster Systems SET

  • HPC/高性能計算

SET(Supercomputing Engine Technology)は並列プログラミングを大幅に単純化する、MPI(Message Passing Interface)ベースのライブラリです。80近いAPIから構成されており、非常にカンタンにプログラムを並列化できます。

SETは
カンタン・スピーディに並列化を実現し
開発コストの低減・高性能アプリケーションの
早期市場投入できます

MPIはハイパフォーマンス・コンピューティングための最も有力なプログラミングモデルですが、
並列アプリケーションを書く場合には、MPIに必要なプロセス間通信やプロセス間同期などの、低レベルタスクを管理するコードを書く必要があり、膨大な時間と専門知識が必要になります。SETには低レベルタスクを管理するためのAPIが装備されていますので、
プログラマの開発工数を大幅に削減することができます。

カンタン・スピーディにマルチコアシステムで効率的に動作する
より良い並列コードの作成を実現します

ほとんどの科学的アルゴリズムはデータパラレルであり、並列化を施しやすくなっていますが、並列プログラミングには多くの落とし穴が待ち受けています。例えば、MPI並列やマルチスレッディングコードを書く際に、多くのプログラマが期待したほどの性能が出ないことに悩まされます。SETと他のツールとの決定的な違いは「プログラミングのしやすさ」にあります。
並列プログラミングをよりカンタン、よりスピーディに、すべてのマルチコアシステムで効率的に動作する、より良い並列コードの作成を実現します。また、適切なGlue Codeを書くだけで、並列化されていない実行モジュール形式のアプリケーションを並列動作させることもできます。

低レベルMPIタスクを管理するAPIによって
並列アプリケーションをスピーディに作成できます

SETにはプロセス間通信・プロセス間同期・データ分割・データ分配・プロセッサーへのプロセスマッピングなど、低レベルMPIタスクを管理するためのAPIが含まれているためソフトウェアを開発する必要がありません。プログラマは、コードのどの部分にSETを適用するか、の判断に集中できるため、大幅に手間を軽減し、並列アプリケーションをスピーディに作成できます。

オリジナルコードを崩す必要がないため
すべての更新・改良がスピーディに適用できます

一般的な高性能ソフトウエア開発のワークフローは単一のCPUで良好に動作する効率的な逐次処理コードを設計し、それを並列化のために崩すという手順で行われますが、MPIを用いたソフトウエア開発は難解で、コードの大規模な再構築が必要になります。SETを利用すれば、並列化を施すために逐次処理コードを崩す必要がないため、すべての更新・改良を逐次処理版でスピーディに適用・テストし、SETを使った新しいモジュールを古いものと入れ替えれば直ちに並列版に対して更新・改良が適用できます。

SETの並列化アプローチの詳細(モジュール方式の認識・活用)

最新のソフトウエアはモジュール方式になっており、それらのほとんどが“Model-View-Controller”(MVC)と呼ばれ、広く使用されている概念にのっとっています。多くの場合、プログラマが実質的にMVCという用語を知らなくても、その概念通りになっていることがあります。
図1の左側のように、すべてのコードは最上段に示されているmain()またはそれと同等な部分を持ち、main()以下に書いてあるdeposit()、push()、updateField()のような、重い処理を実際に行うサブルーティン群を持っています。これらのコードはdoLoop()のように、処理サブルーティンを繰り返し呼び出すサブルーティンを持ち、そのループはmain()から呼び出されます。
図1の右側に示すように、deposit()、push()、updateField() のような低レベルのルーティンが“BackEnd”(Model)であり、main() が“Front End”(View)に相当します。“Front End”と“BackEnd”の間の接続するコードは“Glue Code”(Controller)です。プログラマはこの概念を理解して、“Glue Code”を分割し、SET APIを用いて変更し、SETの並列化層に接続することにより並列化を施すことができます。“Glue Code”の変更箇所は、通常はコード全体の極めて小さな割合であり、一般的な実アプリケーションの場合、全体の1%以下になります。

図2に示すように、コード例での変更個所はすべて“Glue Code”部分に限られ、一般的なアプリケーションでは“Front End”と“BackEnd”部分はほとんど変更されません。したがって、並列化作業を容易に、かつ迅速化し、プログラマの開発工数を大幅に削減することができ、“Front End”と“BackEnd”が並列化部分から分離されているため、メンテナンスが容易になります。これにより、SETを用いて並列化されたプログラムは、他の方法と比べるとはるかに存続性が高くなるというメリットがあります。
また、SETを適用したコードは任意のコンパイラでコンパイル可能です。さらに、単体のワークステーションあるいはネットワーク接続されているコンピュータには、クラスタリングソフトウエアやMPIライブラリがインストールされていないことが普通ですが、SETはクラスタリング管理ソフトウエアとSlimMPIライブラリ(ACS社版MPI)を標準で同梱していますので、このような環境でもSETを用いた開発と並列プログラムの実行が可能です。

SETはクラスタリング管理ソフトウェアとSlimMPIを標準同梱しているため
ソフトウェアの追加不要です

並列実行用にセットアップされているコンピューター以外(ネットワークに接続されている複数台のワークステーションなど)には、クラスタリングソフトウエアやMPIライブラリがインストールされていないことが一般的ですが、SETはクラスタリング管理ソフトウエアとSlimMPI(ACS社版MPI)を標準で同梱していますので、このような環境でもSETを用いた開発や開発した並列プログラムを実行することが可能です。

製品やソリューションについて、
お気軽にお問い合わせください。