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

ERROR: ld.so: object ''libVT.so' from LD_PRELOAD cannot be preloaded: ignored.

GeorgeBisbas
New Contributor I
4,347 Views

Dear all,

I am using Intel Parallel Studio XE 2017.6 in order to trace a HYBRID OPENMP/MPI application.

I use:
```mpiexec.hydra -trace "libVT.so libmpi.so" python ....py args```
and although the application runs fine and an .stf file is created with reasonable results
the log file of my application's execution gives me the error:

ERROR: ld.so: object ''libVT.so' from LD_PRELOAD cannot be preloaded: ignored.

I would expect this error to be resolved by using :
export LD_PRELOAD=.../libVT.so

however it still persists.

In case where I remove "libVT.so libmpi.so" from the command above I get:

ERROR: ld.so: object ''libVT.so' from LD_PRELOAD cannot be preloaded: ignored.
python: symbol lookup error: /rdsgpfs/general/apps/intel/2017.6/itac/2017.4.034/intel64/slib/libVT.so: undefined symbol: PMPI_Initialized

and my application terminates without success.
Does that mean that even if it complains for faulty preloading, it still uses that? (I guess yes.)
Should I trust the results I get for the `succesfull` however `complaining` execution?

I will be more than happy to help with more info if needed.

Thank you in advance,
George Bisbas


 

0 Kudos
1 Solution
Marat_S_Intel
Employee
4,347 Views

Hello George,

If .stf file is created it means that ITAC worked just fine and was able to collect trace.

I would guess that together with `-trace "libVT.so libmpi.so"` you exported `LD_PRELOAD=.../libVT.so`. In order to collect trace you only need to use one of this options. 

So, I think  `-trace "libVT.so libmpi.so"` worked and  `LD_PRELOAD=.../libVT.so` did not (and that's why preload error is in logs).

You can fix this error like this `export LD_PRELOAD=libVT.so:libmpi.so` (also no need to provide full path to libs if you sourced itacvars.sh and mpivars.sh). libmpi.so is needed in LD_PRELOAD because you run python application.

Anyway, I recommend using `-trace "libVT.so libmpi.so"`, no need to set additional environment variables.

 

Best regards,

Marat

 

 

View solution in original post

0 Kudos
3 Replies
GeorgeBisbas
New Contributor I
4,347 Views

The same happens if I use a toy mpi-hello-world program so I guess it is not specific to my application.

0 Kudos
Marat_S_Intel
Employee
4,348 Views

Hello George,

If .stf file is created it means that ITAC worked just fine and was able to collect trace.

I would guess that together with `-trace "libVT.so libmpi.so"` you exported `LD_PRELOAD=.../libVT.so`. In order to collect trace you only need to use one of this options. 

So, I think  `-trace "libVT.so libmpi.so"` worked and  `LD_PRELOAD=.../libVT.so` did not (and that's why preload error is in logs).

You can fix this error like this `export LD_PRELOAD=libVT.so:libmpi.so` (also no need to provide full path to libs if you sourced itacvars.sh and mpivars.sh). libmpi.so is needed in LD_PRELOAD because you run python application.

Anyway, I recommend using `-trace "libVT.so libmpi.so"`, no need to set additional environment variables.

 

Best regards,

Marat

 

 

0 Kudos
GeorgeBisbas
New Contributor I
4,347 Views

Thank you very much for the help Marat.
Problem solved.
Best,
George Bisbas

0 Kudos
Reply