■PCクラスタに関する質問
A1.PCクラスタとは何ですか?
A2.PCクラスタミドルウェアとは何ですか?
A3.WindowsベースのPCクラスタは、LinuxベースのPCクラスタと何が違いますか?
A4.PCクラスタでは、パソコンの台数分だけプログラムを高速化することができますか?
A5.マルチCPU(コア)を採用しようか、PCクラスタを採用しようか迷っているのですが?
A6.アプリケーションをPCクラスタに移植するには、ソースコードが必須ですか?
■HarmonyCalcに関する質問
B1.HarmonyCalcで何ができますか?
B2.HarmonyCalcを使うと、今まで使っていたアプリケーションがPCクラスタで動作するのですか?
B3.HarmonyCalcの応用分野は?
B4.スレッドAPIと比べ、HarmonyCalcにはどのような長所・短所がありますか?
B5.MPIと比べ、HarmonyCalcにはどのような長所・短所がありますか?
B6.OpenMPや並列コンパイラと比べ、HarmonyCalcにはどのような長所・短所がありますか?
B7.HarmonyCalcは市販のPCクラスタで動作しますか?
B8.HarmonyCalcは、パソコンの故障を検知したり、自動的に切り分けたりすることはできますか?
B9.HarmonyCalcは、MyrinetなどEthernet以外のネットワークに対応していますか?
B10.HarmonyCalcには、セキュリティ上の問題はありませんか?
B11.HarmonyCalcを試用してみたいのですが?
B12.HarmonyCalc試用版の使い方がよくわからないのですが?
■HarmonyCalcでのプログラミングに関する質問
C1.セッションモデルとは何ですか? セッションとは何ですか?
C2.単独のパソコンとPCクラスタの両方で動作するプログラムを作ることはできますか?
C3.HarmonyCalcは、どの開発言語に対応していますか?
■HarmonyCalcのサポートに関する質問
D1.HarmonyCalcにプログラムを移植して欲しいのですが?
D2.HarmonyCalcのユーザ会はありますか?
D3.HarmonyCalcの教育プログラムはありますか?
D4.自社開発のアプリケーションにHarmonyCalcをOEMで組み込みたいのですが?
■PCクラスタの製作に関する質問
E1.メーカ製のPCクラスタを買うのと、自作するのとどちらがいいですか?
E2.PCクラスタを製作して欲しいのですが?
E3.何台のパソコンを用意すればいいのか知りたいのですが?
E4.PCクラスタを製作するために推奨する機器はありますか?
E5.ブレードサーバで動作しますか?
E6.パーソナルクラスタで動作しますか?
E7.マルチCPU(コア)のパソコンで動作しますか?
E8.64ビットのOSで動作しますか?
E9.Windows CCSで動作しますか?
| A1.PCクラスタとは何ですか? |
| 複数のパソコンをネットワークで相互に接続し、一つの計算処理を行うことができるようにしたものです。特にWindowsをOSとするものを「Windowsクラスタ」と呼びます。Windowsクラスタは、低価格で親しみやすく、ソフトウェアが作りやすいという、きわめて大きなメリットを持っています。 |
▲「よくある質問」に戻る
| A2.PCクラスタミドルウェアとは何ですか? |
| PCクラスタ用のアプリケーションを簡単に開発するためのソフトウェアです。PCクラスタ用のアプリケーションには、本来行うべき処理だけでなく、処理を分散させるために必要となる各種の付加的な処理を実装する必要があります。たとえば素材データや結果データの分配・回収、各種の指示や通知の送受信などです。これらの付加的な処理は、アプリケーションが行う処理によらず必要になるものです。そこでこれらの処理を一つのソフトウェアにまとめて実装し、各種のアプリケーションから利用することができるようにしておけば、PCクラスタ用のアプリケーションの開発が容易になります。このようなソフトウェアのことを「PCクラスタミドルウェア」と呼びます。
|
▲「よくある質問」に戻る
| A3.WindowsベースのPCクラスタは、LinuxベースのPCクラスタと何が違いますか? |
| 多くのLinuxベースのPCクラスタが性能の追求を指向しているのに対し、HarmonyCalcは性能よりも、むしろアプリケーションの開発・移植しやすさを重視していて、この違いがオペレーティングシステムの違いになっています。一定の費用で最高の性能を得る目的からすると、基本的に無償なので、ソフトウェアの購入費用を節約してパソコンの購入に充てることのできる、またオープンソースなので、高度なチューニングを行ってオペレーティングシステムのオーバヘッドを極力排除することのできるLinuxは有利なのです。多くのLinuxベースのPCクラスタは、高い性能を実現するために「密結合」、つまりオペレーティングシステムのレベルでメッセージをやり取りすることで並列動作を行う構成になっています。しかしこの方法では、アプリケーションの開発にノウハウが必要であり、また以後に行われる処理の予測ができない対話処理への対応も簡単ではありませんでした。これに対してHarmonyCalcでは、オペレーティングシステムに普及しているWindowsを採用し、また「疎結合」、つまりアプリケーションデータのレベルでコマンド・データをやり取りする構成としました。これにより、対話処理を含む各種のアプリケーションを簡単に移植することができるようになっています。 |
▲「よくある質問」に戻る
| A4.PCクラスタでは、パソコンの台数分だけプログラムを高速化することができますか? |
いいえ。通常PCクラスタでの処理は、データの配布・収集と、処理の並列実行の二つを含んでいます。このうち後者にかかる時間はパソコンの台数に反比例して短縮されるのですが、前者にかかる時間はパソコンの台数が増えるとかえって長くなってしまいます。その結果、処理時間が最も短くなるパソコンの台数が存在することになり、それ以上にパソコンの台数を増やしても、処理時間は短縮されません。PCクラスタの性能は、並列処理手順、データのサイズ、単独のパソコンが処理に要する時間、個々のパソコンの性能のばらつき、ネットワーク機器の伝送速度などによって大きく変化します。並列処理手順が複雑な場合には、高速化の程度を簡単に予想することはできません。しかし一般的な傾向として、次のようなことが言えます。
|
| 1 |
パソコンの台数が多すぎると、データの伝送に時間がかかるようになり、かえって動作が遅くなります。処理に対して最適な台数が存在します。 |
| 2 |
データのサイズが小さく、単独のパソコンが処理に要する時間が長いほど、顕著に高速化することができます。 |
| 3 |
パソコンの性能にばらつきがあると、最も性能の低いパソコンによってPCクラスタ全体の性能が左右されます。 |
|
パソコンの最適な台数を見積もる方法については、E2をご覧ください。 |
▲「よくある質問」に戻る
| A5.マルチCPU(コア)を採用しようか、PCクラスタを採用しようか迷っているのですが? |
HarmonyCalcバージョン3では、同じアプリケーションをマルチCPU(コア)のパソコンと、PCクラスタで動作させることができますから、技術的にはどちらか片方を選択する必要はありません。しかしWindowsには、マルチCPU(コア)の処理能力を引き出すためのマルチスレッド機能がすでに備わっているので、Windowsに詳しい方ならHarmonyCalcを使わなくても、安価にマルチスレッド対応のアプリケーションを作ることができます。一方HarmonyCalcなら、将来マルチCPU(コア)では処理能力が足りなくなり、PCクラスタを使わなければならなくなった時に、アプリケーションを修正する必要がほとんどありません。目的とする処理が最終的にどのくらいの処理能力を必要とするかを判断し、1台のパソコンの能力で不足する可能性があるのならHarmonyCalcを選択するのが賢明でしょう。
なお最適化コンパイラを使った並列化は、比較的下位の(OS寄りの)層での並列化を実現する手法であるのに対し、PCクラスタは上位の(アプリケーション寄りの)層での並列化を実現する手法です。したがってこれらの技術は競合するものではなく、兼用することによって両方の手法による効果をともに享受することができます。 |
▲「よくある質問」に戻る
| A6.アプリケーションをPCクラスタに移植するには、ソースコードが必須ですか? |
| 多くの場合には必須です。しかし他のプログラムから機能を呼び出して使用するためのインタフェースを持っていたり、パラメータやスイッチを指定して動作を細かくカスタマイズすることができたり、基本的な機能がライブラリとして公開されていたりするアプリケーションの場合、ソースコードを修正しなくてもPCクラスタで動作させることができる可能性があります。 |
▲「よくある質問」に戻る
| B1.HarmonyCalcで何ができますか? |
| WindowsベースのPCクラスタや、マルチCPU・マルチコアのパソコンの上で動作するアプリケーションを簡単に開発することができます。HarmonyCalcは特に、アプリケーションの開発しやすさに重点を置いて設計されており、既存のアプリケーションの移植もしやすくなっています。詳しくは特長をご覧ください。 |
▲「よくある質問」に戻る
▲「よくある質問」に戻る
| B3.HarmonyCalcの応用分野は? |
HarmonyCalcには、次のような広い応用分野があります。パソコンで行っている処理の高速化が必要なら、多くの場合にHarmonyCalcがお役に立ちます。
|
| 金融・流通・経済 |
金融シミュレーション、資産評価、投資計画に
マーケティングに
マーチャンダイジング(品揃え計画)に
データマイニング(統計分析)に |
| 土木・建築・社会 |
交通シミュレーションに
災害シミュレーション、防災計画に
景観シミュレーションに
測量に
防犯警備に |
| ものづくり |
構造シミュレーションに
熱流体シミュレーションに
音響シミュレーションに
電磁気シミュレーションに
生産管理、品質検査に
機械装置制御に |
| 医療・福祉 |
医療画像処理、画像診断に
治療計画に
創薬に |
| アート・コンテンツ |
CG(コンピュータグラフィックス)作成に
アニメーション作成に
ウェブコンテンツ作成に |
| 研究・教育 |
アルゴリズム(計算処理手法)に
開発ソフトウェアテストに
コンピュータ教育に |
|
|
▲「よくある質問」に戻る
| B4.スレッドAPIと比べ、HarmonyCalcにはどのような長所・短所がありますか? |
スレッドAPIは、OSに付属しているネイティブな機能です。スレッドAPIだけを使って並列アプリケーションを作るのであれば、OS以外のものが必要ありません。また開発に必要な技術情報も得やすいでしょう。
しかしスレッドAPIには、HarmonyCalcのようなスケジューリング機能、ノード管理機能、データ管理機能が用意されていません。そのためスケジューラや、ノード・データを管理する仕組みを自作しなければなりません。また複数のコンピュータで構成されるPCクラスタで動作させる場合には、通信を行う仕組みやプロトコルも自作しなければなりません。さらにマルチスレッドプログラミングでは、デッドロックやスタベーションといった固有の問題が発生しやすく、ソースコードも読みにくくなりがちです。問題を起こさず安定に動作し、ソースコードも読みやすい並列アプリケーションを開発するには、非常に高いスキルが必要です。 |
▲「よくある質問」に戻る
| B5.MPIと比べ、HarmonyCalcにはどのような長所・短所がありますか |
MPI(message passing interface)は、OSの内部コマンドとして使われている「メッセージ」を、ネットワークを介して他のコンピュータに伝送する仕組みです。OSはメッセージを、きわめて高速に処理することができます。そのためMPIを使えば、非常に高性能の並列アプリケーションを作ることができます。
しかしMPIには、HarmonyCalcのようなスケジューリング機能、ノード管理機能、データ管理機能が用意されていません。そのためスケジューラや、ノード・データを管理する仕組みを自作しなければなりません。またメッセージやスレッドを扱うことによる固有の問題が発生しやすく、多くの場合にソースコードも非常に読みにくくなります。テスト・デバッグにも骨が折れます。MPIは、非常に高いスキルとノウハウを持っている開発者のための手法だと考えてもいいでしょう。 |
▲「よくある質問」に戻る
| B6.OpenMPや並列コンパイラと比べ、HarmonyCalcにはどのような長所・短所がありますか? |
OpenMP(open multi-processing)は、ソースコードに特別なコンパイラ指令を埋め込んでおき、並列コンパイラを使ってコンパイルすることで、自動的に並列化を行うものです。この方法では、プログラムのテスト・デバッグが非常に簡単で、ソースコードの読みやすさもほとんど損なわれません。
しかしOpenMPにも難点があります。開発言語がC・C++とFortranに限られており、また一部のコンパイラしか対応していないので、他の言語や開発環境で作られたアプリケーションを並列化する場合には全面的な作り直しが必要になります。またメモリ形式のデータを個々のスレッドに共有させることはできますが、ファイル形式のデータを扱う機能が用意されていないので、そのようなデータを扱う場合には管理・伝送を行う仕組みを自作しなければなりません。クラスタに対応したCluster
OpenMPもありますが、クラスタに対応していないOpenMPとの互換性はあまり高くないので、HarmonyCalcのようにシームレスな移植はできません。 |
▲「よくある質問」に戻る
▲「よくある質問」に戻る
| B8.HarmonyCalcは、パソコンの故障を検知したり、自動的に切り分けたりすることはできますか? |
| 現状のHarmonyCalcは自動的に故障したパソコンを切り分けることはできません。しかしパソコンの故障を検知することと、アプリケーションの実装によって故障したパソコンを切り分けることは可能です。故障が発生した場合、発生する例外のメッセージにパソコンのIPアドレスが含まれていますので、これを使って故障したパソコンを特定することができます。またHarmonyCalcの機能を使うと、以後はそのノード(パソコン)を使わないようにすることができます。 |
▲「よくある質問」に戻る
▲「よくある質問」に戻る
| B10.HarmonyCalcには、セキュリティ上の問題はありませんか? |
| PCクラスタの構成や運用によっては、セキュリティが問題になることがあります。PCクラスタはその原理上、他のパソコンにプログラムを送り込み、それを実行させる仕組みを持っています。そのため悪意を持った人の手にかかると、PCクラスタを構成しているすべてのパソコンを壊すこともできてしまいます。 これを避けるため、弊社ではPCクラスタを専用に用意し、しっかりしたユーザ管理のもとで、インターネットから切り離して運用する方法を推奨しています。 |
▲「よくある質問」に戻る
▲「よくある質問」に戻る
▲「よくある質問」に戻る
| C1.セッションモデルとは何ですか? セッションとは何ですか? |
セッションモデルとは、HarmonyCalcが持っている、並列処理を実現する仕組みのことです。並列プログラムを作るには、個々のノードの状態を監視したり、複数のノードを同期させたり、ノードを動作させる順番を決めたり、他のノードに指示を出したり、他のノードから通知を受けたりするために、本来行うべき処理に加えて付加的な処理をいくつも用意しなければなりません。これまではプログラムごとに付加的な処理を作成して実装していましたが、これは非常に煩雑な作業でした。これに対してHarmonyCalcでは、あらかじめ汎用的・典型的な並列処理手順をミドルウェアに持たせ、かつ完全にイベントドリブンのプログラミングとすることにより、これらの付加的な処理をミドルウェアに任せました。この枠組みを「セッションモデル」と呼びます。
セッションモデルでは、プログラムが一たび並列処理の開始をHarmonyCalcに指示すると制御がHarmonyCalcに移り、並列処理が終了するまで返ってきません。その間HarmonyCalcは、決められた並列処理手順に従っていろいろな作業を行います。これらの作業を「セッション」と呼びます。HarmonyCalcには11種類のセッションが定義されており、それにはデータのコピー、データの消去、タスクの実行、そしてそれらを組み合わせた作業が含まれています。これらのセッションの詳細については、取り扱い説明書の6章をご覧ください。
セッションを開始・終了させるタイミングはHarmonyCalcが決めますが、それぞれのセッションの開始時と終了時にはイベント(コールバック)が発生しますので、プログラムはその中で前処理や後処理をしたり、引数を使ってセッションの動作を変更・監視したりすることができます。つまりイベントの組み合わせで、さまざまな並列処理手順を実現します。 |
▲「よくある質問」に戻る
▲「よくある質問」に戻る
| C3.HarmonyCalcは、どの開発言語に対応していますか? |
HarmonyCalcバージョン4は、次の開発言語をサポートしております。また他の開発言語でも、問題なくHarmonyCalcを利用することができる場合もございますので、お問い合わせください。
|
| マイクロソフト株式会社 |
Visual C++/MFC(32ビット) |
2003 |
◎ |
| 2010 |
◎ |
| Visual C++/MFC(64ビット) |
2010 |
◎ |
| Visual C++/CLI |
2010 |
◎ |
| Visual C# |
2010 |
◎ |
| Visual Basic |
6 |
△ |
| Visual Basic .NET |
2010 |
◎ |
| エンバカデロ・テクノロジーズ合同会社 |
Delphi(32ビット) |
5 |
◎ |
| 7 |
◎ |
| XE2 |
◎ |
| Delphi(64ビット) |
XE2 |
◎ |
| C++Builder |
6 |
◎ |
| XE2 |
◎ |
| Prism |
|
△ |
| インテル株式会社 |
Intel C |
|
△ |
| Intel Fortran |
|
△ |
| オープンソース、その他 |
Java |
|
△ |
| Perl |
|
△ |
| Python |
|
△ |
| PHP |
|
△ |
| Ruby |
|
△ |
|
◎:HarmonyCalcバージョン4が公式にサポートする言語(インタフェースモジュールとサンプルプログラムが付属する言語)
△:HarmonyCalcによる公式サポートを検討している言語 |
▲「よくある質問」に戻る
▲「よくある質問」に戻る
▲「よくある質問」に戻る
▲「よくある質問」に戻る
▲「よくある質問」に戻る
| E1.メーカ製のPCクラスタを買うのと、自作するのとどちらがいいですか? |
| パソコンの台数が数台までならデスクトップパソコンを並べて自作するのがお勧め、それ以上ならメーカ製のものを買うのがお勧めです。最近では「パーソナルクラスタ」と呼ばれる一体型のPCクラスタが市販されるようになり、自分でパソコンを組み合わせるのと大して変わらない価格でPCクラスタを利用することができるようになりました。またブレードサーバを使ったラックマウント型のPCクラスタや、組み込み用のファンレスパソコンを使ったPCクラスタなど、用途に応じていろいろな構成のハードウェアが利用できるようになっています。 |
▲「よくある質問」に戻る
▲「よくある質問」に戻る
| E3.何台のパソコンを用意すればいいのか知りたいのですが? |
| 高速化したい処理が扱うデータのサイズと、1台のパソコンでの処理時間がわかれば、パソコンの台数に対する高速化の効果をおよそ見積もることができます。またいくつかパソコン台数の異なるPCクラスタでプログラムを実行させ、時間を計測することで、最適な台数を推定することもできます。お問い合わせはこちらからどうぞ。 |
▲「よくある質問」に戻る
▲「よくある質問」に戻る
| E5.ブレードサーバで動作しますか? |
| はい。これまで富士通製・NEC製・ClearCube製のブレードサーバでは正常動作を確認しております。その他のメーカのブレードサーバでも、問題なく動作すると思われます。しかしブレードサーバを並列処理に使用する場合、機種によっては必ずしもブレード同士のネットワーク接続が高速でないため、充分な性能が出ないこともあります。特定の機種での性能評価を行いたい場合には、弊社でベンチマークを行う用意をしておりますので、お問い合わせくださいますようお願いいたします。 |
▲「よくある質問」に戻る
| E6.パーソナルクラスタで動作しますか? |
| はい。これまでCiara Technologies製のパーソナルクラスタ「NEXXUS」と、Tyan(現Scalable
Servers)製のパーソナルクラスタでは正常動作を確認しております。いずれもMicrosoft
Windows Compute Cluster Server 2003を使いました。特定の機種での性能評価を行いたい場合には、弊社でベンチマークを行う用意をしておりますので、お問い合わせくださいますようお願いいたします。 |
▲「よくある質問」に戻る
▲「よくある質問」に戻る
| E8.64ビットのOSで動作しますか? |
| はい。HarmonyCalcは32ビットのパソコンやWindowsだけでなく、64ビットのパソコンやWindowsでも正常に動作します。ただし64ビットアプリケーションにHarmonyCalcを直接組み込む場合、HarmonyCalcバージョン4以降が必要です。 |
▲「よくある質問」に戻る
| E9.Windows CCSで動作しますか? |
| はい。HarmonyCalcはクライアントOSであるWindows 2000、Windows XP、Windows
Vistaだけでなく、サーバOSであるWindows 2000 Server、Windows Server 2003でも正常に動作します。もちろんWindows
Compute Cluster Server 2003でも正常動作を確認しております。 |
▲「よくある質問」に戻る
▼トップページへ
▼「スーパーコンピューティング」へ
▼「HarmonyCalc」へ
▼「HarmonyCalc/特長」へ
▼「HarmonyCalc/既知の問題点」へ
▼「HarmonyCalc/ダウンロード」へ