問題タブ [doparallel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R 並列計算: コアに分散するオブジェクトを選択します
r-parallel コンピューティングに関する質問があります。私は次のようなものを使用しています:
現在の環境で特定のオブジェクトを特定して、プロセッサ コアに分散し、一部の機能に使用するにはどうすればよいでしょうか? 環境内のオブジェクト全体を別のコアにコピーするのに R は必要ありませんが、選択した一部のオブジェクトのみをコピーします。私のプロジェクトでは、大きな R オブジェクトがあり、RAM の問題を回避するために、それらをコアにコピー/配布する必要はありません。その解決策はありますか?
ありがとう
r - foreach-loop (R/doParallel パッケージ) が大量の反復で失敗する
私は次のRコードを持っています:
そのコードを 1:5 から実行すると、正常に終了します。106000 から 106800 までのコードを実行すると、同じことが起こります。しかし、完全なベクトル 1 から 106800、または 100000 から 106800 を実行すると失敗します (これらは、私が作業している正確な数値ではありませんが、読みやすくなっています) このエラーが発生します。メッセージ:
このエラー メッセージが表示される理由がわかりません。残念ながら、単純なコードでは再現できないため、実行例を提供することはできません。単一のジョブが失敗していますか? はいの場合、失敗したものをどのように見つけることができますか? または、トラブルシューティング方法について他のアイデアはありますか?
r - foreach パッケージだけでなく doParallel / doMC の利用
これまでに見つけたすべての公式チュートリアルdoParallel、doParallel-Vignette、doMC、doMC-Vignetteは、 と組み合わせて並列計算を使用する方法のみをカバーしていforeach
ます。「シーケンシャル」コードも高速化する方法はありますか?
1 つのファイルを複数のファイルに分割し、各ファイルを異なるインスタンスで実行するようなものだと想像してくださいR
。例えば
前もって感謝します!
(R v.3.2.1
、Rスタジオv.0.99.451
)
r - R での並列実行による一貫性のない速度の向上?
R での並列プログラミングでいくつかの基本的なことを試しています。結果は非常に一貫性がありません。
私の最初の手法は、「並列」ライブラリの parSapply() 関数を使用することでした。結果は一貫しています。並列プロセスにコアを追加すると、速度が著しく向上します。
ただし、2 番目の方法では、「foreach」パッケージの foreach() 関数を使用します。その結果は一貫していません。1 コアではなく 2 コアを使用すると、速度が向上します。しかし、3コアや4コアを使っても改善されません。なぜこうなった?
「no_cores」の値を変更してテストします。(つまりno_cores <- detectCores() - x
)。リストのサイズはこれに違いはありませんでした。
r - R: R 3.2.1 でラティスを使用してマルチパネル プロットを並列化する方法は?
私は R プログラミングが初めてで、パッケージで作成された12 個のトレリス オブジェクトplot
で並列に実行する方法を知りたいと思っていました。lattice
基本的に、多くの前処理手順の後、次のコマンドがあります。
問題は、上記のコマンドは機能しますが、Mac OSX では次のような図を生成するのに非常に長い(>4 時間)かかることです。
私の Mac には 8 つのコアがあるので、プロット コマンドをコアごとに分割して、プロットを高速化する必要があると考えました。
他の並列化に関する質問を検索した後、パッケージを見つけ、次のように関数をdoParallel
実装できる可能性があると考え ました。parLapply
ただし、split
上記のコマンドでパラメーターを使用しparLapply
て、プロットをグリッド上の別の場所に配置する方法がわかりません。
私は必然的に12個のプロットを別々に配置し、重ね合わせる必要はありません。
私の質問に答えていただきありがとうございます。あなたのヒントと解決策を楽しみにしています。
r - foreach で変数をエクスポートする
%dopar%
foreach パッケージでデータ フレームをエクスポートできません。%do%
と一緒に使用すると機能しますregisterDoSEQ()
が、registerDoParallel()
常に次のようになります。
パッケージのkyphosis
データを使用した再現可能な例を次に示します。rpart
ステップワイズ回帰を少し並列化しようとしています:
r - R: 並列バックエンドを使用する場合、caret は PSOCKcluster のマスター ノードを使用しません
並列バックエンドを使用して、ハイパーパラメーターのグリッドでモデルcaret
をトレーニングしようとしています。xgboost
Give Me Some Creditcaret
データを使用して、のハイパーパラメータ グリッド検索用の並列バックエンドを設定するコードを次に示します。
上のすべてのコアがhosts
トレーニングに使用されていることを確認しましたが、master
ノードではプロセスが使用されていません。これは予想される動作ですか?この動作を変更し、処理のためにマスター ノードのコアを活用する方法はありますか?
r - 「doParallel」パッケージを使用したRでの並列処理
2 から指定された値 (つまり、columnCount) まで繰り返すループがあります。ループ内で行われるすべての計算は i の値に依存するため、i の値は重要です。
ループ スニペット:
注: Y 列は常に一定ですが、x 列はすべてのステップで 1 ずつ反復します (実際のデータ フレームには 250 列以上あります)。
r - 並列計算: 各スレッドでパッケージを 1 回だけロードする
現在、いくつかの大規模なデータセットを扱っているため、ワークフローを並列化することが唯一の方法です。
最初に 1 回、各スレッドにいくつかのパッケージをロードする必要があります (つまり、for(this.thread in threads) { #load some packages }
.
残念ながら、その方法がわかりません。
magrittr
次のコードは、パイプ演算子を aから使用しようとしている私の問題をさらに示しています%dopar%
。
.
.
何か案は?