Multicore OCaml 正在等待主線合并
OCaml 的 GitHub repo 顯示,其最新等待合并的 PR 是 Multicore OCaml??梢钥吹?,這個 PR 非常龐大,改動內(nèi)容包括增加了 24,207 行代碼,以及刪除 15,148 行代碼。而這剛好是構(gòu)成 Multicore OCaml 的最小可行產(chǎn)品 (MVP)。
正因如此,此 PR 并未能成功構(gòu)建,報錯的原因是部分檢查未能成功通過。
此 PR 通過 domain 增加了對并行共享內(nèi)存的支持,并通過 effect handler(無語法支持)增加了對并發(fā) (direct-style concurrency) 的支持。Multicore OCaml 還打算向后兼容——包括語言特性、C API 以及單線程代碼的性能方面。
有關(guān) Multicore OCaml 的詳細信息可查看其 Wiki 中的論文、演講、教程和博客文章。
如果對使用 Multicore OCaml 感興趣,可查看以下正在開發(fā)中的庫:
- domainlib —— 嵌套任務(wù)并行庫
- eio ——異步 io (direct-style)
下圖是 sandmark 的多核可擴展性測試結(jié)果,該測試在一臺 64 核的 AMD EPYC 7551 服務(wù)器上進行。
基準(zhǔn)名稱旁邊括號內(nèi)的數(shù)字是相應(yīng)基準(zhǔn)的連續(xù)基線所用時間(以秒為單位)
據(jù)介紹,Multicore OCaml 不會預(yù)設(shè)任何一種并發(fā)模型,但會為用戶和庫作者提供自由實現(xiàn)的能力,這也是為 OCaml 引入的并發(fā)與并行支持。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:Multicore OCaml 正在等待主線合并
本文地址:https://www.oschina.net/news/175096/ocaml-multicore-submitted-for-merging