並列仮想マシン( PVM ) は、コンピュータの並列ネットワークのためのソフトウェアツールです。異種混在の Unix マシンや Windows マシンのネットワークを単一の分散並列プロセッサとして使用できるように設計されています。[ 2 ]これにより、多数のコンピュータの総合的な処理能力とメモリを使用することで、大規模な計算問題をよりコスト効率よく解決できます。このソフトウェアは非常に移植性が高く、 netlibから無料で入手できるソースコードは、ラップトップからCrayまであらゆるコンピュータでコンパイルされています。[ 3 ]
PVM を使用すると、ユーザーは既存のコンピュータ ハードウェアを活用して、より少ない追加コストでより大規模な問題を解決できます。PVM は並列プログラミングを教えるための教育ツールとして使用されてきましたが、重要な実用的問題を解決するためにも使用されてきました。[ 3 ]これは、テネシー大学、オークリッジ国立研究所、およびエモリー大学によって開発されました。最初のバージョンは 1989 年に ORNL で作成され、テネシー大学によって書き直された後、バージョン 2 が 1991 年 3 月にリリースされました。バージョン 3 は 1993 年 3 月にリリースされ、フォールト トレランスと移植性の向上をサポートしました。
PVMは分散処理やグリッドコンピューティングといった現代のトレンドへの一歩でしたが、1990年代半ば以降、並列マシン上でのメッセージパッシングにおいて、はるかに成功を収めたMPI標準にほぼ取って代わられました。PVMはフリーソフトウェアであり、 BSDライセンスとGNU一般公衆利用許諾契約書(GPL)の両方でリリースされています。
PVMは、異種混在のコンピュータ群を、一貫性があり柔軟な並列計算リソース、すなわち「並列仮想マシン」として使用できるようにするソフトウェアシステムです。
個々のコンピュータは、共有メモリ型またはローカルメモリ型のマルチプロセッサ、ベクトル型スーパーコンピュータ、専用グラフィックスエンジン、あるいはスカラーワークステーションやPCなどであり、イーサネットやFDDIなどの様々なネットワークによって相互接続される可能性がある。
PVMは、実行環境と、メッセージパッシング、タスクおよびリソース管理、障害通知のためのライブラリで構成されています。PVMは市販のソフトウェアパッケージの実行速度を自動的に向上させるものではありませんが、既存のソースプログラムを手動で並列化したり、新しい並列/分散プログラムを作成したりするための強力な機能セットを提供します。
PVMソフトウェアは、特定の「仮想マシン」で使用するすべてのマシンに個別にインストールする必要があります。PVMでは、リモートマシンへの実行ファイルpvm3/libの「自動」インストール機能はありませんが、ディレクトリを別の同様のpvm3/binマシンにコピーし(およびを設定する)、PVMプログラムを実行するには十分です。PVMプログラムをコンパイルまたはビルドするには、PVMの完全なインストールが必要です。$PVM_ROOT$PVM_ARCH
C、C++、またはFortranで記述されたユーザープログラムは、提供されているライブラリルーチンを介してPVMにアクセスできます。
PVMは、グループ内のすべてのプロセスに送信するブロードキャスト(PVM_bcast)と、特定のプロセスのリストに送信するマルチキャスト(PVM_mcast)もサポートしています。