弱い順序の同時実行を実験するのに役立つツールは何ですか? つまり、パーシャル フェンス、弱いアトミック、取得/消費/解放セマンティクス、ロックフリー アルゴリズムなどについて学習しながら、どのサンドボックスでプレイできるでしょうか?
必要なツールまたはサンドボックスは、アルゴリズムが理論的に失敗する可能性のあるさまざまな方法を明らかにして、弱く順序付けられたスレッド化されたアルゴリズムを実行および強調します。たとえば、x86 上で物理的に実行されている場合でも、このツールは ARM タイプの障害を公開できます。
オープンソースのツールが望ましいでしょう。お知らせ下さい。
参考文献:
- C++11 ドラフト標準(PDF、条項 1、29、および 30 を参照)。
- ハンス-J. 主題のベームの概要。
- この件については、マッケニー、ベーム、クロール。
- この件に関するGCCの開発ノート;
- この件に関する Linux カーネルのメモ。
- Stackoverflow に関する回答付きの関連する質問
- 別の質問です。これはフェンスとアトミックを比較するものです。
- Cppmem (@KerrekSB のアドバイスによる);
- Cppmem のヘルプ ページ;
- Spin (@JohnZwinck のアドバイスによる、並行システムの論理的一貫性を分析するためのツール)。
(参照は C++11 に向けられています。なぜなら、これがたまたまこのテーマにアプローチしたからです。しかし、私が知る限り、C++ 以外の回答が最善かもしれません。フィット。)