The threading model is loop parallelism--OpenMP-like parallel blocks and 
for loops with static scheduling only (for now). There are three forms, 
demonstrated in test/threads.jl. I'm working on atomics and locks--there's 
some discussion going on about portable implementations. Given those, 
threadid() and nthreads(), it should be possible to implement any 
concurrent data structure in Julia.

Depending on how well Julia-generated code performs, some important 
concurrent data structures might be better implemented in C and wrapped. We 
do need something like a java.util.concurrent library.

See test/perf/threads/laplace3d for an example threading performance 
benchmark.

The focus of the multi-threading effort is HPC, hence the choice of model. 
I think it is possible to layer other programming models over this, that 
would be better suited for server type applications or GUIs, but we have a 
lot to do on this one yet.

Reply via email to