El Thread module en la biblioteca estándar proporciona primitivas de concurrencia y ha sido aro y por bastante tiempo. También hay third party libraries que proporcionan API de concurrencia de nivel superior/diferente.
Pero parece que eres conflating concurrency and parallelism.
OCaml por supuesto no se interpone en el camino del paralelismo. Puede ejecutar OCaml en miles o millones de máquinas al mismo tiempo. Incluso hay MPI bindings para que resulte más fácil programar supercomputadores masivamente paralelos. Pero la implementación OCaml de referencia actual no paralelizará automáticamente los programas simultáneos, que creo que es lo que más le interesa.
Puede estar interesado en Multicore OCaml que proporciona una mejor compatibilidad con el paralelismo de memoria compartida, ya que las computadoras SMP se han convertido bastante frecuente en las últimas dos décadas y sería realmente bueno optimizarlos más fácilmente. Parecen estar haciendo un progreso lento pero constante y tratando de hacerlo bien.
No estoy preparado para profundizar en los archivos en este momento, pero estoy seguro de que ha habido subprocesos más recientes en los que se han expresado opiniones similares. INRIA se centra en admitir el lenguaje OCaml tal como está, sin avanzar con grandes características nuevas como LWP o un tiempo de ejecución concurrente. ¿No es eso en parte el objetivo de HLVM de Jon Harrop? –
ocaml4multicore está disponible (con limitaciones), ver: http: //www.algo-prog.info/ocmc/web/ – nlucaroni
Cabe destacar: lo que M. Leroy pronunció esa conferencia en la lista OCaml en 2002, fue el caso de que las máquinas SMP no eran tan comunes como lo son hoy en día. Sin embargo, queda por ver si la adición de paralelismo de memoria compartida al tiempo de ejecución OCaml es una victoria sobre el enfoque más tradicional de optimización para sistemas SMP: fork/exec y la comunicación entre procesos. Parece que INRIA aún tiene que anunciar que su mente colectiva ha cambiado. –