Multicore OCaml 正在等待主线合并

来源: OSCHINA
编辑: 局长
2021-12-23 09:02:12

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 引入的并发与并行支持。

展开阅读全文
1 收藏
分享
2 评论
1 收藏
分享
返回顶部
顶部
返回顶部
顶部