Cygwin perl appears to be fully thread-enabled but
the PDL build does not enable threading since there
is no -lpthread on the link line. I tried forcing the
option to true and it worked. Further investigation
confirmed:
- Setting WITH_POSIX_THREADS => 1 seems ok for
the current version of cygwin
- It looks like the Basic/Core/Makefile.PL checks
for the -lpthread in the link library because of
a bug on SGI systems. Maybe it would be better
to rely on whether the perl is multithreaded for
the automated use threads decision and let the
SGI work around specifically set to 0 there.
- Performance on a PC with hyperthreading showed
a 2X speed up and 2X CPU utilization with threading
enabled under cygwin 1.5.19.
- Performance on a dual-opteron system was about
12 percent worse with CPU load 12 percent higher.
It looks like posix threading for this platform is a
no-op with overhead.
- I took a look for the posix thread code but couldn't
understand how it functions with threading and pdls
enough to start debugging. (Any suggestions for
how to best approach the learning curve for the PDL
internals? I haven't had time to read through the
code complete so a tour guide list would be very
helpful!)
QUESTION: Does anyone else have experience with
threading performance with PDL on a dual-opteron
system to compare?
QUESTION: How about performance of threading
across all types of hardware and os?
PROPOSAL: We need some way to get information about
PDL configuration and performance back to the development
team (e.g. we could have a special test that collected the
interesting metrics and generated a text file that could be
emailed to us by the user if they opt to do so). Having a
file would allow the users to verify what information is being
communicated and might improve the response rate.
--Chris
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl