2011-07-29 1 views
7

Rの並列処理に関する質問が表示されるたびに、foreach関数が使用されます。 forのループはあまりR風ではないので、applyというパラレルバージョンがあります。なぜそうでないのですか?R並列拡張が `apply`メタファを破棄していますか?

+0

私の場合、 'foreach'の魅力は、関数に複数の変数を渡し、結果をアセンブルする方法を選択し、' apply'等価物よりも読みやすいということです。私は彼らがスピードの面でどのように比較するのか分からない。 – Backlin

+0

@ Backlin:しかし、 'for'と' apply'(非並行バージョン)についても同様の批判がなされる可能性があり、人々は適用する家族のために激しく論争します。それはスピードのものと同じくらいスタイルのものです.... –

答えて

9

マルチコアにおける

  • mclapply()
  • RMPIならびにpapplyとして専用パッケージで

  • mpi.apply()(雪

    • parLapply()始まる*applyの多数の並列バージョンは、ありますおそらくは維持されない)。

  • +0

    彼らは誰も彼らについての質問をしないように使いやすいですか? :-)たぶん、これは最後の数週間だったかもしれませんが、かなりの数の質問がありましたが、これらについては何もありませんでした。 SO上でこれらの3つを検索すると、mclapply()の結果だけが得られます。 –

    +0

    調査用紙は、[JSSのこの文書(http://www.jstatsoft.org/v31/i01/paper)]のように始めることができます。 –

    +0

    それは便利な紙です。 –

    1

    @Dirkは正しいです。私は、plyrパッケージが現在、パラレルバックエンドをサポートしていると付け加えます。

    plyrパッケージの場合、並列バックエンドをドロップすることは考えられないため、ほとんど言及されていない場合があります。単なるフラグです。

    +0

    私はそれがちょうどうまく動作するので、それは何の言及も得られないということは正しいかもしれないと思います。なぜそれは適用と同じ方法で動作しないのですか?最終的には正しいメタファーのように思えます:図書館で並列化を処理させて、ユーザーがしなければならないことは、それらが並列実行されるかどうかを判断することです。 –

    +0

    実際には、この機能の一部はかなり新しく、それを採用し始めた。 – Iterator

    +0

    はい、しかしforeachはそれらの最新のようであり、それはすべての注目を得ている.... –

    関連する問題