問題タブ [parallel-foreach]

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.

0 投票する
1 に答える
637 参照

r - R における行列 (またはラスター) の並列合計

並列に合計したい大きな行列 (またはラスター) の長いリストがあります。出力は行列である必要があります。foreach機能する関数を使用してみまし.combine='+'たが、.combine は 1 つのスレッドでしか機能しないため、スピードアップはありません。助言がありますか?ありがとう

0 投票する
0 に答える
520 参照

r - R での GLM のループの並列化

並列化された for ループをプログラムしようとしています。その内部では、テニスをするかどうかを確認するために、p 値が最も低い変数のみをモデル化するための最適な GLM を見つけようとしています (バイナリではい/いいえ)。 .

たとえば、気象データ セットを含むテーブル (およびそのデータフレーム) があります。これらのモデルのどれが最も低い p 値を最初に確認することによって、GLM モデルを構築します。

PlayTennis ~ Precipのp 値が最も低いとしましょう。したがって、repeat の次のループ反復では、p 値が最も低い他の変数を確認します。

これは、有意な変数がなくなるまで続きます (P 値が 0.05 を超えます)。したがって、最終的な出力が得られますPlayTennis ~ Precip + WindSpeed(これはすべて仮説です)。

このコードをさまざまなコアで並列化する方法に関する推奨事項はありますか? speedglmライブラリ speedglm から呼び出される glm の新しい関数を見つけました。これは改善されますが、それほどではありません。ループも調べましforeachたが、各スレッドとどのように通信して、さまざまな実行でどの p 値が大きいか小さいかを知る方法がわかりません。よろしくお願いします。

私が持っているコードは次のとおりです。

試してみたが機能しないコード

0 投票する
1 に答える
696 参照

r - For-Loopの代替:Rでブーストするためにローリングウィンドウを使用する方法は?

ループをなくして計算速度を上げるためにコードを最適化する方法を探しています。私はこの分野と R にかなり慣れていません。ローリング ウィンドウを使用して、線形時系列モデルでコンポーネントごとの勾配ブースティング回帰を実行します。各ウィンドウの X に対する回帰 y の係数を使用して、y の次の「ウィンドウ外」観測を予測します。(後で予測精度を評価します)

私のデータは、約 540 の観測値を持つ 1560 の異なる時系列 (元の系列のラグを含む) です (次元 540x1560 のデータ フレーム)

調べてみましrollapplyたが、うまくいきませんでした。特に、ウィンドウごと (反復ごと) に yhat を予測する方法がわかりません。

ヒントをいただければ幸いです(私のラップトップで実行するには永遠にかかります)!

PS: multicoreorparallelパッケージの使用も検討しています。特に b/c 後で停止基準に交差検証を使用します。しかし、私はそれを調べ始めたばかりです。ただし、それに関するヒントも大歓迎です。

編集:組み込みデータを使用した最小限の作業例(時系列ではありません):

0 投票する
1 に答える
544 参照

r - R foreachで合計CPU時間を取得するには?

foreach(パッケージから使用して) 並行して実行されるコードの合計 CPU 時間を取得しようとしていますdoParallelが、これを行う方法がわかりません。私は使用proc.time()しましたが、「リアルタイム」で差を返すだけです。私が読んだことからsystem.time()、 と同じことをする必要がありますproc.time()。並行して実行される R コードの合計 CPU 時間を取得するにはどうすればよいですか?

0 投票する
0 に答える
82 参照

r - 再現可能な長い foreach ループをいくつかの小さなループに分割する

Rでは、単一の長い並列forループをいくつかの短いループに分割し、それらを再現可能で同一に保つ方法はありますか?

doRNGおよびパッケージでこれを実行しようとしましたforeachが、いくつかの短いループを続けて使用すると、RNG シードは 1 つの長いループを使用した場合と同じではないため、結果が異なります。

====

サンプルコード

0 投票する
1 に答える
220 参照

r - R の並列 foreach は、同じ子操作内の追加の反復のためにオブジェクトを保存しますか?

R で doParallel/Foreach バックエンドを使用してプロセスを並行して実行しています。20 コアのセットをクラスターとして登録し、プロセスを約 100 回実行しています。並列プロセスの各反復に行列を渡し、サブプロセスで行列を独自の行のランダム サンプルに置き換えます。私が疑問に思っているのは、この変更が同じ子プロセスによって処理される後続の反復で持続することを期待すべきですか? たとえば、子プロセス 1 が最初の反復を終了するとき、元の行列またはランダム サンプルで 2 番目の反復を開始しますか?

最小限の例:

編集:

明確にするために、実際にオブジェクトが同じワーカー プロセスによる反復間で持続する場合、これは私の望ましい動作ではありません。むしろ、各反復で、最新のランダム サンプルのランダム サンプルではなく、元のマトリックスの新しいランダム サンプルを取得したいと考えています (私の最小限の例では、元のマトリックスの同じランダム サンプルが毎回作成されることを認識しています)。 、シード セットのため、実際のアプリケーションではこれを扱います)。