concurrency - 实验弱有序并发的工具

标签 concurrency c++11 lock-free atomic formal-verification

有哪些工具可以帮助人们尝试弱有序并发?也就是说,在自学部分围栏、弱原子、获取/使用/释放语义、锁的同时可以在什么沙箱中进行游戏-免费算法之类的?

人们想要的工具或沙箱会锻炼和强调弱有序的线程算法,暴露算法理论上可能失败的各种方式。例如,在物理上运行在 x86 上时,该工具仍然能够暴露 ARM 类型的故障。

最好使用开源工具。请指教。

引用文献:

(引用文献面向 C++11,因为这就是我碰巧处理该主题的方式。但是,据我所知,非 C++ 答案可能是最好的,因此请随意将您的答案扩展到 C++ 之外如您认为合适。)

最佳答案

这比您的问题直接提出的问题要笼统得多,但请看一下“Spin”,它是并发系统的“模型检查器”。在线手册在这里:http://spinroot.com/spin/Man/Manual.html

你可能会觉得它有点“老派”的感觉,但我认为它没有理由不适合你感兴趣的工作。但是,由于它很一般,你可以需要做一些工作来教会工具有关问题空间的信息。好消息是它是独立于平台的。坏消息是您可能需要显式地对每个计算机架构进行建模(例如,Spin 本质上并不了解 ARM 与 x86 的保证)。但也许其中一些工作已经在其他地方完成(我没有检查),和/或者您可以分享您所做的工作,以便其他人受益。毕竟,该工具是开源的。

关于concurrency - 实验弱有序并发的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161049/

相关文章:

java - 我想使用 HttpClient4 对并发发送请求进行 RESTful API 压力测试,我可以使用一个 HttpClient 实例吗?

c# - C# 并发中的共享内存

concurrency - 如何减少 CUDA 同步延迟/延迟

Java 内存可见性和 AtomicReference 的

c++ - 迭代单个左值

c++ - 为什么结构化绑定(bind)禁用 RVO 并继续返回语句?

c++ - 经过良好测试的 C/C++ 无锁队列?

c++ - GCC 有时不内联 std::array::operator[]

assembly - ARM LL/SC 通过寄存器宽度或缓存行宽度进行独占访问?

multithreading - 无锁数据结构中需要多少个ABA标签位?