* Concurrent and Distributed Programming in Ocaml @ 2005-12-16 11:51 Alexsandro Soares 2005-12-16 12:40 ` Vincenzo Ciancia 0 siblings, 1 reply; 3+ messages in thread From: Alexsandro Soares @ 2005-12-16 11:51 UTC (permalink / raw) To: caml-list Hi all, My team is working with evolutionary computing and we develop a distributed model of gene expression programming (GEP) in OCaml. Our first try used the primitives provided in modules Mutex and Condition to do syncronization between process and threads. The system is done. However, we will make a refactoring of the code and, at this time, we would like to use higher level constructs to work with concurrent and distributed programming. What are the options to do this in OCaml? We started to see Jocaml, but our system uses native code generation both in Linux and Windows, and I don't know if Jocaml can be compiled in native code. Any help? Thanks in advance for any answer. Cheers, Alex _______________________________________________________ Yahoo! doce lar. Faça do Yahoo! sua homepage. http://br.yahoo.com/homepageset.html ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Concurrent and Distributed Programming in Ocaml 2005-12-16 11:51 Concurrent and Distributed Programming in Ocaml Alexsandro Soares @ 2005-12-16 12:40 ` Vincenzo Ciancia 2005-12-16 13:28 ` [Caml-list] " David Teller 0 siblings, 1 reply; 3+ messages in thread From: Vincenzo Ciancia @ 2005-12-16 12:40 UTC (permalink / raw) To: caml-list Alexsandro Soares wrote: > Our first try used the > primitives provided in modules Mutex and Condition to > do syncronization between process and threads [...] we > would like to use higher level constructs to work with > concurrent and distributed programming. What are the > options to do this in OCaml? I would recommend trying the Event module which features channels and events, which in turn are an abstraction which allows to build more complex events from simpler ones before "synchronizing" on the resulting event. For example, "receive a" is the event that, when you synchronize to it, waits for a value to be sent on channel "a", and returns the value, and "choose [receive a,receive b]" is the event that, when you synchronize to it, waits for a value to be sent on either "a" or "b" and returns the value - in this case a and b must have the same value type. http://caml.inria.fr/pub/docs/manual-ocaml/libref/Event.html Bye Vincenzo -- Please note that I do not read the e-mail address used in the from field but I read vincenzo_ml at yahoo dot it Attenzione: non leggo l'indirizzo di posta usato nel campo from, ma leggo vincenzo_ml at yahoo dot it ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] Re: Concurrent and Distributed Programming in Ocaml 2005-12-16 12:40 ` Vincenzo Ciancia @ 2005-12-16 13:28 ` David Teller 0 siblings, 0 replies; 3+ messages in thread From: David Teller @ 2005-12-16 13:28 UTC (permalink / raw) To: caml-list While this module is absolutely great, it suffers from OCaml's limitation that multi-threaded code runs only one one processor, even if several are available. For concurrency, I would suggest taking a look at Acute, but that's quite low-level, when compared to JoCaml. Basically, the communication primitives are similar to a somewhat lower-level version of the Event module. I don't know whether there is a native code compiler, though. Cheers, David On Fri, 2005-12-16 at 13:40 +0100, Vincenzo Ciancia wrote: > Alexsandro Soares wrote: > > > Our first try used the > > primitives provided in modules Mutex and Condition to > > do syncronization between process and threads [...] we > > would like to use higher level constructs to work with > > concurrent and distributed programming. What are the > > options to do this in OCaml? > > I would recommend trying the Event module which features channels and > events, which in turn are an abstraction which allows to build more complex > events from simpler ones before "synchronizing" on the resulting event. > > For example, "receive a" is the event that, when you synchronize to it, > waits for a value to be sent on channel "a", and returns the value, and > "choose [receive a,receive b]" is the event that, when you synchronize to > it, waits for a value to be sent on either "a" or "b" and returns the value > - in this case a and b must have the same value type. > > http://caml.inria.fr/pub/docs/manual-ocaml/libref/Event.html > > Bye > > Vincenzo > -- Read, write and publish e-books, Free software, Open standards, Open source, The OpenBerg project -- http://www.openberg.org ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-12-16 13:28 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2005-12-16 11:51 Concurrent and Distributed Programming in Ocaml Alexsandro Soares 2005-12-16 12:40 ` Vincenzo Ciancia 2005-12-16 13:28 ` [Caml-list] " David Teller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox