Hi,
I did the test with the simple program as shown below.
(I use mumps, which is a parallel linear solver.)
This test program does nothing but just calls intialize &
finalize routine of MUMPS & MPI.
INCLUDE 'mpif.h'
INCLUDE 'dmumps_struc.h'
TYPE (DMUMPS_STRUC) MUMPS_PAR
c
MUMPS_PAR%COMM = MPI_COMM_WORLD
MUMPS_PAR%SYM = 1
MUMPS_PAR%PAR = 1
MUMPS_PAR%JOB = -1 ! INITIALIZE MUMPS
CALL MPI_INIT(IERR)
CALL DMUMPS(MUMPS_PAR)
c
CALL MPI_COMM_RANK( MPI_COMM_WORLD, MYID, IERR )
IF ( MYID .EQ. 0 ) CALL SLEEP(180) ! WAIT 180 SEC.
c
MUMPS_PAR%JOB = -2 ! FINALIZE MUMPS
CALL DMUMPS(MUMPS_PAR)
CALL MPI_FINALIZE(IERR)
c
END
command line : mpirun -host node06,node05 -np 16 ./testrun
Results:
User & System CPUs are quite different between two versions.
Waiting processes are counted as USER CPU in openmpi 1.4.2,
while they are counted as USER & SYSTEM CPU in openmpi 1.4.3.
Something in the MUMPS intialize routine might affect SYSTEM CPU.
node06 CPU | node05 CPU
openmpi usr sys idl | usr sys idl
1.4.2 88 0 12 | 100 0 0
1.4.3 41 47 12 | 44 56 0
* process id of node06: 0-07
process id of node05: 08-15
( total 16 process )
* see attacehd file which is a snap shot of GANGLIA.
(See attached file: openmpi143.JPG)
|