[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