問題タブ [plinq]
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.
c# - Any Good Patterns For Distributed Parallelism?
I've got a for loop I want to parallelize with something like PLINQ's Parallel.ForEach().
The key here is that the C++ library i'm calling to do the computation is decidedly not thread safe, therefore, any plans to parallelize this need to do so across multiple processes.
I was thinking about using WCF to create a "distributor" process to which the "client" and multiple "calculators" could both connect and add/remove items to/from a queue and then the "calculator" sends the results directly back to the client which could update the gui as it receives them. This architecture would allow me to bring as many "calculators" online as I have processors and as I see it even bring them up across multiple computers creating a potential farm of processing power to which all the clients could share.
I'm just wondering if anyone has had any experience doing this and if there are existing application blocks or frameworks that I can use to build this for me. PLINQ does it within the process. is there like a DPLINQ (distributed) or something?
Also if that doesn't exist, does anybody want to give an opinion on my proposed architecture? Any obvious pitfalls? Does anyone think it will work!?!?!?
c#-4.0 - C#:AsParallel-順序は重要ですか?
並列化したい単純なLinQ-to-objectクエリを作成していますが、ステートメントの順序が重要かどうか疑問に思っていますか?
例えば
対。
違いはありますか?
parallel-processing - これは PLINQ のバグですか?
PLINQ 出力が順次処理や Parallel.For ループと異なる理由
10,000,000 個の数値の平方根の合計を追加したい.. 3 つのケースのコードは次のとおりです。
シーケンシャル for ループ:
これの出力は次のとおりです: 21081852648.717
Parallel.For ループを使用するようになりました:
これの出力は次のとおりです: 21081852648.7199
PLINQ を使用中
これの出力は次のとおりです: 21081852648.72
PLINQ 出力と Parallel.For および Sequential for ループに違いがあるのはなぜですか?
asp.net - ASP.NET 4 で同時処理を実行することは可能ですか?
ASP.NET 4 で並列プログラミングを使用することは可能ですか? たとえば、PLINQ です。
(現在、すべてのホスティング サーバーがマルチコアになっているため、パフォーマンスが向上しますか?)
.net - 複数のスレッドでの TransactionScope
重複の可能性:
TransactionScope とマルチスレッド
変更をロールバックできるように、TransactionScope を使用しています。また、実行したい操作の IEnumerable で PLINQ を使用しています。
TransactionScope は PLINQ によって作成された新しいスレッドに引き継がれないため、各操作は元のスレッドの TransactionScope によってブロックされ、並列化された操作は (ADO .NET レベルで) タイムアウトします。
これを回避する方法、または私の TransactionScope を新しいスレッドに運ぶ方法はありますか? それが必要な場合は、MSDTC にエスカレートしてもかまいません。
ありがとう。
c# - 複数の限られた数のスレッドを使用してアイテムのリストを処理する
基本的に、アイテムのリストを一度に 1 つずつではなく、複数のスレッドで処理したいと考えています。一度に実行できるスレッド数を制限したい。このアプローチは理にかなっていますか?スレッド数にグローバル変数を使用することが唯一のオプションですか? (以下の疑似コード)
c# - PLinq は System.Threading.Tasks.Parallel.ForEach よりも本質的に高速です
概要: System.Threading.Tasks.Parallel.ForEach と Concurrent Data 構造から単純な plinq (Parallel Linq) クエリに変更しました。スピードアップはすごかった。
plinq は本質的に Parallel.ForEach よりも速いのでしょうか? または、タスクに固有のものです。
注: 各タスク (PerformWork) は 0 ~ 200 ミリ秒で実行されるようになりました。以前は最適化するまでに時間がかかりました。そのため、最初に Tasks.Parallel ライブラリを使用していました。そのため、合計時間は 2 秒から 100 ~ 200 ミリ秒になり、ほぼ同じ作業を別の方法で実行しました。(すごい linq と plinq は素晴らしいです!)
質問:
- plinq と Parallel.ForEach を使用することで速度が向上しますか?
- 代わりに、単に並行データ構造 (ConcurrentDictionary) を削除するだけですか? (スレッドを同期する必要がないため)。
- この関連する質問の回答に基づいて
PLINQ は主に、副作用のない関数型プログラミング スタイルに基づいていますが、副作用はまさに TPL の目的です。物事を並行して検索/選択するのではなく、実際に並行して作業を行いたい場合は、TPL を使用します。
私のパターンは基本的に機能しているため (入力を与えると、突然変異なしで新しい出力が生成される)、plinq が使用する正しいテクノロジであると仮定できますか?
私の仮定が正しいという検証、または何かが欠けているという兆候を探しています。
c# - 優先度の低いPLINQAsParallel()?
PLINQ AsParallel()の一部を実行することは可能ですか?他よりも優先度の低いクエリですか?(または他よりも優先度の高いものもあります)これはPLinqで可能ですか、それともPLINQを避けて、すべてを自分で行う必要がありますか?
編集/更新:
電話をかけることは可能でしょうか
低い優先度をアーカイブしたい場合、並列実行メソッド内で?それとも、それは非常に悪い習慣/ハックですか?
linq - バックグラウンドでの Linq クエリ - PLINQ の何か
バックグラウンドでLinqクエリを実行するためのすぐに使えるものはありますか?おそらくPLINQに基づいていますか? いくつか試してみましたが、適切なアプローチが見つかりませんでした。
そのためにバックグラウンドワーカーを作成できることは知っていますが、自分で処理全体を書く必要のない「ただ使用できる」ものを探しています。
全体像: WinForm アプリケーションを (LINQ 経由で) データを読み取る際に反応的に保ち、大量のデータを読み取る際の「ブロッキング」を回避するようにしています。
c# - 何を平行にする?何が私をより良くしてくれるでしょうか?(.net Web ビジネス アプリケーション、MVC+SL)
私は、データ ストレージに MSSQL を使用する Web アプリケーション フレームワークに取り組んでおり、ほとんどは CRUD 操作を行い (ただし、任意の複雑な構造で)、豊富な Silverlight 管理者用の WCF インターフェイスを提供し、MVC3 ディスプレイ (およびユーザーのようないくつかの基本的なフォーム) を備えています。設定など)。
ユーザーフレンドリーな方法で、(それなりに) 複雑なデータ構造を読み込み、表示、編集、保存できるようになりつつあります。
しかし、私は将来を見据えており、自分の能力を拡大したいと考えています (そして、その過程で新しいことを学ぶのも楽しいでしょう...) - だから私は決めました (C に何が来るかを考慮して) #5...) いくつかの並列/非同期の最適化を試みます... 現在、私はまだ TPL と PLinq を学んでさえいないので、そこでもアドバイスをいただければ幸いです。
だから私の質問は、並列処理が役立つ可能性のある分野は何ですか? また、TPL と PLinq はどこで私を助けてくれますか?
私の直感によると、データ構造のブランチを並行してデータベースに保存することができます (これは、最大のパフォーマンスの最適化が期待される場所です)。いくつかの複雑な操作 (ファイルのアップロード、メールの送信など) を実行できます。クライアント上で複雑な SL UI ビューを並行して構築できますか? (ビューに 60 個のデータ バインド フィールドを作成すると、「点滅」が発生する可能性があります...) MVC で部分的なビュー (メニュー、カテゴリ ツリー、検索フォームなど) を一度に作成できますか?
ps: これが「並列処理についてすべて教えてください」スレッドになったら、喜んでコミュニティ wiki にします...