[Prev][Next][Index][Thread]

RE: Concurrency



> Threads in Function Developer are quite easy to use.  I assume that they
> are mapped onto native Win32 threads and locking entities.

Something that isn't emphasized in the product description but worth
pointing out is that this is a "proper", unrestricted mapping. What I
mean by that is that it supports genuine concurrency, so if you have 
an NT box with multiple processors, a multi-threaded Dylan program can
exploit all those processors (if appropriately written, of course). 

Functional Developer's runtime was developed with multi-processor 
machines in mind, along with Dylan's threads library (as you can see 
from the presence of primitives like synchronize-side-effects()). The
guys who worked on that stuff did a great job.

I think it would be a fun project for someone to use Dylan and 
Functional Developer to explore higher-level concurrency and 
synchronization constructs and parallel algorithms. In a previous 
life I was involved in work like that in the context of EuLisp, but 
at the time we never had the luxury of a nice IDE to develop in or
an optimizing native-code compiler we could use to demonstrate 
genuinely useful speedups. Cost-of-entry to (small scale) SMP 
hardware is certainly a whole lot less these days...

-- Keith

PS: One last thing: Beware of language implementations that map to 
native threads but actually bodge it such that true concurrency 
isn't supported. Accept to substitutes. ;)



References: