The Thread module w bibliotece standardowej zapewnia prymitywów współbieżności i został aro i przez dłuższą chwilę. Istnieje również strona third o nazwie libraries, która udostępnia interfejsy API o wyższym poziomie/różnych współbieżności.
Ale wygląda na to, że jesteś conflating concurrency and parallelism.
OCaml oczywiście nie wchodzi w drogę równoległości. Możesz uruchomić OCaml na tysiącach lub milionach maszyn w tym samym czasie. Istnieje nawet MPI bindings, aby ułatwić programowanie dla bardzo równoległych superkomputerów. Jednak obecna referencyjna implementacja OCaml nie będzie automatycznie porównywać współbieżnych programów, co, jak sądzę, jest tym, co Cię bardziej interesuje.
Może Cię zainteresować Multicore OCaml, który zapewnia lepszą obsługę paralelizmu pamięci współdzielonej, ponieważ komputery SMP stały się bardziej popularne. dość rozpowszechnione w ciągu ostatnich kilku dekad i byłoby naprawdę miło łatwiej je zoptymalizować. Wydaje się, że robią powolny, ale stały postęp i starają się to naprawić.
Nie jestem gotowy, aby zagłębić się w archiwach właśnie teraz, ale jestem pewien, że pojawiły się nowsze wątki, w których wyrażono podobne uczucia. INRIA koncentruje się na wspieraniu języka OCaml w taki sposób, nie przesuwając się do przodu o nowe funkcje, takie jak LWP lub współbieżne środowisko uruchomieniowe. Czy to nie jest po części kwestia HLVM Jona Harropa? –
ocaml4multicore jest dostępny (z ograniczeniami), patrz: http: //www.algo-prog.info/ocmc/web/ – nlucaroni
Warto zwrócić uwagę na to, co M. Leroy opublikował na liście OCaml w 2002 roku, tak samo było w przypadku maszyn SMP, które nie były tak powszechne, jak są dzisiaj. Wciąż jednak okaże się, czy dodanie równoległego parowania pamięci współdzielonej do środowiska wykonawczego OCaml jest lepszym rozwiązaniem niż tradycyjne podejście do optymalizacji systemów SMP: fork/exec i komunikacja międzyprocesowa. Wygląda na to, że INRIA nie wprowadziła jeszcze żadnych zapowiedzi, które zmieniłyby jego kolektywny umysł. –