HPC кластер. Какой дистрибутив Linux выбрать и как добиться производительности?
Есть HPC кластер который работает на стареньком дистрибутиве Debian 7.
Встала задача обновить дистрибутив до современного. Debian 9/CentOS 7 и т.п.
Казалось бы, ничего сложного, но возникла следующая проблема. Бенчмарк встроенный в используемый вычислительный софт выдает на новых дистрибутивах хуже результат(местами до 10%) чем на старом.
Собственно вопросы:
1) Это так плохи новые ядра или что-то отключили по-умолчанию и надо принудительно включать?
2) Может кто-то проводил тестирование и тюнинг для высокопроизводительных вычислений и может поделиться опытом?
Полуофф: если использовать "компилируемый" дистрибутив типа arch/gentoo, или самому компилить пакеты из srpm с максимальной оптимизацией (-O2 или, для храбрых, -O3) под свою архитектуру, то будет весьма ощутимый прирост.
А что бенчмарки говорят? Где деградация производительности происходит? В дисках, сети, процессах, памяти? Вообще-то любой линукс настраивается кучей параметров, например через sysctl, попробуйте их сравнить. Еще посмотрите лимиты - /etc/security/limits.conf
Ну и как минимум можно шедулерами поиграться, как для процессов, так и для io.
Антон Антон: Прирост будет только для тех приложений которые были скомпилированны. Очевидно что коммерческий имеет закрытый код и не подлежит компиляции. Следовательно и прироста не будет.
Алексей Черемисин: Пока не разобрался с бенчами которые бы показывали результаты соотносимые, а не коней в вакууме.
Сравнивал только бенчмарком встроенным в используемый CAE софт.
Сеть и системы хранения не должны оказывать влияния так как бенч проводился в рамках одного узла без записи на диск. Тоесть потери где то на уровне работы с процессами и ресурсами cpu/mem.
В changelog'е ядра нашел информацию о том что в 3.8-3.9 были изменения в NUMA. В ближайшее время попробую отключить автобаланс NUMA или найду дистр с 3.3-3.7 ядром.
Алексей Черемисин: Железо одно так как одна и та же машина. Системные бенчмарки плохо коррелируют с бенчмарком ПО. Антон Антон: Значительного прироста не будет. Проблема явно в алгоритмах, или настройках шедуллера, а не в оптимизации при компиляции.
И да, ни один компилируемый дистрибутив не применим в enterprise.
severgun: Что считают бенчмарки в вашем ПО? Понятно, что системные считают что-то свое, я про "бенчмарк встроенным в используемый CAE софт", что он считает?
Стандарт де-факто - Centos/Scietific. На вычислительных узлах отключайте все лишние сервисы, выгружайте все ненужные модули по максимуму. В принципе, этого уже будет достаточно, потом можно будет только проценты производительности выжать тюнингом памяти и прочего. Увы, облегчённых ядер для HPC так просто не найти.
Ещё важно подтюнить сеть, если используете Ethernet/IP - поиграйте с настройками slowstart и прочего - это надо делать на конкретной задачке, у разных могут быть разные оптимальные настройки... Syncoockie отключите, все узлы явно вбейте а arp-таблицы.