Dear all,

In contrast to Dieter's findings, I can assure you it is very well possible
to set up MPI on a Windows 7 64 bit installation if you use Intel Visual
Fortran.

If you use the following compiler settings: 

set op=/Gs /nologo /nbs /w /fp:strict
(win7)
-fp-model strict -Gs -nologo -nbs -w -static
(linux/MacOSX)

you will get identical results for NONMEM 7.1, NONMEM 7.2, with and without
MPI on Windows 7 64 bit, Linux and Mac OSX providing you have the same
Fortran compiler version (we use 11.1). I can assure you that this is
definitely not the case when you use the default settings. 
This dependency on settings could perhaps explain the difference in speed
that Nick noticed between different NONMEM versions: the minimisation path
is not reproducible and so some runs which converged perfectly before now
fail to do so and the other way around.
As far as gain in speed is concerned, I have two examples. We have a dual
hex-core machine that supports hyperthreading to 24 cores. The first fairly
intensive problem takes 29:40 min without parallel processing. If we use MPI
with 12 nodes 
we go down to 2:57 min, a 10-fold decrease! Using 20 cores we go up to 3:40
which means we lose some speed. For a much smaller problem I get the
following figures:

Nodes   time (sec)
0       183 non-parallel
1       179
2       101     
3       74
4       63
5       54
6       48
7       44
10      38
12      35
14      36
16      39
18      38
20      42
24      47

So for this run we have a maximum 5.2 fold increase in speed (here the
overhead is taking its toll) and the optimum is 12 cores, so there is no
gain in using hyper-threaded cores.

Cheers,

Rik


-----Original Message-----
From: owner-nmus...@globomaxnm.com [mailto:owner-nmus...@globomaxnm.com] On
Behalf Of Dieter Menne 
Sent: 23 May 2011 9:43 PM
To: nmuser list
Subject: [NMusers] MPI installation on Win 7/ 64 bit

The solution was to install the 32-bit version  of MPICH2; both the version
coming with Nonmem and the version from 

http://www.mcs.anl.gov/research/projects/mpich2/

work ok. 

I got many personal mails telling me that my 64-bit version of MPICH was not
running. As I had noted, it was running

mpiexec -hosts 2 localhost computername.exe 

DIETERPC 

DIETERPC

but it did not play well with nonmem compiled with gfortran. 

Here the summary with MPICH for a short Bayes run (20 iterations) and an i7
with 4 real cores

CPUs  Time (s)
1      101
2       55
4       33 (50% CPU time)
8       35 (100% CPU time)

So almost perfect scaling with 2 CPUs, and as I would expect no improvement
beyond 4. The 100% CPU time indicated is simply bogus.

Dieter


> 
> I am trying to get the MPI feature in 7.2 running.
> 
> -- My system: Window 7, 64 bit. German. Gfortran 4.6.0
> 
> -- All single-CPU tests work ok.
> 
> -- File passing works ok:
> 
> >>Nmfe72 foce_parallel.ctl foce_parallel.res -parafile=fpiwini8.pnm
> [nodes]=4
> 
> Surprisingly slow (32 seconds vs. 3 seconds with one thread), but 
> never mind.
> 
> -- Test if smpd/mpiexec is working (computername.exe in directory)
> 
> >smpd -start
> MPICH2 Daemon (C) 2003 Argonne National Lab started.
> 
> >mpiexec -hosts 1 localhost computername.exe
>  DIETERPC
> 
> ### Everything works ok up to here
> 
> 
> > Nmfe72 foce_parallel.ctl foce_parallel.res -parafile=mpiwini8.pnm
> [nodes]=4
> doing nmtran
> 
>  WARNINGS AND ERRORS (IF ANY) FOR PROBLEM    1
> 
>  (WARNING  2) NM-TRAN INFERS THAT THE DATA ARE POPULATION.
>  CREATING MUMODEL ROUTINE...
>         1 Datei(en) kopiert.
> Finished compiling fsubs
> 
>  USING PARALLEL PROFILE mpiwini8.pnm
>  MPI TRANSFER TYPE SELECTED
> Completed call to gfcompile.bat
> Starting MPI version of nonmem execution ...
> C:\tmp\test1\output konnte nicht gefunden warden  (could not be found)
> 
> ----
> All subdirectories are created ok, but the process returns immediately 
> with the above message.
> 





Reply via email to