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. >