Как запустить внешнюю библиотеку в разные узлы?[MPI]
Мне нужно написать код C MPI, который использует многие функции библиотеки (в частности, это Parasail), но мой кластер имеет три разных процессора, интерфейс с Intel Xeon, 16 узлов с Intel i3 и 8 узлов с Intel Pentium-D. Как я должен скомпилировать эту библиотеку и написать код c для запуска на всех моих 24 узлах?
Я использую OpenMPI и Rocks.
Заранее спасибо.
1 ответ
У вас есть несколько вариантов, и некоторые зависят от компилятора:
- собрать библиотеку специально для Pentium-D (поскольку ISA обратно совместима)
- создать "толстый двоичный файл", это один двоичный файл, оптимизированный для нескольких архитектур. это больше, но работает эффективно везде
- создать одну оптимизированную и общую библиотеку для каждой архитектуры и установить ее в локальной файловой системе всех узлов, чтобы каждый узел автоматически использовал ту, которая подходит лучше всего
При этом имейте в виду, что большинство приложений MPI работают со скоростью самого медленного узла, поэтому, вообще говоря, запуск приложения MPI на старом и новом оборудовании является неоптимальным.