2

R ですべてのパッケージに並列プログラミングを導入する計画があるかどうか知っていますか? 私は R-revolution や並列プログラミング パッケージなどのいくつかの開発を認識していますが、それらは最も一般的な関数 (線形プログラミングなど) を置き換える特殊な関数を持っているようです。しかし、R の優れた点の 1 つは、毎日追加され、複雑で時間のかかる分析を非常に簡単に実行できるようにする、膨大な量の専用パッケージです。これらの多くは、一般化線形モデルなどの非常に一般的な関数を使用しますが、追加の計算と比較のために結果を使用し、最終的に出力を分類します。私が理解している限り、関数のどの部分を並列プログラミングで実行できるかを定義する必要があるため、これがおそらくほとんどの特殊な R パッケージが実行できない理由です。

最も一般的なすべての R 関数を並列処理で実行できるようにして、これらを含むあまり一般的でないすべての関数を並列処理で実行できるようにする計画 (またはパッケージ) はありますか? たとえば、パッケージ difR は、ほとんどの関数に glm 関数を使用します。glm パッケージがすべてのマルチプロセッサ マシンに対して並列処理で実行できるように (または書き直されてから新しい R バージョンでリリースされた) 場合、difR パッケージを書き直す必要はなく、これによりいくつかの実行が可能になります。 Windows PC での並列プログラミングを使用して、最も負担の大きい手順を実行できます。

4

2 に答える 2

5

私はポールの答えに完全に同意します。

さらに、並列化のための一般的なシステムでは、簡単に並列化できる関数であっても、非常に重要なキャリブレーションが必要です。モデルフィッティングはすでに並列化を提供している可能性があり、低レベルの線形代数は暗黙的に並列化できます)? 明示的な並列化を行う必要があるレベルを見積もる (または手動で選択する) 必要があります。さらに、暗黙的な並列化が行われる可能性があるため、これらの間でトレードオフを行う必要があります。

ただし、R で計算を暗黙的に並列化するための特に簡単で一般的な方法が 1 つあります。最適化された BLAS を使用することで、線形代数を並列化し、大幅に高速化することができます。これを使用すると、(システムによっては) パッケージ マネージャーに最適化された BLAS をインストールするように指示するだけで簡単に実行でき、R はそれを使用します。R にリンクされると%*%crossprodsolveなどの基本線形代数関数を使用するすべてのパッケージが利益を得るでしょう。

たとえば、Dirk Eddelbüttel のgcbdパッケージとそのビネット、および GotoBLAS2 / OpenBLAS の使用方法についての議論も参照してください。

于 2012-04-18T11:12:54.100 に答える
2

特定の問題をどのように並列化するかは、しばしば自明ではありません。したがって、すべてのケースで、この場合は各 R パッケージに対して、特定の実装を行う必要があります。したがって、R での並列処理の一般的な実装が行われるとは思いませんし、可能でさえないと思います。

于 2012-04-18T10:00:52.890 に答える