問題タブ [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 は CompressedRleList で動作しますか?
mclapply は CompressedRleList で動作しますか?
たとえば、葉巻 (a) のベクトルがあり、cigarToRleList はそのベクトルを指定して CompressedRleList を返します。
b で mclapply を実行しようとすると、次のエラーが発生します。
このリストの長さは 1 であるため、 b をリストに強制しても役に立たないようです。
mclapply を CompressedRleList 構造で動作させる方法はありますか?
r - mclapply を使用して葉巻のベクトルを効率的に分割する方法
私は葉巻の非常に大きなベクトルを持っています:
分割された葉巻のベクトルに変換したい - ロジックは次のとおりです: 数値の後に N が続く場合は常に、それを分割する必要があります。そのため、「32M465N3M」を「32M」に分割しました。 465N"、"3M"; 「3S4I3D45N65M」から「3S4I3D」、「45N」、「65M」。「44M2D1I」は「N」がないため分割されませんでした。
私のベクトルは非常に大きいので、理想的にはクラスターの並列機能を使用したいと考えています。ncores で mclapply を使用したいと思います。
理想的には、次のように定義したいと思います。
ここで、my.vector.split の長さは length(my.vector) + (N の数)*2 です。
ノート。私が使用している HPC クラスターには最新の生体伝導体がインストールされていないため、cigartoRleList やその他の優れた葉巻操作ツールを使用できません。
r - mclapply を使用して I に付随するものを除くすべての数字を合計する効率的な方法
次のベクトルがあります。
そして、それを次のベクトルに変換したいと思います。
このような結果のロジックは次のとおりです。文字の"4M1D5M15I1D10M"
前にある数字、つまり 4+1+5+1+10=21 を除くすべての数字を追加したためです"I"
(15 は の前にあるため、追加しませんでした"I"
)。 21 の直後に N を貼り付けると、 になり"21N"
ます。
も同じで"3M"
、"I"
文字がないのでただ"3N"
;になります。最後のものも同じで、 4+3=7 ( の前にあるので 2 は追加しませんでした"I"
) になり、 になり"7N"
ます。
my.vector は非常に大きいため、mclapply を使用して HPC サーバーの並列機能を使用したいと考えています。理想的には、次のようなものを実行して結果を取得します。
関数を定義するために、次のことを試しました。
ただし、そのような機能の効率についてはわかりません...
r - 複数のコアと並列プログラミングを使用して data.table グループを高速化
私は大きなコードを持っており、集約ステップが現在速度のボトルネックになっています。
私のコードでは、データのグループ化ステップを高速化して高速化したいと考えています。私のデータの SNOTE (単純で重要な例) は次のようになります。
これは、このような大規模なデータの例では非常に高速ですが、私の場合は、さらに高速化を求めています。私の場合、複数のコアを持っているので、そのような計算能力を使用する方法があるに違いないとほぼ確信しています。
データ型を data.frame または idata.frame オブジェクトに変更することにオープンです (理論的には、idata.frame は data.frames よりも高速であると考えられます)。
私はいくつかの調査を行い、plyr パッケージには役立つ可能性のある並列機能がいくつかあるようですが、私が行おうとしているグループ化のためにそれを行う方法についてはまだ苦労しています。別の SO 投稿では、これらのアイデアのいくつかについて説明しています。foreach関数を使用しているため、この並列化でどれだけ多くのことを達成できるかはまだわかりません. 私の経験では、foreach 関数は何百万もの高速操作には適していません。コア間の通信作業によって並列化作業が遅くなるためです。
r - mclapply はランダムに NULL を返します
mclapply を使用していると、ときどき (本当にランダムに) 間違った結果が得られます。この問題は、インターネット上の他の投稿 ( http://r.789695.n4.nabble.com/Bug-in-mclapply-td4652743.html )などで非常に詳しく説明されています。ただし、解決策は提供されません。この問題を解決する方法を知っている人はいますか?ありがとうございました!
r - mclapply を使用すると、各シングル コアが並列化されていないバージョンよりも遅くなる
私は R での並列計算について学んでおり、実験でこれが起こっていることを発見しました。
簡単に言うと、次の例で、「user」のほとんどの値が の値t
よりも小さいのはなぜmc_t
ですか? 私のマシンには 32GB のメモリ、合計 4 つのコアと 8 つのハイパースレッドを備えた 2 つの CPU があります。
そしてsessionInfo()
:
明確にするために:私の説明があいまいかもしれません。ミッション全体としてはパラレルの方が早いのは理解しています。ただし、タイムカウンターは計算用の関数にあるだけで、各子プロセスのセットアップオーバーヘッドの時間はmclapply
考慮されていません。だから、なぜこの純粋な計算(つまり、m%*%t(m)
)のステップが遅いのか、まだ混乱しています。