Advanced Cluster Systems SET

並列プログラミングを大幅に単純化!

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

SET導入のメリット!

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

SET 機能概要

並列化が容易に行える

ほとんどの科学的アルゴリズムはデータパラレルであり、並列化を施しやすくなっていますが、並列プログラミングには多くの落とし穴が待ち受けています。 例えば、MPI並列やマルチスレッディングコードを書く際に、多くのプログラマが期待したほどの性能が出ないことに悩まされます。
SETと他のツールとの決定的な違いは「プログラミングのしやすさ」にあります。
並列プログラミングをより簡単に、より早くし、すべてのマルチコアシステムで効率的に動作する、より良い並列コードの作成を実現します。
また、適切なGlue Codeを書くだけで、並列化されていない実行モジュール形式のアプリケーションを並列動作させることも可能です。
低レベルMPIタスクの取扱い
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() のような低レベルのルーティンが“Back End”(Model)であり、main() が“Front End”(View)に相当します。 “Front End”と“Back End”の間の接続するコードは“Glue Code”(Controller)です。プログラマはこの概念を理解して、“Glue Code”を分割し、SET APIを用いて変更し、SETの並列化層に接続することにより並列化を施すことができます。“Glue Code”の変更箇所は、通常はコード全体の極めて小さな割合であり、一般的な実アプリケーションの場合、全体の1%以下になります。

図2に示すように、コード例での変更個所はすべて“Glue Code”部分に限られ、一般的なアプリケーションでは“Front End”と“Back End”部分はほとんど変更されません。したがって、並列化作業を容易に、かつ迅速化し、プログラマの開発工数を大幅に削減することができ、“Front End”と“Back End”が並列化部分から分離されているため、メンテナンスが容易になります。これにより、SETを用いて並列化されたプログラムは、他の方法と比べるとはるかに存続性が高くなるというメリットがあります。

また、SETを適用したコードは任意のコンパイラでコンパイル可能です。さらに、単体のワークステーションあるいはネットワーク接続されているコンピュータには、クラスタリングソフトウエアやMPIライブラリがインストールされていないことが普通ですが、SETはクラスタリング管理ソフトウエアとSlimMPIライブラリ(ACS社版MPI)を標準で同梱していますので、このような環境でもSETを用いた開発と並列プログラムの実行が可能です。

並列タスクのためのハイレベルコールを準備
コレクティブ通信、分割統治法やガードセル管理などの一般的な並列タスクのための高レベルコールがAPIとして用意されているため、非常に簡単に並列化を施すことができます。
特別なコンパイラは不要
gccやその他の標準的はコンパイラとの互換性があるため、特別なコンパイラを必要としません。
追加ソフトウエア不要
並列実行用にセットアップされているコンピュータ以外(例えば、ネットワークに接続されている複数台のワークステーション)には、 クラスタリングソフトウエアやMPIライブラリがインストールされていないことが一般的ですが、SETはクラスタリング管理ソフトウエアとSlimMPI (ACS社版MPI)を標準で同梱していますので、 このような環境でもSETを用いた開発や開発した並列プログラムを実行することが可能です。

資料請求・お問い合わせ

ご希望の製品・ソリューションに関するお問い合わせはこちら。

お問い合わせはこちらから
資料請求・お問い合わせ

ご希望の製品・ソリューションに関するお問い合わせはこちら。

お問い合わせ