我之前已经考虑过这个确切的问题,之前我自己提出了一些并发编程范例:p
我当时得出的结论是,这样的测试集似乎并不真正以独立于语言的方式存在。虽然它的存在可能会有所帮助,但似乎有一些很好的理由它不存在(据我所知)。
并发编程中的大部分重点往往是数据并行性, 以便将相同的操作并行应用于同一数据集的不同部分。我认为您正在谈论的那种任务级并行性(即并行执行的不同任务,可能共享数据)实际上并没有做太多。我认为这是因为它有点难。但我认为这也有点困难,因为大多数问题并不特别适合这种并发性。用并发原语来描述分布式系统可能会有所帮助,但是这些系统往往是解耦的,因此有一个协议(书面的或暗示的)来调节它们的通信。人们倾向于不将这些类型的系统视为明显的“并发”编程情况,即使在正确的框架内查看它们(即考虑“
我认为你可以找到一些灵感来源的唯一地方是在单独的实现中。Erlang、Occam(和 Occam-pi)、Alice、CML、Concurrent Haskell 等都可能有小型测试语料库,但问题及其实现都将偏向于在特定语言中实现(因为它们显然是可在该语言中实现!)。也许您还可以查看致力于多方会话类型的社区以及各种过程演算,例如 pi-calculus、CCS 和 CSP,以了解他们使用哪些类型的系统作为示例模型。用于描述并发通信的与标准语言无关的一组问题的想法我认为,系统很有吸引力,但在这一点上有些难以捉摸。