Is the pgi cdk mpich debuggable?

I install pgi cd under /hptc_cluster/pgi, so the mpich (mpich1) is under /hptc_cluster/pgi/linux86-64/7.2/mpi/mpich/
but when I tried to debug a mpi application with :
mpirun -machinefile machinefile -np 4 -dbg=pgdbg ./turb

it allways stoped at mpi_init, and the command pannel said:

pgdbg>
Reloading:
/skovira/home/ccsad_1/zxiao_jhu_s_pgi_mpich1_debug/turb -p4pg /skovira/home/ccsad_1/zxiao_jhu_s_pgi_mpich1_debug/PI13701 -p4wd /skovira/home/ccsad_1/zxiao_jhu_s_pgi_mpich1_debug -mpichtv

ERROR: cannot read value at address 0xF2E0F018.
ERROR: cannot read value at address 0xF2E0F000.
Signalled SIGSEGV at 0x407364, function main
0x407364: 48 89 5C 24 8 movq %rbx,8(%rsp)
ERROR: cannot read value at address 0xF2E0F018.
ERROR: cannot read value at address 0xF2E0F000.

I tried to see the message queue window, it said:
ERROR: unable to load /hptc_cluster/pgi/linux86-64/7.2/mpi/mpich/lib/libtvmpich.so: libpgc.so: cannot open shared object file: No such file or directory
Aborting message queue dump.

\

In fact, this application is able to run with 4 processes:
/hptc_cluster/pgi/linux86-64/7.2/mpi/mpich/bin/mpirun -machinefile machinefile -np 4 ./turb

Where is the question? Thanks very much.


-sad

Hi sad,

The MPICH and MPICH-2 libraries that accompany the PGI CDK can be used by PGDBG. The problem here is that the PGI runtime library “libpgc.so” is either not installed on one or more of your nodes, or you need to set “LD_LIBRARY_PATH” to include the location of this library.

  • Mat

I think I have already exported this libpgc.so, it is in:
/hptc_cluster/pgi/linux86-64/7.2-2/libso
I export LD_LIBRARY_PATH in .bashrc:
#for pgi
PGI=/hptc_cluster/pgi
LM_LICENSE_FILE=$LM_LICENSE_FILE:/hptc_cluster/pgi/license.dat

#for pgi
PATH=/hptc_cluster/pgi/linux86-64/7.2-2/bin:$PATH
LD_LIBRARY_PATH=/hptc_cluster/pgi/linux86-64/7.2-2/libso/libpgc.so:/hptc_cluster/pgi/linux86-64/7.2-2/lib:/usr/lib64:$LD_LIBRARY_PATH

#for pgdbg
PGDBG_MQS_LIB_OVERRIDE=/hptc_cluster/pgi/linux86-64/7.2/mpi/mpich/lib/libtvmpich.so
export PGI LM_LICENSE_FILE PGDBG_MQS_LIB_OVERRIDE
export PATH
export LD_LIBRARY_PATH

==========
I will try again, anyhow.Thanks, Mat.

-sad

Hi Sad,

Your LD_LIBRARY_PATH should only include directories. Try changing:

LD_LIBRARY_PATH=/hptc_cluster/pgi/linux86-64/7.2-2/libso/libpgc.so:/hptc_cluster/pgi/linux86-64/7.2-2/lib:/usr/lib64:$LD_LIBRARY_PATH

to

LD_LIBRARY_PATH=/hptc_cluster/pgi/linux86-64/7.2-2/libso:/hptc_cluster/pgi/linux86-64/7.2-2/lib:/usr/lib64:$LD_LIBRARY_PATH

and see it that helps.

  • Mat