Multicore OCaml 正在等待主線合并
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