Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

quidity (1296)

  (email not shown publicly)

A relapsing reformed physicist.

Journal of quidity (1296)

Thursday August 30, 2001
02:20 PM

Busy, busy, busy

[ #724 ]

Or not busy enough... I've been experimenting with the Parallel::* modules recently, but I'm afraid they suck to various degrees.

Parallel::PVM (Parallel Virtual Machine) is the better of the two, but suffers from only being able to pass string data (with no tabs) and a compiled in buffer limit. Add to that the fact it runs on top of PVM and everything starts to look less than rosy.

Parallel::MPI (Message Passing Interface) is under-developed as it was done as a couple of people's college project then promptly abandonded.

Anyway, why do they both suck? At the root of their failure lies their un-perlish way to do something. MPI and PVM were designed to allow scientists to write portable numerical code in Fortran and C (then later C++), this means they focus on sending chunks of typed data (arrays of integers, floats and what have you). The P::PVM module gets around this by getting the programmer to encode all of his data in a string (array of characters) then calling out to the PVM character sending routines to actually pass messages. The P::MPI module tries to implement MPI too completely, so there are a huge number of calls, one for integers, one for strings and so on.

Perl though deals with atoms of data, or very complicated trees of data with a single root, scalars. Ideally a message passing system suitable for perl would let you throw arbitary data structures (even objects and other non-process specific data) between nodes. Then message passing in perl might suck less.

I've also been playing a bit with VRML (which has a slightly nicer perl interface) and reveling in the joys of an easy to write OO language as I throw data from one mollecular dynamics code to another, this involves large data sets though, and is begging to be parallelised, but perl just isn't ready yet. Oh well.