[Darshan-users] Profiling Python C/C++ extensions with Darshan

Ivan Raikov ivan.g.raikov at gmail.com
Mon Feb 27 13:26:24 CST 2017

Hi Kevin,

   Yes, using the CRAY-provided MPICH and GNU compiler 4.9. The Python
version is 2.7.11. I am not sure what is CCM, how do I check for it? I
have tested an confirmed that binaries compiled with g++ and
statically linked with Darshan 2.3 can generate Darshan profile data,
but was never able to get the LD_PRELOAD mechanism to work. The socket
error seems to be from the MPI library. Is it possible that Darshan's
approach to dynamic loading somehow conflicts with this MPI

On Mon, Feb 27, 2017 at 11:18 AM, Harms, Kevin <harms at alcf.anl.gov> wrote:
> Ivan,
>   I have not tried it myself but it should be possible. For your python application, are you using the Cray provided MPI library? Are you using the cluster compatibility mode (CCM)?
> kevin
> -----Original Message-----
> From: <darshan-users-bounces at lists.mcs.anl.gov> on behalf of Ivan Raikov <ivan.g.raikov at gmail.com>
> Date: Monday, February 27, 2017 at 1:09 PM
> To: "darshan-users at lists.mcs.anl.gov" <darshan-users at lists.mcs.anl.gov>
> Subject: [Darshan-users] Profiling Python C/C++ extensions with Darshan
>     Hello,
>     I have a Python extension written in C++ which calls the HDF library,
>     and I would like to use Darshan to profile an MPI-based Python
>     application which invokes that extension. However, compiling the
>     extension and running the application on Blue Waters (Cray-based
>     system) with Darshan 2.3 results in no profile data being generated.
>     Using LD_PRELOAD to load Darshan dynamically results in some kind of
>     socket error when (I think) the MPI process manager is launching the
>     Python executable. I have also tried the LD_PRELOAD mechanism with
>     Darshan 3.1.3 built by the HDF group, but I  get the same error. I was
>     wondering if anyone here has done profiling with dynamically linked
>     Python extensions, or if anyone has any advice how to approach this.
>     I invoke the application with LD_PRELOAD thus:
>     export LD_PRELOAD=/path/to/darshan/3.1.3/lib/libdarshan.so
>     aprun -n 4096 python main.py ...
>     or
>     aprun -n 4096 -e LD_PRELOAD=/path/to/darshan/3.1.3/.../lib/libdarshan.so
>     The error I get with LD_PRELOAD is the following:
>     [PE_3344]:inet_listen_socket_setup:inet_setup_listen_socket: bind
>     failed port 1371 listen_sock = 88 Address already in use
>     [PE_3344]:_pmi_inet_listen_socket_setup:socket setup failed
>     [PE_3344]:_pmi_init:_pmi_inet_listen_socket_setup (full) returned -1
>     [PE_208]:inet_listen_socket_setup:inet_setup_listen_socket: bind
>     failed port 1371 listen_sock = 74 Address already in use
>     [PE_208]:_pmi_inet_listen_socket_setup:socket setup failed
>     [PE_208]:_pmi_init:_pmi_inet_listen_socket_setup (full) returned -1
>     Thanks and best regards,
>     _______________________________________________
>     Darshan-users mailing list
>     Darshan-users at lists.mcs.anl.gov
>     https://lists.mcs.anl.gov/mailman/listinfo/darshan-users

More information about the Darshan-users mailing list