【24h】

Parallel Concurrent ML

机译:并行并发ML.

获取原文

摘要

Concurrent ML (CML) is a high-level message-passing language that supports the construction of first-class synchronous abstrac-tions called events. This mechanism has proven quite effective over the years and has been incorporated in a number of other languages. While CML provides a concurrent programming model, its imple-mentation has always been limited to uniprocessors. This limitation is exploited in the implementation of the synchronization protocol that underlies the event mechanism, but with the advent of cheap parallel processing on the desktop (and laptop), it is time for Paral-lel CML. Parallel implementations of CML-like primitives for Java and Haskell exist, but build on high-level synchronization constructs that are unlikely to perform well. This paper presents a novel, par-allel implementation of CML that exploits a purpose-built opti-mistic concurrency protocol designed for both correctness and per-formance on shared-memory multiprocessors. This work extends and completes an earlier protocol that supported just a strict subset of CML with synchronization on input, but not output events. Our main contributions are a model-checked reference implementation of the protocol and two concrete implementations. This paper fo-cuses on Manticore's functional, continuation-based implementa-tion but briefly discusses an independent, thread-based implemen-tation written in C# and running on Microsoft's stock, parallel run-time. Although very different in detail, both derive from the same design. Experimental evaluation of the Manticore implementation reveals good performance, dispite the extra overhead of multipro-cessor synchronization.
机译:并发ml(cml)是一种高级消息传递语言,支持致为事件的一流同步itchacions的构建。多年来,这种机制已被证明非常有效,并已纳入许多其他语言。虽然CML提供了一个并发编程模型,但它的IMPLE-MENTATION一直仅限于单处理器。这种限制在实现事件机制下实现的同步协议的实现中,但随着桌面(和笔记本电脑)的廉价并行处理的出现,是ParaL-LEL CML的时间。存在类似于Java和Haskell的CML的基元的并行实现,但在高级同步构造中构建,不太可能表现良好。本文介绍了CML的新颖,PAR-Allel实现,用于专门用于共享内存多处理器上的正确性和每个Formance设计的目的内置的Opti-Mist Misturency协议。此工作扩展并完成了一个早期的协议,该协议仅支持CML的严格子集,在输入上同步,但不会输出事件。我们的主要贡献是协议的模型检查参考执行和两个具体实施。本文在Manticore的功能,基于延续的实现上,但简要讨论了在C#上写入的独立,基于线程的Implimentatiation,并在Microsoft库存中运行并行运行时。虽然细节截然不同,但两者都来自相同的设计。 Manticore实现的实验评估揭示了良好的性能,使多元盘同步的额外开销。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号