[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
implementation?
Thanks,
-Ivan
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