Dear Don,
I’ve sent an email with the details requested to trs@pgroup.com
I will also post the details here for everyone’s reference:
I tried setting the MPIDIR environment variable and that didn’t help, it still shows only one processor in the profiler.
Also to isolate if it’s an MPI build problem, I tried using the MPICH2 version that came bundled with the PGI compiler CDK (i.e. /opt/pgi/linux86-64/2011/mpi2/mpich) as I am assuming it is built with all what is needed to hook with the profiler. Even with that version of MPICH2 I am only seeing one processor being profiled. So to me it seems that the problem is not related to the MPICH2 build as PGI’s version of MPICH2 is showing the same behavior.
Below is the output from the link line using “-v” as requested, for reference we use CMake to do our builds.
I’ve stripped out the few hundred source files being linked and just replaced it with a few for convenience and confidentiality (i.e. file1.f.o, file2.f.o, etc…). The PGI 11.8 compiler CDK is installed in /scratch/pgi11.8
Linking Fortran executable app.exe
mpif90 for MPICH2 version 1.2.1p1
mpif90 for MPICH2 version 1.2.1p1
pgf90-Info-Switch -Mpfo -Mpfo forces -O2
/usr/bin/ld /usr/lib64/crt1.o /usr/lib64/crti.o /scratch/pgi11.8/linux86-64/11.8/lib/trace_init.o /usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtbeginT.o
/scratch/pgi11.8/linux86-64/11.8/lib/initmp.o /scratch/pgi11.8/linux86-64/11.8/lib/init_pgpf.o /scratch/pgi11.8/linux86-64/11.8/lib/f90main.o -m
elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 /scratch/pgi11.8/linux86-64/11.8/lib/pgi.ld
-L/scratch/pgi11.8/linux86-64/11.8/mpi2/mpich/lib
-L/scratch/pgi11.8/linux86-64/11.8/libso
-L/scratch/pgi11.8/linux86-64/2011/mpi2/mpich/lib -L/scratch/pgi11.8/linux86-64/2011/mpi2/mpich/lib
-L/scratch/pgi11.8/linux86-64/11.8/lib -L/usr/lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -Bstatic -Bstatic
file1.f.o
file2.f.o
file3.f.o
CPP_Source_Files.a
C_Source_Files.a
-lmpichcxx -rpath
/scratch/pgi11.8/linux86-64/11.8/mpi2/mpich/lib:/scratch/pgi11.8/linux86-64/11.8/libso
-lmpichf90 -rpath /scratch/pgi11.8/linux86-64/2011/mpi2/mpich/lib -lmpichf90 -lmpich -lopa -lpthread -lrt -rpath
/scratch/pgi11.8/linux86-64/11.8/mpi2/mpich/lib -rpath /scratch/pgi11.8/linux86-64/11.8/mpi2/mpich/lib -rpath /scratch/pgi11.8/linux86-64/11.8/lib
-o app.exe
-L/scratch/pgi11.8/linux86-64/11.8/mpi2/mpich/lib -lfmpich -lmpichf90 -L/scratch/pgi11.8/linux86-64/11.8/mpi2/mpich/lib -lfmpich -lmpichf90
-lpgnod_prof -lmpich -lpthread -lzceh -lgcc_eh --eh-frame-hdr -lstdz -lCz /scratch/pgi11.8/linux86-64/11.8/lib/nonuma.o -lpgmp -lpthread -lpgftnrtl
-lpgftnrtl -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -lpgftnrtl -lnspgc -lpgc -lrt -lpthread -lm -lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtend.o /usr/lib64/crtn.o
/scratch/pgi11.8/linux86-64/11.8/mpi2/mpich/lib/libmpich.a(simple_pmi.o): In function `PMII_Connect_to_pm':
/home/sw/cdk/cdk/mpich2-1.2.1p1/mpich2-1.2.1p1/src/pmi/simple/simple_pmi.c:1088: warning: Using 'gethostbyname' in statically linked applications
requires at runtime the shared libraries from the glibc version used for linking
[100%] Built target app.exe
What is the “PGI MPI profiling lib” called and where is it located? Does the linking details show that it is being linked to? If it’s not showing, is it possible to link to it manually?
Unfortunately we won’t be able to provide a copy of the pgporf.out since it has the structure of the application’s source code tree which is confidential.
Commands used to launch the MPI program and profiler:
[user@node001 test]$ where mpd
/scratch/pgi11.8/linux86-64/11.8/mpi2/mpich/bin/mpd
[user@node001 test]$ where mpiexec
/scratch/pgi11.8/linux86-64/11.8/mpi2/mpich/bin/mpiexec
[user@node001 test]$ mpd &
[user@node001 test]$ mpiexec -n 12 ./app.exe -m ./file.input | tee output
[user@node001 test]$ pgprof -exe ./app.exe
Compilation flags being used:
Fortran:
-v -Mpfo -Mprof=lines,mpich2 -Minfo=ccff -pgcpplibs -w -pc 64 -Mnoopenmp -Kieee -Mpreprocess -Mbyteswapio -Bstatic -Mextend -traceback
C and C++:
-v -Mpfo -Mprof=lines,mpich2 -Minfo=ccff -w -Bstatic -traceback
Thank you for your help.