問題タブ [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 - doParallel と foreach がマージ操作の並列化に失敗する
data.frame
大きなものと小さなものをマージして、計算を並列化しようとしています。以下のコードは完璧に機能し、マシンのすべてのコアを最大化します。
vectordat
を 5 の長さの文字列を含むように変更すると、並列処理が機能しなくなり、エラーや警告は表示されませんが、計算に寄与するコアは 1 つだけです。
この不一致の理由と、それを回避するにはどうすればよいでしょうか? dat
特定の例では、整数にインデックスを付ける場合、コードは機能します。しかし、索引付けがすべての場合の答えになるわけではありません。ストリングの長さが、使用されるコアの数に関係するのはなぜですか?
r - RにおけるdoMCとdoParallelの違い
関数に関する RのdoParallel
との違いは何ですか? unix ライクなウィンドウのみをサポートしますが、unix ライクなウィンドウをサポートします。言い換えれば、なぜ直接置換できないのでしょうか? ありがとうございました。doMC
foreach
doParallel
doMC
doParallel
doMC
更新:
doParallel
は に基づいて構築されていますparallel
。これは基本的に と の合併でmulticore
ありsnow
、システムに適したツールを自動的に使用します。その結果、doParallel
マルチシステムをサポートするために使用できます。つまり、 を使用doParallel
して置き換えることができますdoMC
。
参照: http://michaeljkoontz.weebly.com/uploads/1/9/9/4/19940979/parallel.pdf
registerDoParallel(ncores=3)
ところで、との違いは何ですか
クラスターを自動的に停止できるようですregisterDoParallel(ncores=3)
が、2 つ目は自動的に停止せず、必要stopCluster(cl)
です。
参照: http://cran.r-project.org/web/packages/doParallel/vignettes/gettingstartedParallel.pdf
r - doParallel を使用した R のローリング回帰 - パフォーマンスの問題
ローリング回帰分析を行っており、PC の複数のコアを使用して実行速度を向上させたいと考えていました。私が試したコードは次のようになります。
コードが実行され、正しい結果が生成されます。問題は、私が何をしていても、費やした時間の点でほぼ同じ結果が得られることです.2コアまたは6コアの場合、registerDoParallel()に登録しました。これは、多くのユーザーが同様のタスクについて報告したこととは対照的です。Windows の TaskManager を見ると、6 つのコアすべてが何かを実行しており、2 つのコアに比べて実質的に速度が向上していないことがわかります (実行時間の合計で 1 秒未満 ~ 60 秒)。私が間違っていることは何ですか?
mysql - R で単純な SQL クエリを並列化する
R経由で単純なSQLクエリを実行しています
これは永遠にかかります。時々エラーが出る
SQLクエリを並行して実行するとこの問題が解決すると思います.同様の問題に直面した場合、誰かが私にいくつかのポインタを与えることができるかどうか疑問に思っています.
r - R で foreach() を使用してランダム フォレストを作成しているときにエラーが発生し、randomForest() 関数が見つかりません
3 つのコアを使用して 51 ツリーのランダム フォレストを作成するために R で並列処理を実行しようとすると、 「randomForest (x、y、ntree = ntree) でエラーが発生しました: タスク 1 が失敗しました - 「関数 "randomForest" が見つかりませんでした」というエラーが表示されます。
助けてください。私が使用したコードは以下のとおりです。
r - 別のセッションからのデータセットをロードした後、%dopar% が機能しない
doParallel および foreach パッケージ (OpenMP) を使用してクラスター ノードで R を使用しています。
結果として 2 つのオブジェクトを取得し、それらを RData として保存する最初のスクリプトを実行しました。
別のスクリプトで、さらに処理する 2 つのオブジェクトを含む RData をロードしますが、foreach ループを並列で使用すると、「タスク 1、接続を開くことができません」というメッセージが表示されます。ロードされた RData に問題があるのではないかと疑っていました。
デスクトップコンピューターでこの簡単な作業例を試すことにしました。
1/ 最初にこの単純なコードを実行します。
すべてが機能します
2/次に、以前にクラスターに保存した RData をロードします
2 つのオブジェクトがそこにあります。
3/2 とはまったく関係のない 1 を再度実行しようとすると、次のエラーが表示されます。
mcfork() のエラー: フォークできません。考えられる理由: メモリを割り当てられません
実際、parallel パッケージを使用するものはすべて機能しなくなりました。コアを登録しようとしても機能せず、ハングアップすることさえあります。
明らかに、クラスター環境から RData に何かがインポートされ、問題が発生したに違いありません。ただし、理由がわからず、クラスターで同じ手順を直接実行しても問題は解決しません。
情報:
データセットをロードする前の ls():
データセットをロードした後の ls(): ls()
trandom_list* はロードされた 2 つのオブジェクトで、それぞれが 8.7Gb です (クラスター ノードには 47Gb があり、私のコンピューターには 32Gb の RAM があります)。
dput(xxx.RData) は、list(structure(c(0, 0, 0, 0, 0.1, 0, 0, 5.2
そして奇妙に終わる
それは「)」なしです..プロセスが完了したときにRAMがいっぱいになったため、dputが完全に行われなかった可能性があります(ただし、スワップはまだ問題ありませんでした)。
r - 更新: R を使用した並列計算は、「タイプ 'クロージャ' のオブジェクトを複製しようとしています」という結果になります
Metropolis-Hastings アルゴリズムをセットアップしました。現在、並列計算を使用してアルゴリズムを実行しようとしています。シングルチェーン関数をセットアップしました
これは、p 個のパラメーターと反復反復を含むp x反復行列を返します。
更新: 問題を単純化しようとすると、コードが突然機能するように見えました。わざとエラーを起こそうとしましたが、コードは完全に実行され、結果は期待どおりでした。残念ながら、同様の問題を抱えている他の人には答えられません。
フォローアップの質問: 私の最初の目的は、機能全体を構築することでした。
しかし、 foreach-loop は、次のような必要なすべての関数を読み取っていないようです:
foreach
ループ内にカスタム関数を実装する方法を誰かが答えることができますか? と入力してMCmulti <- function(FUN,...) FUN()
呼び出すのMCmulti(MCsingle,...)
ですか?