From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id pAU2mtEw019534 for ; Wed, 30 Nov 2011 03:48:55 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtoAAMWY1U5CbwQakWdsb2JhbABDqwEiAQEBAQkLCwcUBCGCOTgCOxYYAwIBAgFLDQgBAYgJpUqSQQMEixGILJFzjG0 X-IronPort-AV: E=Sophos;i="4.69,595,1315173600"; d="scan'208";a="133259034" Received: from out2.smtp.messagingengine.com ([66.111.4.26]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/ADH-AES256-SHA; 30 Nov 2011 03:48:50 +0100 Received: from compute6.internal (compute6.nyi.mail.srv.osa [10.202.2.46]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 5BC3A227E4 for ; Tue, 29 Nov 2011 21:48:49 -0500 (EST) Received: from frontend1.nyi.mail.srv.osa ([10.202.2.160]) by compute6.internal (MEProxy); Tue, 29 Nov 2011 21:48:49 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:date:from:mime-version:to :subject:content-type:content-transfer-encoding; s=smtpout; bh=S 4V7qc1DHKOXXtmQIoAKwmPg89A=; b=C1+aTJZY34QzEGjIwwIovInhVtsWU1+o3 imtViS6ac5nhTsIhCcIFSafmqinhp8pBePSpmOW8mNMcKli4+1pkPh/wG3MwF4MZ 2ZhAOrnx7ZbKnFr//Te+0Repo0kfCq7GTCG15NBBIFRULQaLfAmCgJcLAKzmxrDJ TQ6H/+WESY= X-Sasl-enc: huvL30IrFRFfGY13tWMqObuTf/4jmvLFjRo3QoB0mR/h 1322621329 Received: from [192.168.1.206] (64-71-1-165.static.wiline.com [64.71.1.165]) by mail.messagingengine.com (Postfix) with ESMTPSA id 119388E00F5 for ; Tue, 29 Nov 2011 21:48:48 -0500 (EST) Message-ID: <4ED59AF6.1030506@ens-lyon.org> Date: Tue, 29 Nov 2011 18:54:46 -0800 From: Martin Jambon User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20101023 Lightning/1.0b3pre Thunderbird/3.1.3 MIME-Version: 1.0 To: OCaml Mailing List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: [Caml-list] Nproc: process pools for OCaml (request for suggestions) I would like to publicize Nproc, which is an implementation of process pools for OCaml based on fork, pipes, Marshal and Lwt: https://github.com/MyLifeLabs/nproc Using Nproc involves: 1. Creating a pool of N processes, N being chosen by the user. 2. Running tasks: a. Submitting a task (f, x) of any type. b. Defining what to do when the result becomes available. Possible uses of Nproc include: - running CPU-intensive tasks on multiple cores - detaching synchronous operations for which a non-blocking version is not available Let me know of your comments, suggestions, questions, etc. Martin