問題タブ [pmap]
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.
memory-leaks - Solaris : pmap は ps とは異なる仮想メモリ サイズを報告します
Solaris (SunOS m1001 5.10 sun4v sparc) で実行されているプロセスがあり、使用される仮想メモリの合計を監視していました。
定期的に ps を実行すると、VSZ が 80k バイトのジャンプで時間の経過とともに直線的に増加し、4GB の制限に達するまで増加し続け、その時点でアドレス空間が不足し、物事が崩壊し始めることが示されました。
私はメモリ リークを疑い、pmap でさらに調査することにしました。しかし、pmap は、VSZ がまったく成長しておらず、むしろ安定していることを示しています。また、すべてのファイル マップ、共有メモリ マップ、およびヒープが同じサイズに保たれました。
私の最初の質問は、ps と pmap が同じプロセスに対して異なる VSZ を生成するのはなぜですか?
ヒープ サイズの計算方法が異なると想像できます (たとえば、ヒープ使用量と最高ヒープ ポインター)。次に、libumem と mdb を使用して、割り当てられたメモリに関する詳細なレポートをさまざまな時点で作成しましたが、割り当てられたメモリにまったく違いがないことに気付きました。
私の 2 番目の質問は、ps によって報告された VSZ の増加の原因を突き止める最善の方法は何かということです。
performance - Elixirですべてのコアを使用するために並行関数(pmap)を取得するには?
私は Elixir の初心者で、Dave Thomas の優れたProgramming Elixirを読み始めています。「pmap」関数の同時実行性をどこまで高めることができるかに興味があったので、2 乗する項目の数を 1,000 から 10,000,000 に繰り返し増やしました。好奇心から、私が行った出力を観察したところhtop
、通常は以下に示すような CPU 使用率でピークに達しました。
本で例を示した後、デイブは次のように述べています。
そして、はい、1,000 のバックグラウンド プロセスを開始し、マシンのすべてのコアとプロセッサを使用しました。
私の質問は、なぜ私のマシンでコア 1、3、5、および 7 だけが点灯しているのかということです。私の推測では、私のiex
プロセスが単一の OS レベルのプロセスであり、OSX がそのプロセスの範囲を管理していることに関係していると思います。それがここで起こっていることですか?すべてのコアがパフォーマンス集約型のタスクに確実に使用されるようにする方法はありますか?
parallel-processing - おもちゃの例ではpmapが遅い
Julia で並列処理をテストして、マシンの速度が向上するかどうかを確認しています (新しいアルゴリズムを実装する言語を選択しています)。巨大な例を書くのに多くの時間を費やしたくなかったので、リリース バージョン Julia 0.4.5 (Mac OS X およびデュアル コア) で次のテストを行いました。
pmap
map よりも大幅に遅く (>20x)、10x をはるかに超えるメモリを割り当てます。私は何を間違っていますか?
ありがとう。
clojure - pmap|reducers/map がすべての CPU コアを使用していないのはなぜですか?
100 万行のファイルを解析しようとしています。各行は、書籍に関する情報 (著者、内容など) を含む json 文字列です。を使用しようとするとプログラムが をスローするため、 iotaを使用してファイルをロードしています。また、チェシャを使用して文字列を解析しています。プログラムは単にファイルをロードし、すべての本のすべての単語を数えます。OutOfMemoryError
slurp
私の最初の試みpmap
には、重い作業が含まれていましたが、これは基本的にすべての CPU コアを利用することになると考えました。
すべてのコアを使用しているように見えますが、各コアがその容量の 50% 以上を使用することはめったにありません。私の推測では、pmap のバッチ サイズに関係しているため、いくつかのコメントがライブラリを参照しているという比較的古い質問clojure.core.reducers
に出くわしました。 .
を使用して関数を書き直すことにしましたreducers/map
:
ただし、CPU の使用率は悪く、以前の実装と比較して完了するまでに時間がかかります。
私は何を間違っていますか?大きなファイルを解析するとき、mmap の読み込み + レデューサーは正しいアプローチですか?
編集:これは私が使用しているファイルです。
EDIT2:iota/seq
代わりに次のタイミングがありますiota/vec
:
r - ジュリア pmap パフォーマンス
R コードの一部を Julia に移植しようとしています。基本的に、Julia で次の R コードを書き直しました。
お気づきのように、1 つのコアから 11 のコアに移行すると、速度が大幅に向上します。今、Julia で同じことをしようとしています。
お気づきのように、pmap を使用しても速度が向上しません。誰かが代替案を提案できるかもしれません。
function - ジュリア、関数を複数回実行し、結果を配列に保存
Juliaでマイクロシミュレーションモデルを構築しています。私は自分の関数の構造を構築しましたが、それは1人の「人」に最適です。モデルを通じて 100000 人以上の人々を実行し、結果を 1 つの場所に保存するスクリプトを書きたいと思います。
最終的にはこれを並行して実行したいと思います。
以下に、ダミーの確率を持つコードの単純な作業バージョンを含めました。