From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by sympa.inria.fr (Postfix) with ESMTPS id B18547ED34 for ; Wed, 11 Jul 2012 08:40:15 +0200 (CEST) Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of berenger@riken.jp) identity=pra; client-ip=134.160.33.161; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="berenger@riken.jp"; x-sender="berenger@riken.jp"; x-conformance=sidf_compatible Received-SPF: Pass (mail1-smtp-roc.national.inria.fr: domain of berenger@riken.jp designates 134.160.33.161 as permitted sender) identity=mailfrom; client-ip=134.160.33.161; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="berenger@riken.jp"; x-sender="berenger@riken.jp"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: Pass (mail1-smtp-roc.national.inria.fr: domain of postmaster@postman.riken.jp designates 134.160.33.161 as permitted sender) identity=helo; client-ip=134.160.33.161; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="berenger@riken.jp"; x-sender="postmaster@postman.riken.jp"; x-conformance=sidf_compatible; x-record-type="v=spf1" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq8BAGAf/U+GoCGhmWdsb2JhbABFFrd3AQEBAQEGDQsHFCeCJToRLz0WGAMCAQIBSwoDCAEBiAkLm3uhQZEuA4hJjHGBEoREjR4 X-IronPort-AV: E=Sophos;i="4.77,566,1336341600"; d="scan'208";a="166385347" Received: from postman1.riken.jp (HELO postman.riken.jp) ([134.160.33.161]) by mail1-smtp-roc.national.inria.fr with ESMTP; 11 Jul 2012 08:40:13 +0200 Received: from postman.riken.jp (postman1.riken.jp [127.0.0.1]) by postman.riken.jp (Postfix) with SMTP id 4F23E2588001; Wed, 11 Jul 2012 15:40:10 +0900 (JST) Received: from [172.27.98.103] (rikad98.riken.jp [134.160.214.98]) by postman.riken.jp (Postfix) with ESMTPA id 1881532A0089; Wed, 11 Jul 2012 15:40:09 +0900 (JST) Message-ID: <4FFD1FC9.5040109@riken.jp> Date: Wed, 11 Jul 2012 15:40:09 +0900 From: Francois Berenger User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1 MIME-Version: 1.0 To: "caml-list@inria.fr" Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Version: 5.6.0.2009776, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2012.7.11.62722 Subject: [Caml-list] library/framework needed for distributed programming in OCaml Dear list, 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 ( http://savannah.nongnu.org/projects/par/ ). 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 ( www.kb.ecei.tohoku.ac.jp/~sumii/pub/qs.pdf ) 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 http://caml.inria.fr/pub/docs/oreilly-book/html.bak/book-ora187.html - maybe the SunRPC part of http://projects.camlcity.org/projects/ocamlnet.html Thanks a lot for your suggestions, Francois.