回答編集履歴
1
appendix
answer
CHANGED
@@ -29,4 +29,9 @@
|
|
29
29
|
- C++言語のメモリモデルを理解していること。少なくとも、relaxed/release-acquire/sequential consistencyメモリアクセスの違いを正しく認識していないと、プログラムに超難解な潜在バグを埋め込むだけです。
|
30
30
|
- 対象アーキテクチャのハードウェアメモリモデルを十分に理解していること。ARMアーキテクチャなど弱いメモリモデルでは大きな効果を得られる可能性がありますが、x86アーキテクチャなど強いメモリモデルでは期待するほどの効果は得られないでしょう。
|
31
31
|
|
32
|
-
また、対象プログラムにおいてatomicアクセスが真の問題になるほど**重い**かは十分考慮してください。(個人的には)そもそも並列化設計が適切でないことがほとんどと思います。その変数は本当に並行更新する必要があるのでしょうか?Map-Reduce方式のような更新はできないのでしょうか?
|
32
|
+
また、対象プログラムにおいてatomicアクセスが真の問題になるほど**重い**かは十分考慮してください。(個人的には)そもそも並列化設計が適切でないことがほとんどと思います。その変数は本当に並行更新する必要があるのでしょうか?Map-Reduce方式のような更新はできないのでしょうか?
|
33
|
+
|
34
|
+
下記記事もご参考に:
|
35
|
+
|
36
|
+
- [メモリモデル?なにそれ?おいしいの?](http://yohhoy.hatenablog.jp/entries/2014/12/21)
|
37
|
+
- [C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?)](http://qiita.com/yohhoy/items/603f636e39188a9c3439)
|