[Rp] Reproducing and replicating the OCamlP3l experiment

Roberto Di Cosmo, Marco Danelutto
2020 Zenodo  
This article provides a full report on the effort to reproduce the work described in the article "Parallel Functional Programming with Skeletons: the OCamlP3L experiment" [1], written in 1998. It presented OCamlP3l [2], a parallel programming system written in the OCaml programming language [3]. The system described in [1] was a breakthrough in many respects: it showed that it was possible to implement parallel skeletons [4] a combinators in a functional programming language; it showed how this
more » ... it showed how this parallel programming style allowed to write a single source code that produced executables targeted for sequential execution, hence enabling usual debugging techniques, and executables for parallel execution; and it led to the introduction in OCaml of the ability to marshal functional closures, used later on by a wealth of different applications. The article consists of two main parts, the system description, and the system evaluation, so replicating the results involves the following: 1. recover the source code of the OCamlP3l system 2. make it compile and run on a modern OCaml 4.x system 3. recover the tests used in the system evaluation 4. verify we can get speedup in performance similar to the one reported in the article. When starting this replication effort, we had the following expectations: 1. recover the source code should be easy: just look in the paper directory on our machines 2. compile and run might be difficult: the code was designed 23 years ago for OCaml 1.07 3. recover tests should be easy: just look in the paper directory on our machines 4. verify speedup might be challenging: many parameters may have changed in microprocessors and network. The reality turned out to be surprisingly different. In the following we sum up the steps that we performed to address each of these four challenges, and the final outcome. Copyright © 2020 R. Di Cosmo and M. Danelutto, released under a Creative Commons Attribution 4.0 International license. Correspondence should be addressed to Di Cosmo, Roberto (roberto@dicosmo.org) The authors have declared that no competing interests exist. Code is available at https://archive.softwareheritage.org/swh:1:rev:2db189928c94d62a3b4757b3eec68f0a4d4113f0;origin=https://gitorious.org/ocamlp3l/ocamlp3l_cvs.git/. -SWH swh:1:rev:2db189928c94d62a3b4757b3eec68f0a4d4113f0;origin=https://gitorious.org/ocamlp3l/ocamlp3l_cvs.git/. Open peer review is available at https://github.com/ReScience/submissions/issues/22. ReScience C 6.1 (#2) -Di Cosmo and Danelutto 2020 [Rp] Reproducing and replicating the OCamlP3l experiment
doi:10.5281/zenodo.3936402 fatcat:okjwezde5nhxzd4oyqd4djeetq