問題タブ [snow]
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 の clusterApply: 1 つのタスクが終了したらクラスターを終了し、戻り値を保存します
1 つのタスクが終了した場合 (他のタスクを待ちたくない)、クラスター計算を中止し、最速の計算の戻り値を取得したい:
これを実行するres
と、3 つのジョブの 3 つの結果が格納されます。しかし、私は断食の仕事の結果だけが欲しい.
:)
r - ClusterEvalQ の下で fOptions の EuropeanOption 関数を使用する
以下は私にエラーを与えています。評価される関数は、fOptions パッケージ pdf のサンプル サブセクションからのものです (正しいと確信しています)。並列処理で何が間違っていますか?
結果:
checkForRemoteErrors(lapply(cl, recvResult)) のエラー: 6 つのノードでエラーが発生しました。最初のエラー: クラス「文字」のオブジェクトに適用される「EuropeanOption」に適用可能なメソッドがありません
r - Snow R: 現在実行中のノード情報を取得する
SNOW を介して R に 4 つの CPU のクラスターがあるとします。
どのノードが実行されているかを調べるにはどうすればよいですか?
私はこのようなロジックをしたい:
IF (ノード 1) THEN ロジック 1 IF (ノード 2) THEN ロジック 2 IF (ノード 3) THEN ロジック 3 IF (ノード 4) THEN ロジック 4
IF 条件を実装するにはどうすればよいですか?
ありがとう!
r - Snow を使用した R での並列処理
何千ものリストがあり、各リストには複数の時系列があります。リスト内の各要素に予測を適用したいと思います。これは、コンピューティング リソースの観点から、扱いにくい問題になっています。私は、並列コンピューティングや高度な R プログラミングのバックグラウンダーを持っていません。どんな助けでも大歓迎です。
ダミーリストを作成しました。基本的に、dat.list は私が取り組んでいるものと似ています。
上記のコードは、必要なものを提供します。上記のコードで両方のlapplyに並列処理を適用したいと思います。そこで、snow パッケージとこのサイトに示されている例を使用しようとしました。
以下は私の質問です、
- 何らかの理由で、tm の出力は、非並列バージョンでは異なります。予測関数 ets は、リスト内の要素ではなく、すべての単一のデータ ポイントに適用されます。
非平行:
パラレルバージョン:
私の2番目の質問は、カスタム関数でlapplyをどのように並列化する必要があるかです。基本的にはネストされたparLapplyです
custom.function <- function(x) parLapply(clus,x$z,function(y) (forecast::ets(y))) ## 動作しない
助けてくれて本当にありがとうございます
r - 外側の %dopar% と内側の %do% を持つ無関係なネストされた foreach
%dopar%
パッケージを使用してforeach
パッケージを使用してローカルで並列にタスクを実行しdoSNOW
てクラスターを作成しています(現時点ではこれをWindowsマシンで実行しています)。私はこれまで何度もこれを行ってきましたが、その中に a (つまり、非並列)foreach
を使用して無関係なループを配置するまでは正常に機能します。%do%
次に、Rがエラーを返します(トレースバック付き):
私のマシンで問題を再現するコードは次のとおりです。
インナーforeach
をシンプルなfor
ORに交換するの(l/s)apply
が解決策です。しかし、これを内部で機能させる方法はありforeach
ますか?そもそもなぜエラーが発生するのですか?
r - MPI リモート ノードが実行されない
R 関数を並列化するクラスターを構築しようとしています。私は Ubuntu と R パッケージ (Rmpi と Snow) で Open MPI を使用しています。私が実行しているテストコードは次のとおりです。
コマンドは次のとおりです。
問題は、すべての戻り値がローカル ホスト名であることです。localhost と node2 のプロセスも観察しましたが、プロセスが開始されたように見えますが (localhost で 4 つ、node2 で 4 つ)、すぐに node2 のスレーブ プロセスが停止し、すべてが localhost で実行されます。
ノードごとに異なるスクリプト (testSnowMPI.R) を使用して別のテストを行い、パラメーター-n 1 を -n 2に変更すると、期待どおりに異なる結果が返されましたが、両方のスクリプトがローカルホストによって実行されました。
もう 1 つの興味深いテストは、localhost でmpirunコマンドを作成したときに、実行用に node2 ホストを設定しただけです ( -H node2 )。私が持っている答えは、このジョブに割り当てられているすべてのノードが既にいっぱいです。
node2 から localhost に、localhost から node2 に ping を実行できます。そして、パスフレーズなしで ssh 接続を既に設定しています。
node2 のプロセスは正常に開始されるように見えますが、リターンをマスターに書き込むことができず、localhost がすべての作業を行います。
node2 をローカルホストとして使用して同じテストを実行しましたが、動作はまったく同じでした。
これらのテストの奇妙な動作について何か考えはありますか?
編集
Rmpi 関数のみ (Snow 関数なし) を使用していくつかのテストを行いました。私はこのスクリプトを書きました:
コマンドは次のとおりです。
そして、私はこの出力を得ました:
(node1 はローカルホストです)
mysql - R で単純な SQL クエリを並列化する
R経由で単純なSQLクエリを実行しています
これは永遠にかかります。時々エラーが出る
SQLクエリを並行して実行するとこの問題が解決すると思います.同様の問題に直面した場合、誰かが私にいくつかのポインタを与えることができるかどうか疑問に思っています.
r - Rmpi を使用して MPI クラスターを初期化する
最近、部門クラスタを利用して で並列計算をしようとしていますR
。クラスタ システムは によって管理されSGE
ます。OpenMPI
インストールされ、インストールテストに合格しました。
コマンドを使用してクエリをクラスターに送信しますqsub
。スクリプトでは、次のコマンドを使用して、使用するノードの数を指定します。
#PBS -l nodes=2:ppn=24
(two nodes with 24 threads each)
それから、mpirun -np 1 R --slave -f test.R
私は後でチェック$PBS_NODEFILE
しました。私が望むように2つのノードが割り当てられます。2 つのノードの名前を見つけることができnode1, node2
、それぞれが 24 回表示されます。
test.R の内容を以下に列挙します。
の出力clusterCall()
は非常に残念です。node1
41 回出現するノード名は 1 つだけです。には 24 個のスレッドしかないため、これは明らかに間違っていnode1
ます。私のR
スクリプトは 1 つのノードまたは 1 つのスレッドしか見つけられないようです。MPI
クラスターを構築する正しい方法は何ですか?
r - R の sfInit() snowfall パッケージが Windows 7 でハングする
Windows 7 を実行している作業マシンですべて (4 つ) のプロセッサを利用するためのいくつかのガイドに従おうとしています。それらはすべて snowfall() パッケージを提案しています。ただし、次のコードを実行すると、R は終了するまで実行されます。つまり、R がハングします。
と同じ結果
そして再び
好奇心のために、私の Sys.info()
と...