R で termstrc 利回り曲線分析パッケージを実行して、5 か国の 10 年間の毎日の債券価格データを調べています。これは非常に計算集約的で、標準的なラップリーで国ごとに 3200 秒かかります。2009 i7 mac で foreach と %dopar% (doSNOW を使用) を使用すると、4 つのコア (8 つはハイパースレッディングを使用) をすべて使用すると、次のようになります。 850 秒。国を追加するたびに (国間のスプレッドを計算するために) この分析を再実行する必要があり、今後さらに多くのクレジット イールド カーブが追加される予定の 19 か国が残っています。かかる時間は大きな問題のように見え始めています。ちなみに、問題のtermstrc解析関数はRでアクセスしているのにCで書いています。
現在、私たちは 12 人の小さな会社です (予算は限られています)。全員が 8 GB の RAM、i7 PC を備えており、そのうちの少なくとも半分は日常的なワープロ/電子メール/ブラウジング スタイルのタスクに使用されています。つまり、5% を使用しています。彼らのパフォーマンスを最大限に。それらはすべて、ギガビット (ただし 10 ギガビットではない) イーサネットを使用してネットワーク化されています。
これらのあまり使用されていない PC の一部を MPI を使用してクラスター化し、それら全体で R 分析を実行できますか? ネットワークは影響を受けますか? 利回り曲線分析関数の各反復には約 1.2 秒かかるため、並列処理の粒度が関数の反復全体を各クラスター ノードに渡すことである場合、1.2 秒はギガビット イーサネットの遅延と比較してかなり大きくなるはずだと思います。
これはできますか?どのように?そして、その影響は私の同僚にどのような影響を与えるでしょうか。私が彼らのマシンに負荷をかけている間、彼らはメールを読み続けることができますか?
Open MPI は Windows をサポートしていないようですが、MPICH はサポートしているようです。もしあれば、どれを使いますか?
おそらく、各 PC で Ubuntu 仮想マシンを実行しますか?