On Thu, 10 Mar 2011, Barry Smith wrote:
>
> On Mar 10, 2011, at 4:46 PM, fabien delalondre wrote:
>
> > Hi,
> >
> > Which argument should I pass to pass to compile petsc on hopper II with
> > superlu_dist, hypre and mumps (download) ? Without external package
> > --with-mpi=0 works fine but then the external packages complain about it
> > (no mpi specified). I tried to use and also modify the arch-cray-xt5-opt.py
> > configure file but I did not go through it yet (Invalid mpiexec specified:
> > /usr/common/acts/PETSc/3.0.0/bin/mpiexec.aprun). Instead of wasting time, I
> > guess you guys will provide an answer pretty quickly.
>
> Satish,
>
> Why does --with-mpiexec have to be set on hopper? And why to this crazy
> location that may not always exist? Requiring the user to set this beast to
> some strange thing at configure time is not reasonable. We need a model that
> doesn't require strange knowledge like this.
>
The explanation for the strange thing in arch-cray-xt5-opt.py is: I
started off with a reconfigure.py file from a prior install by nersc
folks - so had some of this stuff in from there. [mpiexec.aprun is a
derivative of one of the scripts we have in PETSC_DIR/bin/mpiexec.*]
Looks like --with-mpiexec=/bin/false would also work on this machine.
currently mpiexec is checked by configure primarily for for 'make
test' stuff and 'check-mpi-shared' test.
We now have --with-batch=1 that generally works for machines where
things can't be run directly. Here - on cray - configure seem to work
directly - without batch - and without mpiexec.
Perhaps we can have configure - not abort if 'mpiexec' not found?
Satish
-----
diff -r 88e278a08859 config/packages/MPI.py
--- a/config/packages/MPI.py Sat Mar 05 14:24:18 2011 -0600
+++ b/config/packages/MPI.py Thu Mar 10 20:30:24 2011 -0600
@@ -155,7 +155,7 @@
self.mpiexec = 'Not_appropriate_for_batch_systems'
self.addMakeMacro('MPIEXEC',self.mpiexec)
return
- mpiexecs = ['mpiexec -n 1', 'mpirun -n 1', 'mprun -n 1', 'mpiexec',
'mpirun', 'mprun']
+ mpiexecs = ['mpiexec -n 1', 'mpirun -n 1', 'mprun -n 1', 'mpiexec',
'mpirun', 'mprun', '/bin/false']
path = []
if 'with-mpi-dir' in self.framework.argDB:
path.append(os.path.join(os.path.abspath(self.framework.argDB['with-mpi-dir']),
'bin'))