問題タブ [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 - 関数 tm::tm_map でエラーが発生しました
「oanc」がVCorpus
あり、すべての単語を小文字に変更したいので、次の関数を使用します
しかし、私は警告を受けました:
「VCorpus
oanc」のサイズは 586MB ですが、「oanc1」はわずか 4MB です。さらに、最初のテキストを除くすべてのコンテンツが壊れており、実行すると
私は得た
誰でも私を助けることができますか?私のオペレーティング システムは ubuntu 14.04LTS で、R バージョン 3.2.0 です。
r - apply 関数を lapply に置き換えます
正規表現を使用して単語のさまざまな組み合わせの集計値を計算するデータ セットを作成しています。各行には一意の正規表現値があり、これを別のデータセットと照合して、出現回数を調べたいと考えています。
最初のデータセット (df1) は次のようになります。
これと一致させたい他のデータセット(df2)は次のようになります
最終的な出力は、word1 word2 total_occ air 10 1 airport 20 3 car 30 1 のようになります。
Rでapplyを使用してこれを行うことができます
私のデータセットはかなり大きいので、時間がかかります。
「parallel」パッケージの「mclapply」機能を使用して、マルチコアでそのようなことを実行できることがわかりました。そのために、最初にlapplyを実行しようとしています。それは私にエラーを与えています
x[, "pattern"] のエラー: 次元数が正しくありません
lapply を正しく実行するには、どのような変更を加える必要があるか教えてください。
r - 出力に依存関係がある場合、mclapply は待機しますか?
次の疑似コードの状況があります。
results1 <- mclapply(stuff, myfunc1())
results2 <- mclapply(morestuff, myfunc2())
finalresults <- mclapply(results1, results2)
パッケージは、計算を試みる前に、生成されたすべてのスレッドが完了するresults1
まで待機するのに十分スマートですか? そうでない場合、完全に完了するまで先に進まないようにフラグを立てることはできますか? 等?results2
finalResults
results1
r - 2 つのリスト間のあいまい一致 - 効率のための二重ループの改善
agrepを使用して、リスト内の各要素を別のリスト内の各要素に対して効果的にチェックする必要がある以下のMWEの目的の最適な再加工された実装に関するアドバイスを探しています。この例は 2x2 ですが、私の実際の問題は 2,500x75,000 のようなものです。したがって、並列化に関するヒントも役立つかもしれません。
r - r を foreach と mclapply で同時に並列化
最終的にクラスターに展開される並列処理システムを実装していますが、並列処理のさまざまな方法がどのように相互作用するかを理解するのに苦労しています。
for ループを使用して、行列操作の大きなリストをいくつか含む大きなコード ブロックを実行する必要があります。これを高速化するために、for ループを foreach() で並列化し、リスト操作を mclapply で並列化します。
疑似コードの例:
これはうまくいくようです。私の質問は次のとおりです。
1)それは合理的なアプローチですか?私の小規模なテストでは、それらは連携して動作しているように見えますが、少しぎこちなく感じます。
2) いつでもいくつのコア/プロセッサを使用しますか? それをクラスターにアップスケールするとき、これをどれだけプッシュできるかを理解する必要があります (foreach は 7 回しかループしませんが、mclapply リストは最大 70 ほどの大きな行列です)。書かれているように、6つの「コア」を作成するようです(おそらく、foreachに2つ、各mclapplyに2つ)。
r - R 関数 mclapply によるパフォーマンス オーバーヘッド
mclapply
非常に大きなデータセットでR 関数を使用しているときに、パフォーマンスのオーバーヘッドが発生しています。たとえば、次のおもちゃの例を考えてみましょう (これは、部分行列の要素を並列に合計することにあります)。
私のクアッドコア Intel Xeon W3550 では、サブマトリックスが行単位の場合、並列アプローチは明らかに効率的ではありません (スピードアップ x0.8!)。
ただし、部分行列が colwise の場合は、はるかに効率的です (1.8 倍高速化しますが、まだ完全ではありません)。
その間、12 コアの AMD Opteron 6174 で同じ実験を行ったところ、スピードアップはそれぞれ x1.8 と x3.9 でした (まだ mc.cores=4 を使用) !
これらの影響はプロセッサのアーキテクチャに依存するため、これらのパフォーマンスの低下を説明できるキャッシュの問題やメモリのコピーの問題はありますか? 助言がありますか?
r - foreach ループでの mclapply の R エラー
この投稿 hereに基づいて、スクリプトを作成しようとしました。
最初は機能しましたが、現在エラーコードがスローされています。
何が起こっているのか分かりますか?mclapply を foreach ループに入れることさえできますか?
編集:これはクラスターではなく、単一の8コアマシン上にあるとも言いたいです。
r - R の mclapply: オブジェクト 'X' が見つかりません
(Mac 上で) parallel パッケージから mclapply を使用しようとしていますが、問題が発生しています。関数 edge.loop を次のように定義しました。
この関数を次のように呼び出すと、
それはうまくいきますが、試してみると
また
読み取りエラーが発生する
何が起こっているのか分かりますか?前もって感謝します!
r - R (Windows) での大きなラスターの並列処理
私は doSNOW パッケージ、より具体的には parLapply 関数を使用して、大きなラスター データセット (OS: Windows x64) のリストに対して再分類 (およびその後の他の操作) を実行しています。
コードは、次の最小限の例に少し似ています。
コードは実際に意図したとおりに機能します。結果を続行したいときに問題が発生します。次のエラー メッセージが表示されます。
私が理解している限り、ラスターは非常に大きいため、ディスク上の一時ファイルに保存されます。雪のクラスターを閉じると、これらのファイルにアクセスできなくなります。
私の質問は、クラスターが閉じられた後にデータにアクセスするにはどうすればよいですか? この方法で続行できますか?
ありがとう!