問題タブ [mclapply]
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 - mclapply の進行状況を追跡する方法はありますか?
.progress = 'text'
の設定が大好きplyr's
llply
です。ただし、リスト項目はさまざまなコアに送信され、最後に照合されるため、 mclapply
(パッケージから)どこまで進んでいるかがわからないことが私の不安の原因です。multicore
私は次のようなメッセージを出力してきまし*currently in sim_id # ....*
たが、リスト項目の何パーセントが完了したかを示す指標が得られないため、あまり役に立ちません (ただし、スクリプトが動かなくなったり動いたりしていないことを知ることは役に立ちます)。
.Rout
自分のファイルを見て、進捗状況を把握できるようにする他のアイデアを提案してもらえますか? mclapply
手動カウンターを追加することを考えましたが、フィードバックを出す前にすべてのリスト項目の処理を終了する必要があるため、それを実装する方法がわかりません。
r - R によって生成された大きな結果を格納するための理想的な形式は何ですか?
多数のパラメーターの組み合わせ (20 ~ 40k) を使用して、妥当なサイズのデータセット (10 ~ 20mb) をシミュレートします。各データセット x パラメーター セットがプッシュされmclapply
、結果は、list
各アイテムに出力データ (リスト アイテム 1 として) と、その結果を生成するために使用されるパラメーター (リスト アイテム 2 (リストの各要素はパラメーター) として) が含まれます。
81K のリストを実行したところ (ただし、30k のチャンクで実行する必要がありました)、結果のリストはそれぞれ約 700 mb です。それらを.rdata
ファイルとして保存しましたが、おそらく.Rda
. しかし、各ファイルが に読み込まれるのに永遠に時間がかかりますR
。特に長期保管のベストプラクティスはありますか?
理想的には、すべてを 1 つのリストに保持しますが、mclapply
ベクトルをシリアル化できないというエラーがスローされます。また、これほど大きなジョブは、クラスターで永遠にかかります (3 つの方法で分割すると、1 ジョブあたり 3 時間かかります)。しかし、複数の結果ファイルresults1a.rdata
がresults2b.rdata
あるのresults3c.rdata
も効率が悪いようです。
r - Rのlapply(およびmclapply)を取得して、乱数ジェネレーターの状態を復元するにはどうすればよいですか?
Rは.Random.seed
ラップ内の設定を無視します。set.seed
ただし、使用すると問題なく動作します。
いくつかのコード:
私の目標は、MCMCの実行をチェックポイントして、正確に再開できるようにすることです。RNGの状態を簡単に保存できますが、Rにラップループ内にロードさせることはできません。
Rに設定を通知させる方法はあります.Random.seed
か?または、これを実現するためのより簡単な方法はありますか?
重要な場合は、64ビットRを使用しています。
Ubuntu 12.04 LTSの場合:
r - R/sqldf/mclapply, sqldf と mclapply を一緒に使用するにはどうすればよいですか?
こんにちは、sqldf を使用してデータベースからデータを取得しようとしています。sqldf は常に tcltk をロードするため、mclapply 関数を使用できません。どうすればそれを行うことができますか?ありがとう。
ここに例があります。
r - mclapplyとプロット用のforループ:速度とスケーラビリティの焦点
ggplot
Rで関数を実行していますが、データをプロットにプッシュする前に、データを変換してサブセット化するために複数のコマンドを実行するため、実行に時間がかかる可能性があります。この関数を複数回実行して、引数の値を調整する必要があります。私が提供する例は単純なものです...しかし、それをどのようにスピードアップするか疑問に思っていましたか?スケールアップした場合、つまり、すべての組み合わせを取得するための最速の方法は何ですか...for
ループをmclapply
より高速であると仮定して変換する一般的な方法はありますか...特定の方法の好みを示す代替の模擬例を自由に提供してください
モックの例:
基本機能:
したがって、パラメータを通過するための便利な方法は、次のことを行うことです...
これをスピードアップする最速の方法は何でしょうか?私はそれが次のようなものを必要とするかもしれないと思いますそして各行を実行するexpand.grid(x=c(1:10),y=c(1:2),z=seq(100,500,by=100))
ために使用mclapply
する...ある種の並列の方法で?(これには4つのコアがあります)。速度を大幅に向上させる方法で、基本機能からビットを抜いたり、基本機能に入れたりしてください。各パラメーターの範囲を増やすと、プロセスに明らかに時間がかかりますが、それについてできることは何もありません...または、より多くのコアなどに分割した場合、それも何らかの方法で変更できますか?
ボーナスポイントについては...出力画像を保存し、パッケージのようにスライダーを作成しmanipulate
てすべてのパラメーターをインタラクティブに処理するものはありますか...それが行うのは、関連する画像を引き出すことだけです。毎回再計算するよりも。
注意:foreach
ソリューションに役立つと思われる他のパッケージ(など)を自由に使用/提案してください。
r - mclapplyへのセミグローバル変数
関数でmclapply
は、リスト内の各項目ごとに実行する必要があり、セミグローバル変数も使用する必要がありますvar.1
。すべてのリストアイテムに追加したくありませんvar.1
。メモリが多すぎるからです。問題を説明するコードは次のとおりです。
どうすればに渡すことができvar.1
ますmclapply
か?var.1
内で宣言する必要がありますmyOuterFunction
。
r - R マルチコアで 1 つのコアのすべてのジョブが失敗する
長いリストで R マルチコアを使用しています。mclapply
リストで呼び出すと、マシンで 12 個のコアが使用されます。
リストの長さが約 1000 要素の場合、正常に実行されます。リストが ~2000 要素よりも長い場合 (この動作が開始される長さはわかりません)、コア 5 に送信されたすべてのジョブが失敗します。
(このウェブサイトにリスト要素 ID を送信することで、これを見つけました。)
いくつかのノードでこれを試しましたが、常に次の警告が表示されます。
Q: コアが 1 つだけ故障するのはなぜですか?
どんな助けでも大歓迎です。
PK
r - マルチコアパッケージからmclapplyを使用するR関数を作成する
次の構造でいくつかのシミュレーションデータを分析する必要があります。
ここで、hの範囲は1〜2500で、モンテカルロサンプルのインデックスを作成します。各サンプルには1000個の観測値があります。これらのデータを、2つのオブジェクト(fnN1、fdQB101)を与える次のコードで分析しています。
オブジェクトfdN1とfdQB101は、要素として予測確率を持つ2500x1000行列です。このループから、lapply()またはmclapply()で呼び出すことができる関数を作成する必要があります。これを次の関数コマンドでラップすると:
オブジェクトfdN1とfdQB101はそれぞれ、予測された確率ではなく、ゼロの2500x1000行列として返されます。私は何が間違っているのですか?
r - R 重複のチェックは、mclapply を使用しても非常に遅い
一意の ID を持つ多数の車の繰り返し販売に関するデータがあります。車は何度でも売ることができます。
ただし、一部の ID に誤りがあるため、ID ごとに、複数の販売でサイズが同じとして記録されているかどうかを確認しています。そうでない場合は、ID が間違っていることがわかります。
私は次のコードでこれをやろうとしています:
しかし、私のクアッドコア i5 では、ひどく、ひどく、ひどく遅いです。
ボトルネックがどこにあるのか誰にもわかりますか? 私はR最適化の初心者です。
ありがとう、-N
r - mclapply 追加の引数
関数 DevCstat() を作成しました。
引数を取ります: indat、mod、Covar、txtMat、PatCovar。
indat はリストなので、リストの各要素に関数を適用したいと思います。
mod、Covar、txtMat、PatCovar は、関数の呼び出しごとに使用したいオブジェクトです。これらはリスト要素を変更しません。
これはうまくいくようです:
ただし、並列バージョンは機能しません。
エラーが発生します
問題は、mclapply が追加の引数を渡していないことだと思います。
これを正しく行う方法を知っている人はいますか?
ありがとう