[fpc-devel] Parallel Computing

Thaddy thaddy at thaddy.com
Tue Nov 4 13:34:25 CET 2008


Just observing the thread I'd like to add some real world examples where 
OpenMP like additions can be very effective.
Not because something can't be done otherwise, but because it has 
syntactical advantages.
That said, even with the addition of a "parallel for" syntax and the 
like (paralell while or parallel until might be a bit nicer; or parallel 
for in) MT programming is never easy and an easy syntax might fool a 
programmer who lacks a good understanding of MT.

Examples (I am with Boian here) are DSP and webservers.
DSP often requires multiple sequential operations over buffers (effects 
processing). This is multi core kintergarten! If I can avoid the typing 
overhead by writing something like:

    Parallel For Effect in Effectchain do
          ProcessBuffer;

This is where I do a lot of MT as a hobby.
Compare the operator overloading syntax that I use here as well:
I can write EndBuffer := EndBuffer + Effect[i] where EndBuffer is a 
record or class that encapsulates the buffer (I am experimenting with 
rewriting DC-DSP like that).

Florian, you probably agree this is a more favorable syntax than 
accessing all samples with loops all the time.

That would be very comfortable...and more efficient than all sequential 
programming, although it can be done in the way Florian describes (at 
the cost of a higher RSI risk ;) )


Also: in the case of heavily loaded webservers or SOA 
applets/servlets/services, where the bus is no bandwdth issue, a 
"paralell for" syntax might be beneficial in writing concise code.
This is where I do a lot of MT processing in practise at work.
 The actual machines are 8 cores and most apps are single in, 
distributed out.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3309 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20081104/bc1cdf62/attachment.bin>


More information about the fpc-devel mailing list