Menu ▾ ▴

#68 pc_run relies on a line which is optimized away to detect MPI runs

New
nobody
None
Medium
Defect
2013-08-16
2013-08-16
Anonymous
No

Originally created by: mcnal...@gmail.com

With gfortran-4.8  -O3 pc_run fails to detect that start.x uses MPI.

It does at line
https://code.google.com/p/pencil-code/source/browse/trunk/bin/pc_run#657

    $settings{'mpi'}
      = `fgrep -c 'initialize_mpicomm: MPICOMM neighbors' src/start.x` + 0;

This relies on the string from:

https://code.google.com/p/pencil-code/source/browse/trunk/src/mpicomm.f90#495

      if (ldebug_mpi) write(6,'(A,I4,"(",3I4,"): ",8I4)') &
        'initialize_mpicomm: MPICOMM neighbors ', &
        iproc,ipx,ipy,ipz, &
        ylneigh,llcorn,zlneigh,ulcorn,yuneigh,uucorn,zuneigh,lucorn

showing up in the binary.

If you compile with ldebug_mpi=.false. this line can be optimized away, so the strong does not show up in the binary start.x

pc_run needs to do the detection in some other way - perhaps some useful default output message can be added to MPICOMM to tag the binary.

Discussion


Log in to post a comment.