论文标题
对ocaml的翻新并行性
Retrofitting Parallelism onto OCaml
论文作者
论文摘要
OCAML是一种工业强度的多范式编程语言,广泛用于行业和学术界。 OCAML也是为数不多的现代托管系统编程语言之一,缺乏对共享内存并行编程的支持。本文介绍了该设计,是OCAML编程语言多核算扩展的大多数情况下垃圾收集器(GC)的全面实现和评估。鉴于我们建议将并行性添加到具有数百万个现有代码行的广泛使用的编程语言中,因此我们面临着保持向后兼容性的挑战 - 不仅在语言功能方面,而且还具有与新GC一起运行的单线程代码的性能。为此,本文介绍了一系列新颖的技术,并证明了新的GC在绩效和功能向后兼容之间取得了平衡,以使得在现代多项处理器上令人钦佩的顺序程序和缩放。
OCaml is an industrial-strength, multi-paradigm programming language, widely used in industry and academia. OCaml is also one of the few modern managed system programming languages to lack support for shared memory parallel programming. This paper describes the design, a full-fledged implementation and evaluation of a mostly-concurrent garbage collector (GC) for the multicore extension of the OCaml programming language. Given that we propose to add parallelism to a widely used programming language with millions of lines of existing code, we face the challenge of maintaining backwards compatibility--not just in terms of the language features but also the performance of single-threaded code running with the new GC. To this end, the paper presents a series of novel techniques and demonstrates that the new GC strikes a balance between performance and feature backwards compatibility for sequential programs and scales admirably on modern multicore processors.