[fpc-devel] Parallel Computing

Helmut Hartl helmut.hartl at firmos.at
Mon Dec 3 10:16:17 CET 2007


>I kind-of understand that... Borland tried to encapsulate the whole
threading thing in a  TThread class.  It made it easier and every bit
helps!  I simply thought I should >mention it here, so that FPC
developers know about this new API.  I haven't had a look at their API
docs yet, but thought if they come up with some neat idea not done 
>before, maybe FPC could borrow some of those ideas.....  Piggy-back on
Microsoft's research findings.
>Regards,
>  - Graeme -

Hello,

If someone is truly interested in parallel computing - "lock free"
datstructures are what realy counts -
We program multithreades servercode with pthreads, NPTL threads, windows
threads now for around 6 years - 

(- and programm in assembler, c, c++, delphi, freepascal since 21 Years
(PDP 11,C64,C167,ARM uC,8051 uC,PIC uC,Amiga,x86)
- in all that time object pascal was the most effective language in
terms of error probability and turn around times ...)

It is a immense hassle to debug parallel  problems like deadlocks,
priority inversion and the like.
So for really cooperative porgramms the design phase on paper should be
taken into account even more.

The best solution for this problems by now is IMHO the lock free
paradigm - but has to be judged on the problem.
Several doctoral thesis, research findings, and papers for this exist -
if someone is interested - 
join the ACM, and the ACM Digital Library (http://www.acm.org/)
- and the technique is industry recogniced - you maybe don't know FirmOS
- (my firm) but you maybe 
know "Xen" (a cambridge project) which is now owned by Citrix, or you
maybe know "Half Life 2"
from Valve (which was computer game of the year, i think in 2006) - they
uses this techniques extensively.
(The Xen project, is IMHO the first project which uses this technique
practical and with immense success)
For Java and a were short primer/starting point read here:
http://www.ibm.com/developerworks/java/library/j-jtp11234/

Also "Open-MPI" sounds very interesting. But i fear a "no brain solution
API" for developers does not exist -
and without digging deeper into the problems of that field  someone
would have many hours of time searching 
bloody phenomenons and bugs ....

So my personal findings are - nearly every technique "Microsoft"
invented, buyed or acquired was cancelled some
years later just to bind the customers by inventing something
revolutionary new, so a good stomach decision is
not to bind yourself too thight to this firm - 
(Access Runtime for Developers, WinG, DirectX Hardware support for sound
cards, the QoS Api (different for W2000, XP and Vista) 
 are all examples where i personally got a bloody nose running into a
wall :-(

I hope i could share some experience,

helmut





More information about the fpc-devel mailing list