mpiexec -idb fails to start debugger

mpiexec -idb fails to start debugger

burnesrr's picture

I am having trouble running Intel's debugger idb on a Fortran program I have written that utilizes the Intel MPI libraries. The debugger works fine on the same executable when run as a serial application, but when I try to execute the following:

mpiexec -idb -np 2 ns3D

I see an attempt to create an idb window and then it disappears and the mpiexec command issued exits without any messages to indicate what happened.

Here are the settings in /etc/bashrc:

export MPIEXEC_DEBUG=1
export INTEL_LICENSE_FILE=/opt/intel/licenses
export IDB_HOME=/opt/intel/composerxe-2011.2.137/bin/ia32/idb
source /opt/intel/bin/compilervars.sh ia32
source /opt/intel/itac/8.0.1.009/bin/itacvars.sh
source /opt/intel/impi/4.0.1/bin/mpivars.sh

Here are the versions I have installed:

[burnesrr@rainier ~]$ which mpiifort
/opt/intel/impi/4.0.1.007/ia32/bin/mpiifort

[burnesrr@rainier ~]$ which idb
/opt/intel/composerxe-2011.2.137/bin/ia32/idb

Any help in solving this problem would be greatly appreciated.

Sincerely,
Rick

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Dmitry Kuzmin (Intel)'s picture

Hi Rick,

IDB has got a GUI interface, but IDB doesn't support MPI in graphical mode. You probably need to make some changes according to this article.
Also I hope that this article may help.

Strictly speaking, questions related to IDB should be asked in Compiler forum: http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/

Regards!
Dmitry

burnesrr's picture

Hi Dmitry,

I had seen the article you referenced, but since that was from 2009 I had assumed the technical issues preventing idb from running in graphical mode on an MPI program had been resolved. Are there plans to resolve this bug in the near future?

Sincerely,
Rick

burnesrr's picture

Hi Dmitry,

One more question:
Would the following method work to make use of the gui version of idb on an MPI program:

(1) Add a line to the beginning of my Fortran source that pauses the execution based on a logical flag that has been set to .TRUE.
(2) Attach gui idb to each of the processes.
(3) change the value of the logical flag to .FALSE. to let execution continue.

I have not tried this - is it possible to run more than one instance of the gui version of idb?

Sincerely,
Rick

Dmitry Kuzmin (Intel)'s picture

Hi Rick,

I'll try to explain you how IDB works.
For MPI applications main IDB starts so called "leaf" debuggers (using option -parallel) and each "leaf debugger" attaches to one MPI process. "leaf debuggers" communicate with main IDB providing output from MPI processes and getting debugger commands. Of cause "leaf" debuggers work with command line interface.
At the beginning IDB sets breakpoint at function MPIR_Breakpoint() and after that continue execution until exit from MPI_Init() function.
Of cause you can attach GUI IDB to any process you want, but I don't know how you'll synchronize commands for all processes. From my point of view it will be very inconvenient.

About future MPI support...
Looking at the Release Notes for the latest Intel compiler (composer) there is no doubts about that support - there will be NO MPI support in GUI IDB :-(
Please read 4.5.2 and 4.5.3

But I hope that you'll be able to use command line version:
4.5.10 idb GUI cannot be used to debug MPI processes
The idb GUI cannot be used to debug MPI processes. The command line interface (idbc) can be used for this purpose.

But, again, questions related to IDB much better to ask in Forum dedicted to Intel Compiler (Composer).

Regards!
Dmitry

Login to leave a comment.