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

Reply via email to