Как сделать суперкомпьютер из видеокарты

18 Февраля 2020
2686
 Версия для печати

Использование возможностей процессоров видеокарты и параллельное программирование позволят увеличить скорость вычислений в несколько раз. Об этом сотрудникам Высшей школы теоретической механики и НОЦ «Газпромнефть-Политех» рассказал на двухдневном интенсиве по программированию с помощью технологии Nvidia CUDA доктор физико-математических наук, профессор кафедры квантовой статистики и теории поля МГУ им. М.В. Ломоносова Евгений ПЕРЕПЁЛКИН.

Специалист познакомил инженеров с технологией CUDA и основами вычислений при помощи видеокарты. CUDA – это программно-аппаратная архитектура параллельных вычислений, которая помогает увеличить вычислительную производительность посредством использования графических процессов фирмы Nvidia.

Для наукоемких вычислений оптимально использовать параллельное программирование, когда все ядра процессора работают одновременно, но независимо друг от друга. Разработчики пользуются этой возможностью для увеличения скорости расчетов. Множество компьютеров могут работать над единой задачей, однако далеко не каждую задачу можно «разложить» на суперкомпьютере, поскольку скорость обмена данными между «узлами» компьютеров значительно ниже, чем скорость работы оперативной памяти компьютера. Альтернативным решением является программирование на видеокартах. Дело в том, что производители видеокарт идут по другому пути увеличения мощностей, нежели производители процессоров – они наращивают не скорость процессоров, а их количество. Такая технология подходит для графического вычисления, операций с векторами и матрицами, решения систем линейных и нелинейных уравнений.

При работе с системой CUDA разработчики могут столкнуться со сложностями, связанными с изменением логики программирования. Как перестроить свое мышление для эффективного программирования на видеокартах объяснял на интенсиве профессор Евгений ПЕРЕПЁЛКИН.

«Евгений продемонстрировал положительный эффект от применения технологии программирования на CUDA на примерах своей работы: он успешно рассчитывал магнитное поле в CERN, производил дизайн установок ускорителей частиц, а также предсказывал поведение жидкости, перемещающейся в Азовском море. С учетом геометрии дна такие крупные задачи требуют больших вычислений: на центральном процессоре они могут продолжаться годами, а на видеоадаптере – всего неделю, – рассказывает инженер НОЦ «Газпромнефть-Политех» Никита МУЩАК. – Благодаря CUDA можно решать задачи гидродинамики, которые нам в большей степени интересны в части реализации проектов в области нефтегазодобычи».

Разрабатывая программное обеспечение, в том числе в рамках создания симулятора гидроразрыва пласта, специалисты НОЦ «Газпромнефть-Политех» работают с огромным массивом данных и зачастую проводят расчеты в суперкомпьютерном центре «Политехнический». Однако, для повышения эффективности вычислений возможно использование тандема распараллеливания на центральном процессоре и видеоадаптере. При работе с технологией CUDA инженерам НОЦ удастся увеличить скорость расчетов от 10 до 100 раз.