“并发”是指像Erlang的actor和并发GC这样的轻量级进程,旨在使这样的进程顺利运行。
如果INRIA摆脱当前OCaml实现的缺点,使OCaml为多核未来做好准备,那将是非常酷的。
P.S。 F#不是我想要的。
答案 0 :(得分:9)
如果不重复他的解释,我就不能更简洁。它说不出话来。是的,这是从2002年开始的,但是我没有听到他对这个问题的影响,从文本来看,他似乎很可能会退出这些目标。
对于并发函数式编程的最新发展,可能MPI解决方案(with ocaml bindings)可能是您问题的解决方案。显然这不是共享内存并行性。还有concurrent ML。
答案 1 :(得分:2)
有J&oCaml,这是......
Objective Caml加上(&)join calculus,即OCaml扩展用于并发和分布式编程。
答案 2 :(得分:2)
似乎Jane Street资助了一个将Concurrent GC添加到OCaml的项目
答案 3 :(得分:0)
标准库中的Thread module提供了并发原语,并且已经存在了很长一段时间。还有third方libraries提供更高级别/不同的并发API。
但听起来你是conflating concurrency and parallelism。
OCaml当然不会妨碍并行化。您可以同时在数千或数百台计算机上运行OCaml。甚至MPI bindings也可以让大型并行超级计算机的编程更容易。但是当前的参考OCaml实现不会自动并行化并发程序,我认为这是你真正感兴趣的。
您可能对Multicore OCaml感兴趣,它提供了对共享内存并行性的更好支持,因为SMP计算机在过去的几十年中变得非常普遍,并且更容易针对它们进行优化会非常好。他们似乎正在缓慢而稳定的进步,并努力做到正确。