Применение Intel Optane SSD в науке - Академия Selectel

Применение Intel Optane SSD в науке

Камилла Гарифуллина
Камилла Гарифуллина Руководитель отдела знаний
10 октября 2017

В начале июля мы начали бесплатное тестирование SSD-дисков Intel Optane и опубликовали подробную статью об их возможностях и преимуществах в нашем блоге. Среди принявших участие в тестировании встречались очень интересные проекты, в том числе и связанные с наукой. Ниже мы рассмотрим примеры применения дисков в области научных расчётов. Распределенный поиск гравитационных волн Данный кейс написан […]

Изображение записи

В начале июля мы начали бесплатное тестирование SSD-дисков Intel Optane и опубликовали подробную статью об их возможностях и преимуществах в нашем блоге.

Среди принявших участие в тестировании встречались очень интересные проекты, в том числе и связанные с наукой.

Ниже мы рассмотрим примеры применения дисков в области научных расчётов.

Распределенный поиск гравитационных волн

Данный кейс написан в соавторстве с Александром Виноградовым, НПФ Социум, Нижний Новгород.

Конфигурация сервера с Intel Optane SSD оказалась идеальной для решения задачи Einstein@home — это распределенный поиск гравитационных волн. Данный проект требователен к памяти, и если ее недостаточно или она медленная, то расчёт юнитов замедляется: вместо 12 часов занимает несколько суток. На предоставленном сервере тестирование прошло без запинок: максимум был 18 часов.

Кстати, нобелевскую премию по физике в этом году получили Барри Бэриш, Райнер Вайсс и Кип Торн «за решающий вклад в детектор LIGO и наблюдение гравитационных волн».

Подробнее о проекте Einstein@home

Einstein@Home — это один из проектов на платформе BOINC, предназначенной для распределенных вычислений, который может запускаться практически на любом из существующих процессоров, а энтузиасты запускают её и вовсе на чём придется.

Сам по себе проект Einstein@Home занимается обработкой данных с детектора гравитационных волн LIGO и в отличие SETI@Home, c которого в 1999 году начались вообще все распределённые вычисления в мире, требует очень много памяти — по полтора гигабайта на поток. То есть на телефоне или на бытовом ноутбуке гравитационные волны не поищешь.

Платформа BOINC позволяет автоматизировать расчеты:

  • задавать максимальную нагрузку процессора для заданий BOINC и предел загруженности процессора другими задачами;
  • настраивать, сколько потоков процессора использовать;
  • задавать время запуска заданий;
  • выбирать, какой объем трафика использовать;
  • сохраняется даже поддержка соединения по телефонной линии через обычный модем.

Для исследования процессора с очень большим числом ядер это идеальный инструмент.

За неделю для Einstein@home удалось полностью просчитать более 300 юнитов. Для сравнения, на другой машине за 24 дня еле-еле удалось просчитать четыре, остальные пропали.

В 1999 году я увидел статью в «Компьютерре» про SETI@Home. Заинтересовался, попробовал запустить у себя. Ничего не вышло: процессор Pentium MMX 200 не потянул. Получилось присоединиться весной 2001 года, после обзаведения одним из первых Celeron-ов.

Фантастикой же я интересовался чуть ли не с рождения, космосом и поисками пришельцев — с 1983 (кажется) года, когда по первому каналу показали фильм «Ангар-18». И про SETI узнал примерно тогда же, из передачи «Очевидное-невероятное» с Капицей. Там была и краткая история проекта CETI, с которого всё началось, и объяснение всех переменных уравнения Дрейка. Потом нашёл и книгу Шкловского, и материалы конференции 1970 года в Бюракане, где прозвучала фраза «сто миллиардов долларов на поиски разума — не такая уж и большая сумма».

Но так считали в 1970. А в 1999 не было ни Илона Маска, ни МКС. Только «Мир» наворачивал круги вокруг планеты и «Вояджеры» летели к Плутону. А финансирование даже самых серьезных космических программ во всём мире стремилось к нулю. А тут совершенно несерьезная вещь — несколько студентов написали скринсейвер, который не просто так трубы или звёздочки рисует, а использует в качестве основы для картинки данные с радиотелескопа в Аресибо! С этого серьезного скринсейвера и начались все нынешние облачные технологии, блокчейн и прочая распределённая математика. Даже использовать видеокарты для математических расчётов тоже впервые начали на платформе BOINC.

Почти сразу оказалось, что по общей (объединённой) мощности слабенькие компы энтузиастов превзошли самые лучшие из имеющихся на тот момент суперкомпьютеров. Ученые заинтересовались, проектов распределённых вычислений стало много, для управления ими была создана платформа BOINC. С тех пор миллионы машин поучаствовали и в поиске бозона Хиггса (LHC@Home), и в ловле гравитационных волн (Einstein@Home), и даже помогали создавать трехмерную карту галактики (MilkyWay@Home).

Но главным для меня остаётся всё-таки проект SETI@Home. Самый несерьезный и самый безрезультатный, но самый первый проект, с которого всё началось. Сейчас у проекта трудные времена — народ с мощными машинами уходит в майнинг криптовалют, телескоп в Аресибо несколько лет назад чуть не закрыли (у американцев расходы на науку в бюджете — тоже не особо популярная статья), а 21 сентября радиотелескоп и вовсе был выведен из строя ураганом Мария. Но проект по-прежнему остается на лидирующих позициях — сейчас, например, просчитываются данные об очень интересной системе KIC8462852, а платформа BOINC остаётся самым мощным суперкомпьютером.

Тесты Intel Optane SSD на запись и чтение

Для Intel Optane Александр делал с помощью утилиты fio тесты с глубиной 16 и 32 (для HDD проводились только некоторые тесты, потому что они длятся на порядок дольше, чем для SSD).

Тест воспроизводит ситуацию полной загрузки диска с заданной длиной очереди, и измеряет все параметры.

Всего тестов было проведено три, результаты занесены в таблицы:

время выполнения теста, msec
 ReadWriteRead+Write
 iodepth=16iodepth=32iodepth=16iodepth=32iodepth=16iodepth=32
HDD1 850 5574 577 666
SSD299 688481 744259 161512 864R:378001, W:474573R:431930, W:498782
среднее время ожидания самого диска (clat), msec
 ReadWriteRead+Write
 iodepth=16iodepth=32iodepth=16iodepth=32iodepth=16iodepth=32
HDD496.75614.54
SSD49.50163.4742.99174.08R:62.38, W:78.37R:146.62, W:169.36

Там, где HDD не справляется с задачей, уже выдавая задержки почти в половину секунды для каждого запроса, задержка SSD остаётся на уровне 0.2 секунды.

Далее я решил просто взять и скопировать 150-гигабайтный файл с каждого устройства на каждое другое, включая его самого. И вот результат (в минутах и секундах). Тут получился, скорее, тест всего сервера, и больше всего меня удивило не время копирования с SSD, а быстрота работы обычных дисков в спокойной обстановке.

Подробный отчет Александра о проведенном тестировании.

Оптимизация алгоритмов в области вычислительной электродинамики

Данный кейс написан в соавторстве с Вячеславом Кизименко, н.с НКЦ 1.6 НИЧ БГУИР, Минск.

За прошедшие с момента презентации месяцы появилось достаточно большое число обзоров и профессиональных тестов, посвященных оценке производительности Intel Optane SSD. Но всегда приятнее самому «подержать в руках» новинку, применить ее для решения своей конкретной задачи. И эту возможность любезно предоставила компания Selectel.

Достаточно большое количество задач, связанных с моделированием различных физических процессов, сводится к решению систем линейных алгебраических уравнений (например,
анализ течения вязкой несжимаемой жидкости в аэродинамике). В процессе оптимизации используемых алгоритмов мы добиваемся существенного сокращения времени моделирования — за счет распараллеливания этих алгоритмов, использования многопроцессорных систем, или специальных видеокарт поддерживающих технологии CUDA или OpenCL.

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

Зачастую такая матрица может использоваться многократно для дальнейших вычислений или оптимизации моделируемого устройства. Говоря простым языком – после того, как все алгоритмы максимально оптимизированы, очень обидно терять время просто на сохранении данных.

В основе используемого численного алгоритма лежит Метод Моментов, предполагающий, что исходный объект (например, микрополосковая антенна) разбивается на множество элементарных сегментов.

Измерялось суммарное время, необходимое для записи и чтения блоков матриц различных размеров.

В реальных задачах мы сохраняем на диск матрицы, содержащие коэффициенты уравнений. Фактически это массивы переменных типа double. Чтобы ускорить процесс тестирования я генерировал такие массивы, заполнял их случайными числами типа double. После этого измерялось суммарное время, которое тратилось на запись и чтение такого массива данных.

Такие измерения зависимости выигрыша во времени (при сохранении данных на Intel Optane по сравнению с Intel SSD SC2BB48) от размера сохраняемого блока матриц были проведены для обычного SSD, и для Intel Optane SSD.

Соответственно, на рисунке ниже приведен график, показывающий во сколько раз Intel Optane SSD выполнял данную задачу быстрее, чем SSD (то есть результат деления времени в миллисекундах, затраченного SSD, на время, затраченное Intel Optane).

Тестирование проводилось на сервере с процессором Intel E5-2630v4, Intel Optane DC P4800X (375 GB), Intel SSD SC2BB48 (480GB), 64Gb RAM.

Из графика на рисунке видно, что при размере сохраняемого блока матриц до 110 МБ Intel Optane SSD оказывается практически в 2 раза быстрее обычного SSD, достигая в некоторых точках (2 МБ) ускорения в 3,25 раз.

Полученные результаты говорят о том, что новый Intel Optane SSD заинтересует не только потребителей услуг хостинга, но и специалистов, связанных с обработкой и хранением больших объемов данных, моделированием, прогнозированием различных процессов.

Вместо заключения

Если у вас есть другие интересные идеи насчёт вариантов использования — добро пожаловать на тестирование — акция все еще продолжается, и любой из вас может принять участие (бесплатное тестирование SSD-дисков Intel Optane).

Также в программе SelectelLab можно протестировать и другие новинки.