Intel® HPC Toolkit
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
2153 Discussions

Do you intent to make Itac support OpenMPI?

laurent_nguyen
Beginner
533 Views

Hello,

we used a MPI library which was mpich2-like. So, ITAC ran well with it. But now this library switched to a OpenMPI-like implementation. Then ITAC is useless.

Is there possible to implement an ITAC for OpenMPI?

(For MKL Library, there is a BLACS for each implementation of MPI Library, then I suppose you would have done something like with ITAC).

Thank you,

0 Kudos
5 Replies
Dmitry_K_Intel2
Employee
533 Views

Hi,

Officially, OpenMPI will not be supported (guess why). But as far as I know ITAC should work with OpenMPI as well.

Could you provide compilation command for your application, ITAC version, openMPI version. What does it mean "switched"? Have you recompiled your application?

Regards!

Dmitry

0 Kudos
laurent_nguyen
Beginner
533 Views
Hello Dmitry,

I'm sorry for this late answer. I'm provide here an example:

[cpp]#include "mpi.h"
#include "VT.h"


int main(int argc, char *argv[])
{
int vt_handle;

MPI_Init(&argc, &argv);
VT_funcdef("Init", VT_NOCLASS, &vt_handle);

VT_begin(vt_handle);
printf("Hello World!n");
VT_end(vt_handle);

MPI_Finalize();
return 0;
}
[/cpp]
And here how I compile:
[bash]$ module list
Currently Loaded Modulefiles:
1) intel/11.1.056(default) 2) openmpi/1.4.1 3) itac/7.2.2.006
[/bash]
here the result of the execution:

[bash]$ mpicc -I$VT_ROOT/include -o prog.exe prog.c -L$VT_LIB_DIR -lVT $VT_ADD_LIBS 
$ echo $VT_MPI
impi3
$ mpirun -np 2 ./prog.exe

[localhost:26547] *** Process received signal ***
[localhost:26547] Signal: Segmentation fault (11)
[localhost:26547] Signal code: Address not mapped (1)
[localhost:26547] Failing at address: 0x44000098
[localhost:26548] *** Process received signal ***
[localhost:26548] Signal: Segmentation fault (11)
[localhost:26548] Signal code: Address not mapped (1)
[localhost:26548] Failing at address: 0x44000098
[localhost:26547] [ 0] /lib64/libpthread.so.0 [0x3113e0e4c0]
[localhost:26547] [ 1] /applications/openmpi-1.4.1/lib/libmpi.so.0(MPI_Comm_dup+0xe7) [0x2b7d88af46ab]
[localhost:26547] [ 2] ./prog.exe(VT_IPCInit+0x17f) [0x42be03]
[localhost:26547] [ 3] ./prog.exe(VT_Init+0x351) [0x4a537d]
[localhost:26547] [ 4] ./prog.exe(MPI_Init+0xd6) [0x4371d6]
[localhost:26547] [ 5] ./prog.exe(main+0x41) [0x4194e1]
[localhost:26547] [ 6] /lib64/libc.so.6(__libc_start_main+0xf4) [0x311321d974]
[localhost:26547] [ 7] ./prog.exe(realloc+0x189) [0x4193e9]
[localhost:26547] *** End of error message ***
[localhost:26548] [ 0] /lib64/libpthread.so.0 [0x3113e0e4c0]
[localhost:26548] [ 1] /applications/openmpi-1.4.1/lib/libmpi.so.0(MPI_Comm_dup+0xe7) [0x2b2ebfce46ab]
[localhost:26548] [ 2] ./prog.exe(VT_IPCInit+0x17f) [0x42be03]
[localhost:26548] [ 3] ./prog.exe(VT_Init+0x351) [0x4a537d]
[localhost:26548] [ 4] ./prog.exe(MPI_Init+0xd6) [0x4371d6]
[localhost:26548] [ 5] ./prog.exe(main+0x41) [0x4194e1]
[localhost:26548] [ 6] /lib64/libc.so.6(__libc_start_main+0xf4) [0x311321d974]
[localhost:26548] [ 7] ./prog.exe(realloc+0x189) [0x4193e9]
[localhost:26548] *** End of error message ***
--------------------------------------------------------------------------
mpirun noticed that process rank 0 with PID 26547 on node localhost exited on signal 11 (Segmentation fault).
--------------------------------------------------------------------------[/bash]
I suppose there are some incompatibilities between symbols in ITAC and OpenMPI. I understand why you don't want to support OpenMPI, but when I saw MKL Scalapack supports OpenMPI, I hope you will do the same thing with ITAC (and some others products).

Thank you for your answer.

Best Regards,



0 Kudos
Dmitry_K_Intel2
Employee
533 Views
Hi Laurent,

>I understand why you don't want to support OpenMPI, but when I saw MKL Scalapack supports OpenMPI, I hope you will do the same thing with ITAC (and some others products).

Unfortunately any new activity, feature, support requires human resources. OpenMPI support is not a high priority task for us at the moment, but of cause it's in the list.

Regards!
Dmitry
0 Kudos
TimP
Honored Contributor III
533 Views
ITAC relies on platform features which aren't known for platforms other than those already supported. It's descended from Vampir, which I believe has appeared on openMPI as well.
0 Kudos
Gergana_S_Intel
Employee
533 Views

Hi Laurent,

As Dmitry mentions, we don't have any current plans to support OpenMPI. But, we do support MPICH. Thus, if OpenMPI has an MPICH-compatibility mode, you should be able to use ITAC over that.

Additionally, you can check compatibility between the binary interfaces of ITAC and OpenMPI by recompiling the provided examples/constants.c file. Instructions on how that's done and the acceptable values are provided in section 1.2 System Requirements and Supported Features of the Intel Trace Collector Reference Manual. That way you can, at least, verify if ITAC will work with OpenMPI in the first place.

Regards,
~Gergana

0 Kudos
Reply