問題タブ [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 doParallel foreach と独立したワーカーのエラー処理
多くのランダム フォレスト モデルを実行する必要があるため、8 コアのサーバーで doParallel を使用してプロセスを高速化したいと考えています。
ただし、一部のモデルは他のモデルよりもはるかに長い時間が必要であり、エラーをスローすることさえあります。8 つのモデルを並行して実行したいのですが、モデルがエラーをスローしたりスキップされたりした場合、ワーカーは続行する必要があります。各モデルの結果はハードドライブに保存されるので、後でアクセスして組み合わせることができます。
また
問題を解決しませんでした。私は得る
コード例: %do% で試してみたところ、モデル 2-7 が正常に実行されました。それでも %dopar% に表示されたエラーが表示されます
mysql - { の FOREACH LOOP エラー: タスク 1 が失敗しました - 「関数 "dbGetQuery" が見つかりませんでした」
私は R での単純な実装の経験は豊富ですが、R を介した SQL との通信や並列プログラミングは初めてです (今日まで、これら 2 つのことの経験はありません)。ブログやフォーラムなどからのプロンプトを使用して、以下のコードを作成しました。
この計算は for ループで機能しますが、永遠に時間がかかります (これを大きなデータセットに適用する必要があります!)。上記のコードを実行すると、以下のエラーが発生します。エラーが発生する理由と、それを回避する方法を教えてください。
{ のエラー: タスク 1 が失敗しました - 「関数 "dbGetQuery" が見つかりませんでした」
r - doParallel "foreach" が親環境から矛盾してオブジェクトを継承する: "{ のエラー: タスク 1 が失敗しました - "関数が見つかりませんでした..."
foreach には、理解できない問題があります。次のコードは、私が試した 2 台の Windows コンピューターでは失敗しますが、同じバージョンの R と doParallel を実行している 3 台の Linux コンピューターでは成功します。
これら 2 台の Windows コンピューターでは、次のエラーが返されます。
ただし、これは Linux コンピューターで問題なく動作し、%dopar% の代わりに %do% を使用しても問題なく動作し、通常の for ループでも問題なく動作します。
同じことが変数にも当てはまりますi <- 10
。return(x + f())
return(x + i)
同じ問題を抱えている他の人には、次の 2 つの回避策があります。
1) .export を使用して、必要な関数と変数を明示的にインポートします。
2) すべてのグローバル オブジェクトをインポートします。
これらの回避策の問題は、大規模で活発に開発中のパッケージに対して最も安定していないことです。いずれにせよ、foreach は for のように動作するはずです。
これを引き起こしている原因と、修正があるかどうかについてのアイデアはありますか?
機能が動作するコンピュータのバージョン情報:
機能が動作しないコンピュータ:
r - doParallel の使用時にネットワーク コンピュータを識別する方法
doParallel
複数のWindows PC(ネットワーク上)で使用しようとしています。次のプログラムを使用するように言われました
「localhost」がプライマリ PC のデフォルトの識別子であることはわかっていますが、「node001」は理解できないものです。ネットワーク上の他のコンピュータを特定するにはどうすればよいですか? IP アドレスを試しましたが、接続されません。
r - ネストされた foreach ループでカウンターにアクセスするにはどうすればよいですか?
したがって、今日まで私はほんの一握りの R コード (正確には 2 つのプロジェクト) しか書いていません。
最終モデルに使用する変数の最適なセットを見つけることを目的とした K フォールド クロス検証コードを並列化しようとしています。
コードはこのようなものです
要約すると、parentModel を使用して、変数を 1 つずつ削除し、K 分割交差検証を実行して、結果を収集します。ただし、エラーが発生し続けます
誰でもこれで私を助けてもらえますか?
編集:私はWindows 7を使用しています。
r - R doParallel foreach ループで ovun.sample を実行します。
並列 foreach で ovun.sample を動作させることができません。
以下は最小限の作業例です。
エラーが発生します:
私が見逃したアイデア。それとも、doParallel で動作する ROSE に似た別のオーバー/アンダー サンプリング パッケージでしょうか。Windows 上で実行されます。
r - doParallel と caret パッケージによる並列処理のエラー
32 コアのサーバー上にある ubuntu LXC コンテナーで R を実行しています。さまざまな数のコアを使用して、caret パッケージを使用して並列ランダム フォレスト モデルを実行しています。
私が使用するcores <- 1
と、エラーなしでシリアルで実行されます。
を使用するcores <- 2
と、 を実行するまでエラーは発生しません。実行するstopCluster(cl)
と、次のようになります。
(これは、によって確認されたように、プロセスが並行して正常に完了した後であることに注意してくださいtop
。)
cores <- 4
以上
を使用すると、クラスターを停止するときにコアごとに繰り返される上記の警告に加えてError in unserialize(socklist[[n]]) : error reading from connection
、計算が完了する前にも表示されます。
この動作は、計算を Rstudio Server で実行してもコンソールで実行しても同じです。このコードは、以前に 32 コアすべてを使用してエラーなしでこの計算を実行できた同僚の 1 人から入手したものです。Rstudio Server がメモリ リークを起こしているのではないかと考えましたが、その証拠を見つけることができません。(走っていても助けにはrm()
なりgc()
ません)。
これらのエラーの原因は何ですか?