Page 1 of 1
"make multi nproc=8" still only seems to run on 1 processor
Posted: Mon Apr 28, 2014 6:44 pm
by Fm3m
Hello,
I'm compiling abinit 7.6.2 to run on a cluster. We have 8 processors per node, so I used
>make multi_nprocs=8
when I was compiling. Compilation ran without errors.
When I run abinit, I do not use mpi to handle the job. Rather, I log in to a compute node (which has 8 processors) and run abinit directly. However, if I do this and then separately run
>top
there is only one process running. Furthermore, when I run abinit and check the log, abinit has output
nproc = 1
Any suggestions?
Thanks in advance.
Re: "make multi nproc=8" still only seems to run on 1 proces
Posted: Mon Apr 28, 2014 7:31 pm
by jbeuken
Hi,
make multi multi_nprocs=x ( not make multi_nprocs=x )
jmb
Re: "make multi nproc=8" still only seems to run on 1 proces
Posted: Mon Apr 28, 2014 9:35 pm
by Fm3m
Thank you for the suggestion. However, the problem persists.
>./configure --prefix=/home/fs03/ehs73/bin/abinit-7.6.2
> make clean
> make multi multi_nprocs=8
> make install
Followed by
abinit <input.files>& log
still only runs on one processor.
Re: "make multi nproc=8" still only seems to run on 1 proces
Posted: Tue Apr 29, 2014 12:40 pm
by jzwanzig
make multi multi_nprocs=8 means that it will use 8 processors to build abinit (which is faster than using 1 processor to build abinit).
When you RUN abinit, you have to tell it how many processors to use, typically (if you are using MPI as your parallel environment) through
mpirun -np 8 abinit < foo.files &> log
mpirun launches abinit using in this case 8 processors. Note the following: the value you use for np need not correspond to the number of physical cores on your machine, although it will get quite inefficient if you use a number much larger than the number of physical processors. Secondly, mpirun (or mpiexec etc) are not part of abinit, they are part of the MPI environment which has to have been installed separately (and usually is in multi-core linux-type systems).
Re: "make multi nproc=8" still only seems to run on 1 proces
Posted: Wed Apr 30, 2014 5:33 pm
by Fm3m
I am not using mpirun, just evoking abinit from the command line (see earlier post in this thread).
Re: "make multi nproc=8" still only seems to run on 1 proces [SOLVED]
Posted: Wed Apr 30, 2014 8:24 pm
by jzwanzig
Yes, I saw that you are not using mpirun, and that's exactly why abinit is only running on one processor. Like any other parallelized program, abinit to run in parallel must be explicitly launched in the parallel environment with the desired number of processors. mpirun is the program that takes care of this. make multi_nproc has nothing to do with this aspect. You could use make multi_nproc to build a purely serial version of abinit if you wanted to. It sounds like you are building a parallel version (are you? is it being compiled by mpif90, as opposed to gfortran or ifort?) Then to executed on multiple processors you have to start abinit using mpirun, not by running all by itself.
Re: "make multi nproc=8" still only seems to run on 1 proces
Posted: Thu May 01, 2014 5:10 pm
by Fm3m
OK, thanks. I see now.