вывод ldd, показывающий общий объектный файл, функция которого не вызывается - PullRequest
1 голос
/ 16 апреля 2010

Я выполнил команду ldd для исполняемого файла, созданного Open MPI. Это показывает ссылку на libpthread.so Используя переменную LD_PRELOAD, я создал свою собственную реализацию pthread_create, но из ее вывода кажется, что реализация MPI не вызывает pthread_create, как я ожидал. Почему ldd показывает pthread, чтобы файл выводился, если он не используется? Open MPI не использует отдельный поток MPI для каждого узла для реализации функциональности?

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

MPI использует процессы, а не потоки. Так что нет, Open MPI не будет использовать отдельный поток MPI для узла.

0 голосов
/ 16 апреля 2010

Если двоичный файл не связан с --as-needed, он получит ссылку на каждую библиотеку, указанную в командной строке ссылки, независимо от того, действительно ли она нужна. Передайте -Wl,--as-needed в gcc, чтобы он передал опцию в ld.

...