|Fwd: [Caml-list] library/framework needed for distributed programming in OCaml
||7/11/12 6:40 AM
On Wednesday, July 11, 2012 3:40:25 PM UTC+9, Francois Berenger wrote:
Please forgive me to open this possibly re-occurring thread
but I need an up to date version of the answer.
I once wrote a parallel and distributed toy program
in Python which proved to be quite useful (
It was quite simple and easy to write because I used
a "library that enables you to build applications in which objects can
talk to each other over the network" (http://pypi.python.org/pypi/Pyro4).
So, I am looking for the gold standard to write
modules in OCaml that can talk to each other over the network
(not objects, I don't like them so much).
Here are some requirements, in a random order:
- the target execution environment is composed of
about 10 Linux workstations. It may switch to 1 or
2 interconnected clusters in the future (about 512 cores max).
So, not as large a scale as a company doing big data.
- the system will be used to transfer files of various sizes
(big files like a few Gb included, tiny ones also)
- pure OCaml code, so JoCaml and CamlP3l are out.
I don't like so much if there is some C part in the library
but this is not a show stopper.
- I really dislike syntax extensions (or things that force
me to do a lot of sysadmin strange configuration) so user-land only
would be great
- preserving type-safety and abstraction as mentioned
in the Quicksilver/OCaml paper would be cool (
) but not mandatory.
Ideally, encryption or compression of communications should
be a user-toggable feature.
- tolerance to partial failures would be nice but not
mandatory (because my target environment is not so error prone
and not so large)
- the project should be actively maintained and preferably used
in production somewhere ("je n'aime pas essuyer les platres")
- I don't like to use huge frameworks/libraries (j'essaye d'eviter "les
usines a gaz")
I would be satisfied with even just links to things that
satisfy most of my requirements.
For the moment, the few things that I could find that looks useful are:
- Client-server part of
- maybe the SunRPC part of
Thanks a lot for your suggestions,
Caml-list mailing list. Subscription management and archives:
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs