4

並列バックエンドの有無にかかわらず、Elastic Net をテストしました。呼び出しは次のとおりです。

enetGrid <- data.frame(.lambda=0,.fraction=c(.005))
ctrl <- trainControl( method="repeatedcv", repeats=5 )
enetTune <- train( x, y, method="enet", tuneGrid=enetGrid, trControl=ctrl, preProc=NULL )

並列バックエンドを登録せずに実行し (呼び出しが終了し%dopar%たときに警告メッセージを受け取りましたtrain)、7 コア (8 個中) を登録して再度実行しました。最初の実行には 529 秒、2 番目の実行には 313 秒かかりました。ただし、最初の実行には最大 3.3 GB のメモリ (Sun クラスター システムによって報告された)、2 番目の実行には 22.9 GB が必要でした。私は 30GB の RAM を持っていますが、タスクはここからさらに複雑になります。

質問: 1) これは並列計算の一般的な特性ですか? 彼らはメモリを共有していると思いました.... 2)enet内部をまだ使用している間にこれを回避する方法はありtrainますか?問題がある場合、-いいえでdoParallel使用できる他のアーキテクチャはあり%dopar%ますか?

これが期待される結果であるかどうかに興味があるため、これは密接に関連していますが、この質問とまったく同じではありませんが、これを閉じて質問をその質問にマージしても問題ありません(または重複としてマークしてこれは、これがより詳細であるためです)それがコンセンサスである場合:

新しい doParallel パッケージの非常に高いメモリ消費

4

2 に答える 2

2

それ以外の場合は、単純に入力する文字の最小数があります: 1) はい。2) いいえ、そうかもしれません。並列計算に「共有メモリ」モデルを使用するパッケージがありますが、R のより徹底的にテストされたパッケージはそれを使用しません。

http://www.stat.berkeley.edu/scf/paciorek-parallelWorkshop.pdf

http://heather.cs.ucdavis.edu/~matloff/158/PLN/ParProcBook.pdf

http://heather.cs.ucdavis.edu/Rdsm/BARUGSlides.pdf

于 2013-10-06T00:49:39.740 に答える