問題タブ [parallel-processing]

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.

0 投票する
6 に答える
883 参照

c# - .NETでの驚異的並列化可能なタスク

驚異的並列化可能なタスクを多数実行する必要がある問題に取り組んでいます。タスクはデータベースからデータを読み取ることによって作成されますが、すべてのタスクのコレクションはマシン上のメモリの量を超えるため、タスクを作成、処理、および破棄する必要があります。この問題を解決するための良いアプローチは何でしょうか?私は次の2つのアプローチを考えています。

  1. 同期されたタスクキューを実装します。データベースからデータを読み取り、タスクをキューに入れるプロデューサー(タスククリエーター)を実装します(メモリの量を超えないように、現在キューにあるタスクの数を一定の値に制限します)。キューからタスクを読み取り、タスクを処理し、結果を保存してタスクを破棄する複数のコンシューマープロセス(タスクプロセッサ)を用意します。このアプローチでは、消費者プロセスの数はどれくらいになるでしょうか。

  2. .NET Parallel拡張機能(PLINQまたはparallel for)を使用しますが、タスクのコレクションを作成する必要があることを理解しています(Parallel forで処理しているときに、コレクションにタスクを追加できますか?)。したがって、タスクのバッチを作成します。たとえば、一度にN個のタスクを作成し、これらのタスクのバッチを処理して、別のN個のタスクを読み取ります。

これら2つのアプローチについてどう思いますか?

0 投票する
2 に答える
354 参照

sql-server-2008 - 並列処理は結果の数にどのように影響しますか?

次のようなかなり複雑なクエリがあります。

クエリは、cte3が6222 の異なる結果で満たされるようなものです。最終選択では、 cte3でそれ自体とのクロス結合を実行しています(後で、テーブル内のすべての値をテーブル内の他のすべての値と比較できるようにするため)。最後の行に注意してください:

どうやら、これは並列処理をオフにします。

したがって、cte3に6222の結果行がある場合、(6222 * 6221)/ 2、または19353531の結果が後続の交差結合選択になり、最後のmaxdop行が配置されると予想されます。

ただし、maxdop行を削除すると、結果の数は19380454にジャンプします。開発ボックスに4つのコアがあります。

WTF?誰かがこれがなぜであるか説明できますか?このように相互結合する以前のクエリを再検討する必要がありますか?

0 投票する
4 に答える
2957 参照

c - mprotect の呼び出しが多すぎます

私は並列アプリ(C、pthread)に取り組んでいます。ある時点で並列パフォーマンスが悪いため、システム コールをトレースしました。私のトレースは、私のプログラムがmprotect()何度も呼び出していることを示しました...私のプログラムを大幅に遅くするのに十分です。

私は大量のメモリを割り当てますが (を使用) 、ヒープ サイズを増やすためmalloc()の呼び出しは妥当な数しかありません。brk()では、なぜこれほど多くの呼び出しが行われるのmprotect()でしょうか?!

0 投票する
6 に答える
8324 参照

parallel-processing - ひどいパフォーマンス - 単純なオーバーヘッドの問題ですか、それともプログラムの欠陥ですか?

ここには、比較的単純な OpenMP コンストラクトであると私が理解しているものがあります。問題は、2 つのスレッドと比較して、1 つのスレッドでプログラムが約 100 ~ 300 倍高速に実行されることです。プログラムの 87% が で費やされgomp_send_wait()、さらに 9.5% が で費やされgomp_send_postます。

プログラムは正しい結果を返しますが、リソースの競合を引き起こしているコードに欠陥があるのか​​ 、それともチャンクサイズ4のループではスレッド作成のオーバーヘッドが大幅に価値がないだけなのか疑問に思います p。シミュレートしている分子のサイズに応じて、17 から 1000 までです。

私の数値は、p が 17 でチャンク サイズが 4 の場合の最悪の場合のものです。パフォーマンスは、静的、動的、またはガイド付きスケジューリングのいずれを使用しても同じです。p=150と チャンク サイズを使用75しても、プログラムはシリアルよりも 75 倍から 100 倍遅くなります。

0 投票する
4 に答える
8168 参照

matlab - MATLAB のプロセス間でメモリを共有するにはどうすればよいですか?

同じコンピューター上の MATLAB プロセス間でメモリを共有する方法はありますか?

マルチコア コンピューター (必要に応じて Windows を実行) でいくつかの MATLAB プロセスを実行しています。それらはすべて同じ巨大な入力データを使用します。メモリ内にコピーを 1 つだけ持つと便利です。

編集: 残念ながら、各プロセスは巨大な入力データ全体にアクセスする必要があるため、データを分割して問題を解決する方法はありません。

0 投票する
3 に答える
289 参照

cuda - 「初心者向け」分散処理プロジェクト

私は AI の研究に非常に興味があるので、家庭用のスーパーコンピューターを作ろうとして、異種ノードのクラスターを構築することに長い間興味を持っていました。

ただし、問題は、私が無数のハードウェアを持っているにもかかわらずです (2 台のデュアル クワッド ラック マウント サーバー、8 台の 285GTX Gpu、6 台の PS3、2 台のハッキングされた 360 (Linux を実行できます) は、多数の一般的な PC といくつかのワークステーションにアクセスできます)。クランチする必要がある大規模なデータセットはなく、分散して実行できるソフトウェアさえありません。私は分散コードのコンパイルをいじりましたが、せいぜいカーネルのビルドに 10 分 (最悪の場合) が 30 秒かかりました (そのうちの 20 秒はセットアップに過ぎないと思います)。

では、どこから始めればよいでしょうか。私は Obj-C/C/C++ について十分に理解しているので、何かを書くのはそれほど難しいことではありませんが、何を書くべきでしょうか?

0 投票する
4 に答える
730 参照

c - 画像パターンを検索

これを行うプログラムを実行する必要があります。画像(5 * 5ピクセル)が与えられた場合、他の多くの画像で構成された別の画像にそのような画像がいくつ存在するかを検索する必要があります。つまり、画像内の特定のパターンを検索する必要があります。

使用する言語はCです。4つの角度(0°、90°、180°、270°)で検索するには、並列計算を使用する必要があります。

それを行うための最良の方法は何ですか?

0 投票する
4 に答える
2667 参照

c# - 並列アプリケーションの可変と不変

私が作成しているアプリケーションでは、不変である可能性が高い多くの基本型を作成する必要があります。しかし、可変型と不変型が並列アプリケーションでどのように比較されるのか疑問に思っています。

変更可能なオブジェクトでロックを使用できますよね? 並列アプリケーションで不変型に使用される他の手法と比べてどうですか?

少なくとも、不変型のロックを使用することから離れていますよね?

0 投票する
2 に答える
145 参照

parallel-processing - 並列化による処理速度の最大化

アルゴリズムを並列化することで、線形速度の向上以上の効果が得られるケースはありますか?

0 投票する
2 に答える
229 参照

multithreading - 特定のコアで動作するようにスレッドを設定する利点は?

スレッドを実行するプロセッサを手動で選択することにより、システム パフォーマンスが向上することを示唆する証拠はありますか?

たとえば、最も多くの作業を行うスレッドを 1 つのコアに割り当て、他のすべての「ヘルパー」スレッドを別のコアに割り当てたとします。