Problem with Unified Binary on host without GPU


I am trying to run my OpenACC enriched binary on host w/ and w/o attached GPU using the Unified Binary approach. Using the following compile command line:
pgc++ -acc -mp -ta=nvidia,host -Bstatic_pgi main.C
on the host with attached GPU results in the following error when run on a host w/o attached GPU:
/main: error while loading shared libraries: cannot open shared object file: No such file or directory
Doing ldd on main shows that the binary cannot find two libraries that ship with the PGI compiler despite having used -Bstatic_pgi:
ldd main => (0x00007fff64bfd000) => /lib64/ (0x00002b5bbe49e000) => /lib64/ (0x00002b5bbe6bb000) => /lib64/ (0x00002b5bbe8c4000) => not found => not found => /lib64/ (0x00002b5bbed06000) => /lib64/ (0x00002b5bbef1d000) => /lib64/ (0x00002b5bbf233000) => /lib64/ (0x00002b5bbf4b6000)
/lib64/ (0x00002b5bbe280000)

In another post it is only mentioned that is missing and a ticket has been created to fix this in a future release. Will this also hold for or will I always end up having to copy some libs over to non GPU hosts from the REDIST directory?


Hi LS,

Apologies for this. We noticed the “” issue a bit ago and corrected it in 15.3. “” was corrected in 15.7.

Here’s what I show using 15.7:

% pgc++ -acc test.c -ta=tesla,host -Bstatic_pgi -w -V15.7
% ldd a.out =>  (0x00007fff5d0f6000) => /lib64/ (0x0000003d4a800000) => /lib64/ (0x0000003d55c00000) => /usr/lib64/ (0x0000003d57000000) => /lib64/ (0x0000003d4ac00000) => /lib64/ (0x0000003d4a000000) => /lib64/ (0x0000003d4a400000)
        /lib64/ (0x0000003d49c00000)

Best Regards,

Hi Mat

We just upgraded to 15.7 and I could confirm that it works as expected now.
Thanks for fixing this.