From: Jason Swails <>
Date: Thu, 23 Jan 2014 08:21:40 -0500

On Thu, 2014-01-23 at 15:54 +0800, Jheng Wei Li wrote:
> Hello, all
> The version of Amber is 12.
> I am running few testings for pure_QM_MD_GAUSSIAN_PIMD.
> The original setting is nprocs=2, ng=2 and GAU_NCPUS=1.
> ( mpirun -np 2 $sander -ng 2 -groupfile gf_pimd ).
> If I change into nprocs=4, ng=2 and GAU_NCPUS=2, it doesn't work!!
> ( mpirun -np 4 $sander -ng 2 -groupfile gf_pimd )
> ***************************************************************************************
> Running multisander version of sander Amber12
> Total processors = 4
> Number of groups = 2
> --------------------------------------------------------------------------
> MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
> with errorcode 1.
> ***************************************************************************************
> Is there any way to use 2 processors for 1 group?

This simulation is set up to run pure QM entirely with the external QM
package (in this case, Gaussian). Since only one thread can launch a
Gaussian job, it doesn't make any sense to use 2 threads for sander for
each group, since one thread will simply sit there and wait while the
other one runs Gaussian.

Note that the input you provided above actually requests the use of 6
processors. Each PIMD bead will be run using 2 CPUs (for a total of 4
CPUs), but the processor in each bead that runs Gaussian (there will be
2 of those processors total) will each run Gaussian with 2 cores. This
is clearly not what you want.

Instead, I think what you want is to run Gaussian itself with 2 CPUs, in
which case you should keep "nprocs=2" for sander, but set GAU_NCPUS=2 to
make sure that each Gaussian job is run with 2 CPUs.

It is important to realize that the CPUs used by the external QM
programs are actually used in addition to the ones requested for sander
-- i.e., the number requested in 'mpirun -np X' will use X threads for
sander, with GAU_NCPUS-1 additional CPUs being used for each Gaussian
job (the -1 is there because the CPU that calls Gaussian can itself run

This may seem a bit complicated, but as this type of simulation is quite
advanced it is important to understand what is happening behind the


Jason M. Swails
Rutgers University
Postdoctoral Researcher
AMBER mailing list
Received on Thu Jan 23 2014 - 05:30:03 PST
Custom Search