我所说的“并发”是指轻量级进程,例如 Erlang 的 actor 和并发 GC,旨在使此类进程顺利运行。
如果 INRIA 能够摆脱当前 OCaml 实现的这些缺点,让 OCaml 为多核未来做好准备,那将是非常酷的。
PS F# 不是我想要的。
我所说的“并发”是指轻量级进程,例如 Erlang 的 actor 和并发 GC,旨在使此类进程顺利运行。
如果 INRIA 能够摆脱当前 OCaml 实现的这些缺点,让 OCaml 为多核未来做好准备,那将是非常酷的。
PS F# 不是我想要的。
如果不复制他的解释,我再简洁不过了。它不言自明。是的,这是从 2002 年开始的,但我没有听到他在这个问题上有所动摇,而且从文字来看,他似乎根本不可能放弃这些目标。
对于并发函数式编程的当前发展,可能 MPI 解决方案(使用 ocaml 绑定)可能是您问题的解决方案。显然这不是共享内存并行。还有并发 ML。
有J&oCaml,它是……</p>
Objective Caml加上 (&)连接演算,即 OCaml 扩展为并发和分布式编程。
似乎Jane Street资助了一个将 Concurrent GC 添加到 OCaml 的项目
标准库中的Thread 模块提供并发原语,并且已经存在了很长一段时间。还有提供更高级别/不同并发 API 的第三方库。
但听起来您将并发性和并行性混为一谈。
OCaml 当然不会妨碍并行性。您可以同时在数千或数百万台机器上运行 OCaml。甚至还有MPI 绑定,可以更轻松地为大规模并行超级计算机编程。但是当前的参考 OCaml 实现不会自动并行化并发程序,我认为这是您真正更感兴趣的。
您可能对多核 OCaml感兴趣,它为共享内存并行提供了更好的支持,因为 SMP 计算机在过去几十年中变得非常普遍,更容易对其进行优化会非常好。他们似乎正在取得缓慢但稳定的进展,并试图把它做好。