Как запустить внешнюю библиотеку в разные узлы?[MPI]

Мне нужно написать код C MPI, который использует многие функции библиотеки (в частности, это Parasail), но мой кластер имеет три разных процессора, интерфейс с Intel Xeon, 16 узлов с Intel i3 и 8 узлов с Intel Pentium-D. Как я должен скомпилировать эту библиотеку и написать код c для запуска на всех моих 24 узлах?

Я использую OpenMPI и Rocks.

Заранее спасибо.

1 ответ

У вас есть несколько вариантов, и некоторые зависят от компилятора:

  1. собрать библиотеку специально для Pentium-D (поскольку ISA обратно совместима)
  2. создать "толстый двоичный файл", это один двоичный файл, оптимизированный для нескольких архитектур. это больше, но работает эффективно везде
  3. создать одну оптимизированную и общую библиотеку для каждой архитектуры и установить ее в локальной файловой системе всех узлов, чтобы каждый узел автоматически использовал ту, которая подходит лучше всего

При этом имейте в виду, что большинство приложений MPI работают со скоростью самого медленного узла, поэтому, вообще говоря, запуск приложения MPI на старом и новом оборудовании является неоптимальным.

Другие вопросы по тегам