I think O’Caml is a great language for parallel algorithm development. I have written two parallel codes in O’Caml, one is my AI system called the examachine, and the other is a parallel information-retrieval code which I cannot specify yet (it’s ongoing research). Except a few shortcomings such as lack of true shared-memory parallelism and the inefficiencies caused by the garbage collector (which is not easy to tune) and the lack of arbitrary unboxed values, O’Caml is pretty good for writing imperative and even High Performance Computing codes.The time we usually spend on fixing silly but hard-to-find bugs in C++ drops dramatically if we are using O’Caml. Most bugs in O’Caml code are actual algorithm bugs or wrong semantics, so they are easier to understand and locate.

That’s why I went ahead and added basic isend/irecv support to ocamlmpi. Check it out for yourselves. I had some trouble when combining it with multi-threaded code. Let me know if you see any errors in the implementation.

Non-blocking MPI calls for O’Caml

Eray Özkural

Eray Özkural has obtained his PhD in computer engineering from Bilkent University, Ankara. He has a deep and long-running interest in human-level AI. His name appears in the acknowledgements of Marvin Minsky's The Emotion Machine. He has collaborated briefly with the founder of algorithmic information theory Ray Solomonoff, and in response to a challenge he posed, invented Heuristic Algorithmic Memory, which is a long-term memory design for general-purpose machine learning. Some other researchers have been inspired by HAM and call the approach "Bayesian Program Learning". He has designed a next-generation general-purpose machine learning architecture. He is the recipient of 2015 Kurzweil Best AGI Idea Award for his theoretical contributions to universal induction. He has previously invented an FPGA virtualization scheme for Global Supercomputing, Inc. which was internationally patented. He has also proposed a cryptocurrency called Cypher, and an energy based currency which can drive green energy proliferation. You may find his blog at https://log.examachine.net and some of his free software projects at https://github.com/examachine/.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.