3

現在のプロジェクトで MPJ-api を使用しています。私が使用している 2 つの実装は、MPJ-express と Fast-MPJ です。ただし、どちらも同じ API、つまり MPJ-API を実装しているため、名前空間の競合により、両方の実装を同時にサポートすることはできません。

Java または Scala で両方を同時にサポートできるように、2 つの異なるライブラリを同じパッケージ名とクラス名でラップする方法はありますか?

これまでのところ、私が考えることができる唯一の方法は、モジュールを別のプロジェクトに移動することですが、これが正しい方法かどうかはわかりません。

4

1 に答える 1

0

コードが MPI 関数のサブセットのみを使用する場合 (私がレビューしたほとんどの MPI コードのように)、実際に使用している op を定義する抽象レイヤー (traits または Cake-Pattern でさえも) を作成できます。その後、実装ごとに具象アダプターを実装できます。

このアプローチは、非 MPI 通信レイヤー (Akka、JGroups などを考えてください) でも機能します。

おまけとして、SLF4J アプローチを使用できます。クラスパスの実際の内容に応じて、実行時に正しい実装が選択されます。

于 2012-11-13T14:17:13.777 に答える