[fpc-devel] Parallel Computing

Michael Schnell mschnell at lumino.de
Mon Dec 10 12:54:18 CET 2007

> OpenMP is about lightweight threads. The 'thread events' proposal is
> the opposite: normal threads+events queues. 
Of course you are right here.

IMHO the "parallel" idea is hard to implement, as the compiler needs to 
heavily support it. And it's completely outside of what a user expects 
from a Delphi language compiler. The implications of "parallel" sections 
might be hard to understand to the user of the compiler, especially if 
the language does not implement additional synchronizing methods. 
(Issues: ThreadVars versus normal Vars unprotected normal vars will 
fail, even a normal counter fails with multiple CPUs if the compiler 
does not create a bus lock instruction).

Nonetheless it's a good investment in the future, regarding multiple 
CPUs to become very common (and "light wight" threads in Linux 
supporting this a lot better than the Windows thread model that seems to 
impose a lot more overhead).

OTOH "Event Threads" is just an RTL enhancement and thus it's quite 
easily implemented. And "thread events" only adds a single "procedure of 
thread" keyword or slightly extends the implementation of "procedure of 
object". This should not be to hard to implement either. (Of course the 
user needs to take care of synchronizing issues as well.))

> Both techniques can live
> happily together, so I think, the thread events should get a page of
> its own.
I can do this. But to me it looks like things in a wicki get lost very 
easily as they will only be found if someone explicitly searches for 
that issue. So doing another stand-alone article only makes sense when 
knowing decent locations where to place a link to same.


More information about the fpc-devel mailing list