Version française
Home     About     Download     Resources     Contact us    
Browse thread
OCaml Summer Project decisions are in
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Jon Harrop <jon@f...>
Subject: Re: [Caml-list] OCaml Summer Project decisions are in
On Monday 21 April 2008 10:24:21 Berke Durak wrote:
> Many people already have dual cores under their desks,

The dual core Athlon64 X2 CPUs used in our machines were released three years 
ago.

> so quad cores should be the norm in a year or two.

Quad cores are already the norm.

An *eight* core Dell Precision T7400 now costs only £1,171. Our desktop 
machines will be replaced with these eight core machines before the end of 
this year.

> I'd hate to see Ocaml become one of the slower languages.

For many applications, that already happened.

> That way one could embed multiple Ocaml libraries in programs written in
> other languages (which could allow easier monetization of Ocaml software
> ;).

There are many other issues that prevent the commercialization of OCaml 
libraries.

> Also, we could explore alternate paths to paralellism, such as running
> multiple Ocaml interpreters/runtimes in different threads with disjoint
> heaps. Those threads would run truly in parallel on different CPUs.

Communication is too slow for that to be useful outside a few niche 
applications.

> I personally don't believe much in fine-grained parallelism using threads
> and locks because it makes the GC difficult,

This is certainly a difficult problem but you cannot compete without a 
concurrent GC now.

> relies on the notoriously difficult to use and non-composable
> synchronization mechanisms such as locks and mutexes, 

Locks are actually very usable in F# thanks to the ubiquity of immutable data 
structures and the availability of higher-order functions.

Microsoft's Task Parallel Library (TPL) for .NET makes data parallelism 
without explicit locks even easier.

> doesn't scale to distributed computing,

Irrelevant. The vast majority of people have multicore machines and not 
distributed clusters. Distributed computing may become importantant in 
desktop machines when we exceed 256 cores but that will not happen in the 
next decade.

> and doesn't run as fast as most people think it would because of bus/cache
> contention. 

With the latest version of .NET, F# now beats OCaml on most benchmarks.

> I certainly don't want to discourage anyone from writing a parallel GC!

Indeed, a concurrent GC is essential for the survival of the OCaml language, 
whether that culminates from this project or is "borrowed" by OCamlJava.

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e