OCaml 的 GitHub repo 显示,其最新等待合并的 PR 是 Multicore OCaml。可以看到,这个 PR 非常庞大,改动内容包括增加了 24,207 行代码,以及删除 15,148 行代码。而这刚好是构成 Multicore OCaml 的最小可行产品 (MVP)。
正因如此,此 PR 并未能成功构建,报错的原因是部分检查未能成功通过。
此 PR 通过 domain 增加了对并行共享内存的支持,并通过 effect handler(无语法支持)增加了对并发 (direct-style concurrency) 的支持。Multicore OCaml 还打算向后兼容——包括语言特性、C API 以及单线程代码的性能方面。
有关 Multicore OCaml 的详细信息可查看其 Wiki 中的论文、演讲、教程和博客文章。
如果对使用 Multicore OCaml 感兴趣,可查看以下正在开发中的库:
- domainlib —— 嵌套任务并行库
- eio ——异步 io (direct-style)
下图是 sandmark 的多核可扩展性测试结果,该测试在一台 64 核的 AMD EPYC 7551 服务器上进行。
基准名称旁边括号内的数字是相应基准的连续基线所用时间(以秒为单位)
据介绍,Multicore OCaml 不会预设任何一种并发模型,但会为用户和库作者提供自由实现的能力,这也是为 OCaml 引入的并发与并行支持。
本文转自OSCHINA
本文标题:Multicore OCaml 正在等待主线合并
本文地址:https://www.oschina.net/news/175096/ocaml-multicore-submitted-for-merging