Dear PDL folks, PDL 2.057_01 has just been released. Notable changes since 2.057:
* pthreading can be over non-divisible number of threads * replace a lot of complicated build stuff with C macros * all PDL operations now have a C function interface called pdl_(name)_run * zeroes now quicker as only does memset, not assgn operation * fix pp_add_boot to remove any blank lines (such as added by pp_line_numbers), which broke at least one CPAN module * Example/doc-pp script to use GraphViz2 to show pp_def key dependencies * remove many obsolete/unused Core-struct members and functions * fix setnantobad doc to match behaviour fixed in 2.040, add setnonfinitetobad and setinftobad Due to changes to the “Core” structure, you will need to reinstall all your PDL modules. Sorry. I’ve been holding off the dev-release in order to only do this once, but the various changes are large enough that a dev-release is the best way to shake out problems with the changes so far. There are still going to need to be a couple more “Core” changes, which will mean another reinstall of other modules on the next version. Hopefully you will find it worth the hassle. The first point (it makes use of all the resources you asked it to) will be further developed (after an intervening stable release, so we can know more surely when things broke if problems arise) to default to calculating how many cores are available, and using those. A further development will be to divide tasks up to 2-3 times that many as a “task queue”, and let threads pick off that, to maximise efficiency for non-deterministic operations such as things that might converge quickly. This will also allow efficient use of processing units of differing speeds (see next point). A further intended development is to use OpenCL where available to automatically translate pp_def-ed functions to use GPUs as well. The second and third main points are intended to transform PDL into a C library with a Perl interface, which could then be used in C programs, or via interfaces in other dynamic languages. Another aim (nearly complete) is to have the PP system generate one C file per function, which allows parallel compilation of PDL modules. This will greatly speed up installation on systems that are configured to use such, and is needed because e.g. Slices.xs is currently >34k lines, and takes >20secs to compile on my machine. It will be opt-in for each module. This work has been aided hugely by the tireless, superb efforts on the PDL ecosystem’s continuous integration (CI) capability by the mighty Zaki Mughal. Thanks, Zaki! The IRC channel (#pdl on irc.perl.org) is a great virtual place to come and ask questions, or just watch the GitHub messages flow by. As usual, please give the new PDL a try and report problems. Best regards, Ed
_______________________________________________ pdl-devel mailing list pdl-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pdl-devel