12 марта 2014

НИИЯФ МГУ: cуперкомпьютер или персональный компьютер?

Слева направо: старший научный сотрудник, к. ф.-м. н. Владимир Померанцев, старший научный сотрудник, к. ф.-м. н. Ольга Рубцова, ведущий научный сотрудник, д. ф.-м. н., профессор Владимир Кукулин

На чём эффективнее решать сложные многомерные уравнения в квантовой теории многих тел, например, хорошо известные специалистам уравнения Фаддеева-Якубовского: на суперкомпьютере или на персональном компьютере?

Для тех, кто не знает, что такое уравнения Фаддеева-Якубовского, поясним: это сложные по структуре линейные интегральные уравнения, описывающие рассеяние нескольких частиц. Они используются для описания динамики многих процессов в квантовой механике. Даже с помощью мощных ЭВМ, которые уже были доступны в 80-е годы прошлого века, многим физикам казалось, что ещё не скоро будет возможно решить эти сложные многомерные уравнения, особенно в случае реалистических взаимодействий между частицами. Но вскоре появились суперкомпьютеры и на них начали производить численное решение этих сложных уравнений.

Совсем недавно научной группе НИИЯФ МГУ под руководством Владимира Кукулина впервые удалось выполнить решение системы уравнений Фаддеева-Якубовского на персональном компьютере. Правда, сначала физики сделали из него своего рода суперкомпьютер: в «персоналку» вставили видеокарту (видеочип), то есть графический процессор, способный многократно ускорить расчёты многих типов.

О таком преобразовании «персоналки» уже давно известно научному сообществу. С помощью вычислений на графических процессорах изучают многие волновые процессы. Например, из важных прикладных исследований – проводят расшифровку 3D УЗИ органов человека, обработку данных сейсморазведки полезных ископаемых. Но, повторим, в области квантовой механики, описывающей рассеяние нескольких частиц, научная группа НИИЯФ МГУ - единственная в мире, которая сделала полное решение уравнения Фаддеева-Якубовского на графическом процессоре.

Графические процессоры, или видеокарты, изначально придумали для компьютерных трёхмерных игр, требующих за короткое время произвести большой объём вычислений, чтобы получать быструю смену сцен в реальном времени. Очень высокая вычислительная мощность графических процессоров объясняется особенностями их архитектуры. Если персональные компьютеры с 2-6 ядрами обрабатывают информацию последовательно, то графические процессоры с сотнями и тысячами ядер - параллельно, точно так же как и суперкомпьютеры. Но, в отличие от суперкомпьютера, графический процессор использует свою графическую память, которая быстрее системной памяти суперкомпьютера.

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

Затем физики НИИЯФ МГУ распараллелили задачу на 65 тысяч потоков, которыми управляют 1344 так называемых скалярных ядра видеокарты. Каждое из этих ядер производит однородные расчёты, но с разными начальными данными, чтобы достигалась наибольшая скорость.

После этого учёные написали для вычислений на графическом процессоре программу на языке CUDA, который был специально разработан под научные задачи.

«Основная проблема заключалась в том, что надо было понять, какая загрузка должна быть у каждого потока, как они между собой должны взаимодействовать, как вообще задачу разделить так, чтобы она считалась на основе этих 65 тысяч потоков и так далее. Это некое искусство, об этом нигде не написано, и это приходилось всё самим устанавливать», - пояснил Владимир Кукулин.

По его словам, большой суперкомпьютер, который использует стандартные алгоритмы решения подобных уравнений, справился бы с уравнениями Фаддеева-Якубовского за сутки, а персональный с видеокартой, но на основе новой матричной формы уравнений, решил их приблизительно за 10 минут. А если учесть, что при расчётах на суперкомпьютере нужно выждать очередь из многих пользователей, тогда как персональный всегда под рукой, то временной разрыв будет намного больше. И ещё очень важно отметить, что за проведение такого исследования, например, на крупном европейском суперкомпьютере Blue Gene, физикам нужно выложить весьма крупную сумму денег – несколько тысяч евро, тогда как цена хорошей видеокарты находится в пределах 500-1000 долларов. Приобретать суперкомпьютер и вовсе очень дорого, к примеру, цена современного суперкомпьютера Blue Gene, на котором Бохумская группа в Германии сделала большинство вычислений на основе уравнения Фаддеева, составляет более 10 миллионов евро.

Освоив методику вычисления на графическом процессоре, научная группа Владимира Кукулина намерена поделиться своим опытом с российскими коллегами. Руководитель группы сказал:

«Мы хотим организовать на этой базе курсы или что-то подобное, где люди из периферийных университетов, где нет суперкомпьютеров, то есть из Ярославля, Волгограда, Саратова и так далее, могли бы постигать методы и приёмы вот этих самых вычислений на обычных «персоналках» с помощью ультрабыстрых графических процессоров. И тогда они могли бы на своих настольных компьютерах делать очень сложные современные вычисления и не только в квантовой физике, а фактически для множества разнообразных процессов, в частности, для расшифровки данных зондирования земной коры, сейсморазведки, поиска месторождений нефти, газа, руд и так далее».