Skip Menu |

This queue is for tickets about the Parallel-MPI-Simple CPAN distribution.

Report information
The Basics
Id: 18218
Status: resolved
Priority: 0/
Queue: Parallel-MPI-Simple

People
Owner: Nobody in particular
Requestors: greenwaldjared [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 0.03
Fixed in: (no value)



Subject: Can't get Parallel::MPI::Simple working
I'm trying to run a simple program that uses the Parallel::MPI::Simple module from cpan. #!/usr/bin/perl use strict; use Parallel::MPI::Simple; use Sys::Hostname; MPI_Init(); my $myrank = MPI_Comm_rank(MPI_COMM_WORLD); my $host = hostname(); print "host: $host (mypid = $mypid)"; MPI_Finalize(); When I try to run the script, this is the error that I get... Can't load '/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/Parallel/MPI/Simple/Simple.so' for module Parallel::MPI::Simple: /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/Parallel/MPI/Simple/Simple.so: undefined symbol: _kio at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 230. at ./hw.pl line 4 Compilation failed in require at ./hw.pl line 4. BEGIN failed--compilation aborted at ./hw.pl line 4. I'm not sure if I just don't have some dependancies installed or something like that. The module seemed to have installed correctly, but I can't get past this error.
There are two things to try: 1 - Ensure that Parallel::MPI::Simple and all other modules it requires are installed on every node of the cluster. 2 - Build a static perl (see the ExtUtils::MakeMaker docs for how to do that) including all the modules your MPI perl script will use, then launch the static executable using mpirun as you would any other C program.
From: Jared Greenwald
On Sun Mar 19 12:12:22 2006, AJGOUGH wrote: Show quoted text
> There are two things to try: > > 1 - Ensure that Parallel::MPI::Simple and all other modules it requires > are installed on every node of the cluster.
The error shown is only supposed to be for a single MPI instance, but I do have Parallel::MPI::Simple installed on all (4) nodes. However, I fail to find what modules Parallel::MPI::Simple requires. I mean, I have a stock RHEL4 and I updated CPAN through the cpan bundle, but nothing else was brought in when I installed Parallel::MPI::Simple - and yes it is installed. Show quoted text
> 2 - Build a static perl (see the ExtUtils::MakeMaker docs for how to do > that) including all the modules your MPI perl script will use, then > launch the static executable using mpirun as you would any other C > program.
This seems unnecessary. Can you elaborate as to the reasoning for this?
Subject: Re: [rt.cpan.org #18218] Can't get Parallel::MPI::Simple working
Date: Mon, 20 Mar 2006 15:40:02 +0000
To: Guest via RT <bug-Parallel-MPI-Simple [...] rt.cpan.org>
From: Alex Gough <alex [...] earth.li>
#### [Sun, Mar 19, 2006 at 02:05:48PM -0500: Guest via RT] Show quoted text
> > Queue: Parallel-MPI-Simple > Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=18218 > > > On Sun Mar 19 12:12:22 2006, AJGOUGH wrote:
> > There are two things to try: > > > > 1 - Ensure that Parallel::MPI::Simple and all other modules it requires > > are installed on every node of the cluster.
> > The error shown is only supposed to be for a single MPI instance, but I > do have Parallel::MPI::Simple installed on all (4) nodes. However, I > fail to find what modules Parallel::MPI::Simple requires. I mean, I > have a stock RHEL4 and I updated CPAN through the cpan bundle, but > nothing else was brought in when I installed Parallel::MPI::Simple - and > yes it is installed.
It should just need Storable and itself. Storable is installed as p[art of most modern perls. Show quoted text
> > 2 - Build a static perl (see the ExtUtils::MakeMaker docs for how to do > > that) including all the modules your MPI perl script will use, then > > launch the static executable using mpirun as you would any other C > > program.
> > This seems unnecessary. Can you elaborate as to the reasoning for this?
Sometimes dynamic loading and MPI don't play well, and on some MPI platforms such as UNICOS dynamic loading isn't available at all, this means that to run an MPI program you must link in all libraries statically (to produce one large executable) at compile time rather than havin gthem loading at run time. As Perl uses dymaic loading to pull in P::MPI::Simple, and that in turns pulls in MPI libraries, you may find it just doesn't work. static perls won't suffer from this problem so might work. Alex -- The problem is basically that some administrators know the new rules. Some know the new rules but keep forgetting to tell anyone else. Some insist that the old rules worked perfectly well and the fact that we don't actually do what the old rules says we do is merely an inconvenience. Some are making up their own rules.
From: Jared Greenwald
On Mon Mar 20 10:40:31 2006, alex@earth.li wrote: Show quoted text
> #### [Sun, Mar 19, 2006 at 02:05:48PM -0500: Guest via RT]
> > > > Queue: Parallel-MPI-Simple > > Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=18218 > > > > > On Sun Mar 19 12:12:22 2006, AJGOUGH wrote:
> > > There are two things to try: > > > > > > 1 - Ensure that Parallel::MPI::Simple and all other modules it
requires Show quoted text
> > > are installed on every node of the cluster.
> > > > The error shown is only supposed to be for a single MPI instance, but I > > do have Parallel::MPI::Simple installed on all (4) nodes. However, I > > fail to find what modules Parallel::MPI::Simple requires. I mean, I > > have a stock RHEL4 and I updated CPAN through the cpan bundle, but > > nothing else was brought in when I installed Parallel::MPI::Simple - and > > yes it is installed.
> > It should just need Storable and itself. Storable is installed as > p[art of most modern perls.
I didn't have Storable installed, but that didn't seem to change anything. Show quoted text
> > > 2 - Build a static perl (see the ExtUtils::MakeMaker docs for how
to do Show quoted text
> > > that) including all the modules your MPI perl script will use, then > > > launch the static executable using mpirun as you would any other C > > > program.
> > > > This seems unnecessary. Can you elaborate as to the reasoning for this?
> > Sometimes dynamic loading and MPI don't play well, and on some MPI > platforms such as UNICOS dynamic loading isn't available at all, this > means that to run an MPI program you must link in all libraries > statically (to produce one large executable) at compile time rather > than havin gthem loading at run time. As Perl uses dymaic loading to > pull in P::MPI::Simple, and that in turns pulls in MPI libraries, you > may find it just doesn't work. static perls won't suffer from this > problem so might work.
I'm using the stock LAM MPI that's part of RHEL4, so I don't see why I should need this, but I can try it.
Time has passed.