Ошибка 2 при компиляции MILC для запуска

Вопрос или проблема

Я участвую в конкурсе по высокопроизводительным вычислениям, и моя команда получила ответственность за выполнение бенчмарков MILC с использованием NERSC.

Мы сделали следующее:

$ git clone https://github.com/milc-qcd/milc_qcd.git

$ cd milc_qcd
$ git checkout develop

$ cd ks_imp_rhmc

$ cp ../Makefile .

Наш Makefile выглядит следующим образом:

# Дополнительные баллы будут присваиваться командам, которые используют как GNU, так и Intel компиляторы
COMPILER=gcc
COMPILER=intel # нам сказали использовать oneAPI
# Определите это с помощью lscpu
ARCH=epyc
# Вы НЕ компилируете для GPU
WANTQUDA=false
# Вы можете протестировать с помощью последовательного запуска, но бенчмарк не завершится без MPI и/или потоков OpenMP
MPP=true
# Вы должны использовать двойную точность
PRECISION=2
OMP=true

Мы попытались создать этот файл с помощью:

$ make su3_rhmd_hisq 2>&1 | tee make_logfile.log

Однако процесс сборки потерпел неудачу и вернул сообщение об ошибке, показанное ниже:

Это сообщение об ошибке, которое мы получили

Ответ или решение

Ситуация, с которой вы столкнулись, требует тщательного анализа и понимания ошибок, возникающих при компиляции MILC. Вы предоставили подробности о процессе, который вы прошли, и ошибках, с которыми столкнулись. Давайте рассмотрим возможные причины ошибки и потенциальные пути решения.

Проблемы компиляции MILC: Ошибка 2

Контекст и начальные шаги

Вы выполнили следующие действия:

  1. Клонирование репозитория: Вы правильно загрузили исходный код MILC с помощью git, что является стандартной практикой для получения актуальной версии программного обеспечения.

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

  3. Копирование Makefile: Вы скопировали Makefile из родительской директории, что является важным шагом для настройки среды компиляции.

Анализ Makefile

Ваш Makefile содержит конфигурацию для компиляции:

# Использование как GNU, так и Intel компиляторов
COMPILER=gcc
COMPILER=intel
...</code>

Обратите внимание на повторное определение переменной COMPILER. В результате компилятор будет использован intel, так как именно он объявлен последним. Убедитесь, что вы действительно хотите использовать компилятор Intel и что он установлен на вашей системе.

# Архитектура
ARCH=epyc

Убедитесь, что флаг архитектуры правильно определяет вашу систему. Вы можете использовать lscpu, чтобы проверить параметры архитектуры.

# Параметры компиляции
PRECISION=2
WANTQUDA=false
MPP=true
OMP=true

Эти параметры, как правило, верны, хотя настройка WANTQUDA=false может уменьшить производительность на поддерживаемых архитектурах с поддержкой GPU.

Ошибка во время компиляции

Вы упомянули, что при использовании команды make для сборки возникла ошибка, однако не была включена конкретная информация о самой ошибке. Если ошибка указана в вашем лог-файле, ключевыми моментами при ее анализе могут быть:

  1. Проблемы с зависимостями: Убедитесь, что все необходимые библиотеки и инструменты установлены. Обратите внимание на отсутствие заголовочных файлов или библиотек, которые могли бы привести к ошибке компиляции.

  2. Правильный путь к компиляторам: Убедитесь, что пути к компиляторам gcc и intel корректны, и что соответствующие версии компиляторов установлены и доступны в вашем окружении.

  3. Поддержка MPI и OpenMP: Убедитесь, что ваш компилятор поддерживает необходимые библиотеки для параллельных вычислений, такие как MPI и OpenMP. При необходимости установите соответствующие пакеты.

Рекомендации по исправлению ошибок

  1. Перепроверьте Makefile: Убедитесь, что в файле нет конфликтующих настроек, и все переменные правильно инициализированы.

  2. Очистите кеш сборки: Иногда старые артефакты могут вызвать ошибки. Попробуйте выполнить команду make clean, а затем повторную сборку.

  3. Проверьте логи: Изучите содержимое make_logfile.log на предмет подсказок, связанных с ошибками. Это может помочь выявить, что именно пошло не так.

  4. Обратитесь к документации: Проверьте официальную документацию MILC и сторонние ресурсы для поиска известных проблем и их решений, связанных с компиляцией на вашем оборудовании.

Заключение

Компиляция MILC может быть сложной задачей, особенно в контексте высокопроизводительных вычислений. Следуя приведенным рекомендациям и избегая дублирования конфигурационных параметров, вы сможете устранить возникшие проблемы и успешно завершить тестирование. Не забывайте также о возможностях, предоставляемых сообществом, и механизмах обратной связи для получения дополнительных советов и решений.

Оцените материал
Добавить комментарий

Капча загружается...