問題タブ [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 に答える
2427 参照

unit-testing - 同時Erlangコードをユニットテストするための最良の方法は何ですか?

私はErlangで少し時間を過ごしており、書いているコードにTDDを適用したいと思っています。

標準ライブラリのEUnitは、通常のスタイルのコードをテストするための優れた従来の単体テストフレームワークを提供しますが、ErlangでLOTで使用される並行コードのテストに特に役立つものはないようです。

ここでErlangについて話していることに注意してください。これは、並行プロセス間の通信に(共有状態ではなく)メッセージパッシングを使用するため、共有状態言語で並行コードを単体テストする手法は適用できない場合があります。

Erlangで並行コードをテストする良い方法を見つけた人はいますか?

0 投票する
1 に答える
98 参照

visual-studio-2008 - /m:x (x > 1) を使用して、MSBuild2008 のロガーでエラーをプロジェクトに割り当てます。

MSBuild2005 を使用して、現在ビルド中のプロジェクトを追跡し、受信したエラー/警告をプロジェクトに割り当てる自己記述の Logger クラスを使用してビルドします。MSBuild は、参照されたプロジェクトに「何らかの方法で」アクセスするときに ProjectStarted/FinishedEventArgs も呼び出すため、これはちょっと注意が必要でした。しかし、私はそれを機能させました。

次に、MSBuild2008 に切り替えます。並列ビルド (/m:2 以上; これは私が待ち望んでいた機能です!) をオンにするまで、すべてが正常に機能します。私の理解では、BuildEventMessages の ThreadId プロパティを監視することで、並列タスクを追跡できるということでした。ただし、並列ビルドを有効にするとすぐに、これは期待どおりに機能しません。あるプロジェクトが ThreadId 1 でビルドされ、別のプロジェクトが ThreadId 5 で開始されるケースがありました。しかし、その後、3 番目のプログラムが ThreadId 5 で開始されます! 興味深いことに、これらのプロジェクトは「スタックのように」動作します。つまり、2 番目のプロジェクトが最初のプロジェクトの前に終了します。だから私は考えました:大丈夫かもしれませんが、どうすればエラーを割り当てることができますか。1 つのプロジェクトに誤ったコードを挿入したことを確認するため。その結果、エラー メッセージにはまったく新しい ThreadId (1 または 5 ではなく 6) が含まれていました。

私の質問は次のとおりです。エラー/警告メッセージをプロジェクトに割り当てるにはどうすればよいですか?

0 投票する
12 に答える
21853 参照

python - Linux でのコマンド キューからの並列処理 (bash、python、ruby など)

Linux サーバーのシェルで実行する必要がある 200 個のコマンドのリスト/キューがあります。

一度に最大 10 個のプロセスを (キューから) 実行したいだけです。一部のプロセスは完了までに数秒かかりますが、他のプロセスはそれよりもはるかに時間がかかります。

プロセスが終了したら、次のコマンドをキューから「ポップ」して実行したいと考えています。

この問題を解決するコードを持っている人はいますか?

さらに詳しく:

ある種のキューに、実行する必要がある 200 個の作業があります。一度に最大 10 個の作業を実行したいと考えています。スレッドが作業を終了すると、キューに次の作業を要求する必要があります。キューに作業がなくなった場合、スレッドは終了するはずです。すべてのスレッドが死んだら、すべての作業が完了したことを意味します。

私が解決しようとしている実際の問題はimapsync、200 個のメールボックスを古いメール サーバーから新しいメール サーバーに同期することです。メールボックスが大きく同期に時間がかかるユーザーもいれば、メールボックスが非常に小さく同期が速いユーザーもいます。

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

windows - ダイレクト I/O 用の Windows カーネル ドライバー - 行った人はいますか?

パラレル ポートへの直接 I/O を、現在行っているよりも適切な方法で処理する必要があります。現在、I/O 保護マップを使用して使用可能なアドレスを「開く」カーネル ドライバーを使用しています。これは問題なく機能しますが、ますます取り残されています。引き続きパラレル ポートを使用したいと考えており、CardBus ExpressCard などのパラレル ポート カード ベンダーは非常に満足しています。私の(Delphi)アプリからのこのアドレス。このトピックの明らかな複雑さのために、私はどこから始めるべきか悩んでいます。誰かこのルートに行ったことがありますか?

0 投票する
11 に答える
1136 参照

.net - メソッドを複数回実行するが、接続/スレッドを管理する方法はありますか?(。ネット)

  1. 接続を使用するメソッドがあります(たとえば、ページをダウンロードするメソッド)。
  2. このメソッドを複数回実行する必要があります(たとえば、1000ページをダウンロードします)。
  3. 同期的かつ順次的な方法でそれを行うには長い時間がかかります。
  4. リソースが限られています(最大8スレッドおよび/または最大50の同時接続)
  5. 私はそれを加速するためにすべてのリソースを使用したいと思います。
  6. 並列化(PLINQ、Parallel Extensionsなど)で問題を解決できることは知っていますが、すでに試しましたが、リソースが不足しているため、このアプローチは失敗します。
  7. リソースを管理しながら、この種のタスクを並列化する車輪の再発明はしたくありません。誰かが以前にそれを実行し、このためのライブラリ/チュートリアルを提供した必要があります。

誰か助けてもらえますか?

非同期呼び出しと並列化を組み合わせてパフォーマンスを最大化すると、更新がさらに複雑になります。これは、Firefoxダウンローダーなどの複数のダウンローダーに実装されており、2つのダウンロードを同時に取得し、そのうちの1つが完了すると、次のファイルを取得します。実装は非常に簡単に思えるかもしれませんが、実装したとき、汎用(WebRequestとDbCommandに便利)にしたり、問題(タイムアウトなど)に対処したりするのに問題がありました。

バウンティハンターバウンティは、信頼性が高く無料の($$).NETライブラリをリンクする最初のライブラリに付与されます。このライブラリは、非同期タスクをHttpWebRequests.BegingetResponseおよびSqlCommand.BeginExecuteNonQueryとして並列化する簡単なC#の方法を提供します。並列化は、N個のタスクが完了するのを待ってから、次のN個を開始する必要はありませんが、最初のN個のタスクの1つが終了するとすぐに新しいタスクを開始する必要があります。メソッドは、タイムアウト処理を提供する必要がありました。

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

ssis - 複数のタスクが使用可能な場合、SSISは次に実行するタスクをどのように決定しますか

たとえば、4つの(空白の)スクリプトタスクA1、A2、B1、およびB2を追加すると、A2にはA1の後に実行する制約があり、B2にはB1の後に実行する制約がありますが、A1とB1のどちらにも制約はありません。タスクは実行されますか?

これを試してみると、A1、B1、A2、B2の順になっているようです。しかし、なぜ?好奇心からのこの質問。


追加するために編集:

特に並列処理を1に設定し、メッセージボックスを追加して、順序を確認できるようにしました。それは常に私が上で述べたのと同じ順序を取りますが、なぜそれがこの順序を選択するのかについて何らかの論理があるかどうかについて興味がありました。


最初にすべてのレベル1(制約なし)タスクを実行してから、制約付きタスクを続行するようです。

0 投票する
5 に答える
1296 参照

language-agnostic - グランド セントラル vs パラレル エクステンション

Apple の今後の "Grand Central" テクノロジ (Snow Leopard で) に関する優れた Web サイトと、Microsoft の Parallel Extensions (およびネイティブの並列コンピューティング機能) との比較を知っている人はいますか?

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

parallel-processing - 式の結果を計算する最良の方法は?

私は現在、何百ものユーザー定義式を含むことができるアプリケーションを持っています。現在、逆ポーランド記法を使用して計算を実行しています (値と変数をスタックにプッシュし、スタックからポップして評価します)。このプロセスの並列化を開始する最良の方法は何ですか? 関数型言語を検討する必要がありますか?

計算は数値の配列に対して実行されるため、たとえば、単純な A+B は実際には数百の加算を意味する可能性があります。私は現在 Delphi を使用していますが、これは今後の要件ではありません。その仕事に最も適したツールを使用します。数式は相互に依存する場合もあるため、たとえば、1 つの数式 C=A+B と 2 つ目の数式 D=C+A がある場合があります。