有什么工具可以帮助人们尝试弱有序并发呢?也就是说,一个人可以在什么沙箱里玩,同时教自己关于部分栅栏、弱原子、获取/消费/释放语义、无锁算法等等?
您想要的工具或沙箱将练习和强调一个人的弱有序的线程算法,揭示了理论上该算法可能失败的各种方式。例如,在x86上物理运行时,该工具仍然能够暴露ARM类型的故障。
最好是开放源码工具。请给我建议。
参考文献:
(参考文献是面向C++11的,因为我正是这样处理这个主题的。然而,据我所知,非C++答案可能是最好的,因此,请随意将您的答案扩展到您认为合适的C++之外。
发布于 2013-01-04 17:32:37
这比您直接问到的问题要普遍得多,但是请看一下并发系统的"Spin“,一种”模型检查器“。在线手册在这里:http://spinroot.com/spin/Man/Manual.html
你可能会觉得它有点“老派”,但我看不出为什么它不适合你感兴趣的工作。但是,由于它是相当一般的,所以您可能需要做一些工作来教这个工具有关问题空间。好消息是它是独立于平台的。坏消息是,您可能需要明确地对每种计算机体系结构建模(例如,Spin在本质上并不了解ARM与x86之间的保证)。但是,也许有些工作已经在其他地方完成了(我没有检查),并且/或者你可以分享你所做的事情的一部分,其他人也可能从中受益。毕竟,这个工具是开源的。
发布于 2014-05-06 10:55:56
您可能有兴趣查看一下http://www.cprover.org/wmm/,并按照链接找到关于弱内存的工具和相应的论文,特别是CAV 2013年的论文并行软件有效BMC的部分命令和CAV 2014年的论文不要坐在篱笆上:一种自动插入栅栏的静态分析方法可能是一个很好的起点。您还将在那里找到许多真实的示例代码和基准测试。
https://stackoverflow.com/questions/14161049
复制相似问题