2016-05-05 9 views
0

私たちには、スレッド化ビルディングブロック4.4を使用して並列性を管理するHPCタイプの計算を行うネイティブ.dllがあります。この.dllは、それ自体がマルチスレッドの.Netデスクトッププログラムから呼び出されます。私はtbbの初心者で、この種のセットアップがいくつかの問題を招いているのか疑問に思っていました。私のtbbの使用はかなり基本的です - 私はただ一つの特定の計算を行うためにparallel_reduceを呼び出しています。私は明示的にtbbスレッドプールを設定していません。私はそのためのデフォルトの初期化に頼っています。マルチスレッドの.netアプリケーションから呼び出されるネイティブDLLのtbbに関する問題?

システムテストを実行すると、断続的なプロセスハングが発生しています。私たちは、ネイティブdllを孤立してテストするときにこれらを見ないので、問題を構築するのが難しいことを示す最小限の例が期待されます。この使用シナリオで本質的な問題が発生する可能性がある場合は、推薦できるよりもtbbに精通した方がいいと思っています。

ところで、すべてがx86-64プラットフォームのWindows 10で実行されています。

+0

「断続的なプロセスがハングする」のをどのように観察しますか? GUIが遅延でリフレッシュされていますか?システム全体が応答しなくなりますか? CPU使用率とオーバーサブスクリプションが高いことが原因ではありませんか? – Alex

+0

@Alex - 2つの動作:1、GUIはCPUのアクティビティなしで応答しなくなります。 2、GUIはクラッシュしたようにシャットダウンしますが、「このアプリケーションにはエラーが発生しました」というダイアログは表示されません。 – antlersoft

+0

ネイティブコードのメモリエラー(たとえばマーシャリングの誤りなど)が管理されたランタイムの動作が不安定になることはありませんか?空のBodyでparallel_reduceを実行しようとしましたか? – Alex

答えて

0

私の質問に対する答えは、問題はないと思われます。このシナリオでは、スレッディングビルディングブロックは正常に動作します。 parallel_reduceを削除しても動作は変更されませんでした。さらに調査すると、問題はマネージコードに限定されていました。 TBBとはまったく関係がありませんでした。

関連する問題