Re: CCL:Gaussian98w and SMP processing
> Dear members:
> I have a Dual PentiumII PC and after installing PC-GAMESS I gave to the
> system variable named MKL_NPROC the value 2 in order to run GAMESS in
> SMP parallel mode.
> However I noticed a strange behavior of Gaussian98w after this. The
> program seems to use the two CPU, so I thought that Gaussian was
> effectively running in SMP mode.
> But when I measured the cpu and wall-clock times there was non
> improvement respect to set MKL_NPROC=1.
> Has anybody noticed this behavior of Gaussian in Dual Boxes?
> Armando Navarro
It seems that G98w uses old MKL v. 2.0 (or v. 2.1, I'm not sure)
so it is affected by the MKL_NPROCS environment variable.
The itself problem is in the MKL v. 2.0/2.1 behavior.
Namely, the additional thread(s) are not suspended after
matrix-matrix multiplication. Thus, G98w consumes CPU
time on all CPUs, while the actual calculations are mainly
performed only on one CPU.
Next, it seems that the average size of matrices used by the
G98w is relatively small, so there is no benefit due to usage of
second CPU even if performing matrix-matrix multiplication.
As to the PC GAMESS, we developed a workaround for this
problem when dealing with old MKL 2.0. Starting from the
MKL 3.0, the behavior of MKL-created threads was fixed,
namely, they are suspended if not needed for actual calculations.
Also, if you use PC GAMESS v. 5.3 and higher, the simplest way to
set the number of CPUs used is simply set integer variable "mklnp"
in $system group to the desired number of CPUs (it is longer not
necessary to use MKL_NPROCS with the newer PC GAMESS).