1

2 つのコード (1 つは Fortran77 にあり、もう 1 つは Fortran90 にあります) を結合する必要があります。これらはデーモンによって制御され、それらの間で情報を渡すことができます。

私は検索しており、2 つの可能なオプションは PVM または MPI です。問題は、それらを個別にコンパイルする必要があることです。何かアイデアはありますか?

4

2 に答える 2

1

最も簡単な方法は POSIX ソケットを使用することですが、データのシリアライゼーション/デシリアライゼーションを行う必要があり、一般的にかなり遅いです。したがって、ソケットの使用はお勧めしません。

技術的には、MPI は機能します。MPI 2.0 準拠のライブラリを使用できる場合は、そこに実装されているクライアント サーバー メカニズムを使用できます。MPI_Open_portMPI_Comm_connectのドキュメントを見てください。最初のものは、この名前を何らかの方法でクライアントに渡すために必要なポート名を提供します。1 つのオプションは名前の発行を使用することですが、MPI ライブラリでは機能しない場合があります。もう 1 つのオプションは、他のメカニズム (ソケット接続、ファイル システムなど) を使用して共有することです。

しかし、実際には、これら 2 つのアプリを別々にコンパイルする必要がある理由はまだわかりません (ライセンスの問題がない限り)。それらを 1 つのパッケージにコンパイルするだけで (コードの変更が予想されますが、マイナーです)、その後それらを 1 つのアプリとして実行します。

于 2016-11-18T11:12:41.047 に答える