ПК обогнал суперкомпьютеры в решении задачи трехчастичного рассеяния

Рис. 1. Суперкомпьютер JUGENE и видеокарта GeForce GTX 970

Рис. 1. Сверху: суперкомпьютер JUGENE (Jülich Blue Gene) занимает целый зал в Юлихском исследовательском центре (Forschungszentrum Jülich) в Германии, фото с сайта thinkedition.net. Этот суперкомпьютер был создан в 2007 году компанией IBM на основе архитектуры Blue Gene. В 2013 году его заменили на усовершенствованный вариант JUQUEEN, использовав новую версию этой архитектуры. Оба суперкомпьютера на момент начала работы были мощнейшими в Европе. Снизу: видеокарта GeForce GTX 970 (длиной около 25 см), использованная для решения задачи трехчастичного рассеяния в обсуждаемой работе, фото с сайта geforce.com

Сложные задачи, для решения которых требуется большая вычислительная мощность, регулярно возникают в разных областях наук. Естественный ответ на это — рост числа и производительности суперкомпьютеров. Однако вычислительное время на них по-прежнему остается дорогим, а конкуренция научных коллективов за него — высокой. Российские физики из НИИЯФ МГУ имени М. В. Ломоносова нашли другой подход к одной из важных ресурсоемких задач квантовой теории рассеяния. Они смогли свести решение уравнений Фаддеева к виду, в котором максимально используются сильные стороны видеокарты обычного персонального компьютера: многопоточное параллельное выполнение одинаковых процедур. Этот результат открывает широкие возможности для решения многих других вычислительных задач.

Суперкомпьютеры и сложные задачи

В настоящее время наблюдается быстрый рост потребностей в высокопроизводительных вычислениях во всех областях естественных наук. Это вызвано как потребностями математического (компьютерного) моделирования сложных многостадийных процессов, характеризующихся наличием большого числа степеней свободы (такие процессы встречаются, например, в гидро- и газодинамике, теории плазмы, астрофизике, ядерной физике, теории поля на решетках и т. д.), так и переходом к точному численному решению многомерных дифференциальных и интегральных уравнений в реалистичной постановке. Как вполне естественный ответ на эти новые запросы сейчас наблюдается стремительный рост числа и установленной производительности суперкомпьютеров по всему миру, причем наиболее быстрый рост пиковой производительности супермашин наблюдается в Китае и США (см. рейтинг TOP500). Например, самый «мощный» суперкомпьютер по состоянию на июль 2016 года — китайский Sunway TaihuLight — имеет производительность порядка 100 петафлопс, что в три раза больше, чем у предыдущего лидера, и в сотни раз больше способностей суперкомпьютеров начала XXI века.

В квантовой теории рассеяния есть тоже класс задач, предъявляющих очень большие требования к вычислительным ресурсам. Речь идет о точном решении (в численном смысле) задач рассеяния с несколькими частицами (так называемые few-body systems) в непрерывном спектре. Напомним читателю, что связанные состояния систем, когда движение частиц ограничено, обладают фиксированными (квантованными) энергиями и тем самым отвечают области дискретного спектра гамильтониана системы. В настоящее время вполне возможно аккуратно рассчитать дискретные спектры систем, состоящих из многих сотен и даже тысяч частиц (таких как электроны и ядра атомов), что, в частности, включает в себя точный расчет структуры атомов и больших молекул (этим занимается квантовая химия). Однако рассеяние частиц соответствует их неограниченному движению, поэтому состояния рассеяния существуют для непрерывного (континуального) набора энергий и таким образом отвечают области непрерывного спектра гамильтониана системы. Также при одной энергии возможны различные варианты (каналы) рассеяния для одной и той же системы. Таким образом, задачи в непрерывном спектре являются качественно другими и значительно более сложными, чем задачи дискретного спектра. Неудивительно поэтому, что решение квантовой задачи рассеяния уже трех частиц вызывает большие трудности, причем как в чисто математическом, так и в вычислительном плане.

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

Вспомним также, что математически строгое решение даже ньютоновской задачи трех тел в классической механике, в частности, изучение поведения системы Земля — Луна — Солнце в полном виде не найдено до сих пор, несмотря на фундаментальные исследования многих великих математиков в этой области, включая Лагранжа, Пуанкаре и других.

С математической точки зрения квантовая задача рассеяния трех тел кажется ничуть не проще, а вероятно, даже существенно сложнее классической. Например, до сих пор нет математически строгого решения задачи трех кулоновских частиц (то есть взаимодействующих друг с другом по закону Кулона) при энергиях выше трехчастичного порога и т. д. Тем не менее, огромный прогресс был достигнут в работах знаменитого советского и российского математика Людвига Фаддеева, который построил строгую математическую теорию для квантовой задачи трех тел (Л. Д. Фаддеев, 1966. «Математические вопросы квантовой теории рассеяния для системы трех частиц»), нашел математически правильное уравнение для задачи трехчастичного рассеяния и сформулировал условие разрешимости этих уравнений, которые теперь повсюду в мире известны как уравнения Фаддеева.

Эта во всех смыслах пионерская работа Фаддеева со времени своего появления в начале 60-х годов прошлого века, вызвала огромный резонанс во многих разделах теоретической и ядерной физики и стимулировала большой поток ежегодных конференций во всем мире по так называемым малочастичным системам. (В настоящее время в мире регулярно проводится по крайней мере три серии «малочастичных» конференций: мировая, европейская и Азиатско-Тихоокеанская, каждая с частотой раз в три года. В этом году европейская конференция проходит в середине августа в Дании. Отметим, что буквально вчера на этой конференции было принято решение об учреждении медали имени Людвига Фаддеева, которой будут отмечаться ученые, внесшие выдающийся вклад в квантовую теорию нескольких частиц.) Причем значительная часть исследований, представленных на этих конференциях, особенно в начальные годы после выхода пионерских работ Фаддеева, была посвящена методам решения его уравнений и различным аппроксимациям в задаче рассеяния трех тел. Это было обусловлено тем, что в общем виде уравнения Фаддеева, например, в интегральной формулировке представляют собой большую систему многомерных сингулярных интегральных уравнений, причем интегралы в ядре этих уравнений берутся с переменными пределами, зависящими от других переменных. Это, в частности, приводит к тому, что прямые итерации таких уравнений (когда в правую часть последовательно подставляется решение, найденное на предыдущем шаге итерации) оказываются невозможными, так как неизвестные функции в левой и правой частях уравнения определены для разных аргументов. В итоге при итерациях приходится переинтерполировать текущее решение в каждой точке на огромной многомерной решетке. Это приводит к необходимости многомерных интерполяций текущего решения на каждом шаге итераций, общее число таких переинтерполяций достигает миллионов и даже десятков миллионов. Сюда нужно еще добавить проблемы с регуляризацией сложных сингулярностей в ядре уравнений Фаддеева и очень громоздкие схемы нахождения матриц перевязки большого числа угловых моментов квантовых частиц, что приводит к суммам по промежуточным проекциям угловых моментов частиц высокой кратности (вплоть до 30-кратных сумм) для нахождения каждого матричного элемента матрицы ядра (а таких матричных элементов в реальной задаче может быть много миллионов и даже миллиардов).

В итоге вычислительная сложность решения уравнений Фаддеева для реальных задач в ядерной и атомной физике оказалась такой, что вплоть до появления больших суперкомпьютеров, главным образом в США, в ередине 80-х годов прошлого века, найти точное решение такой задачи за приемлемое время было невозможно. Более того, в конце 80-х годов время решения полной трехчастичной фаддеевской задачи на большом американском суперкомпьютере составляло 2–3 недели (см., например, статью A. Picklesimer, R. A. Rice, and R. Brandenburg, 1991. Δ degrees of freedom in trinuclei: I. The Hannover one-Δ model и другие статьи этого коллектива авторов из серии «Δ degrees of freedom in trinuclei»). Было совершенно очевидно, что никакой обычный компьютер с таким объемом вычислений не справится. Однако очень быстрый прогресс в вычислительной технике, достигнутый в последние десять лет, превзошел самые смелые ожидания и самые дерзкие мечты. И теперь решение полной системы фаддеевских уравнений для трехчастичной системы можно получить на обычной настольном компьютере за 15–30 минут. Статья группы российских ученых с этим результатом опубликована в июльском номере Computer Physics Communications.

Волновые пакеты и дискретизация непрерывного спектра квантовой системы

В основе подхода, позволяющего решать задачи рассеяния почти так же просто, как задачи на связанные состояния систем, лежит идея дискретизации непрерывного спектра. При этом переход от точных волновых функций непрерывного спектра, которые не имеют конечной нормы, к множеству дискретных нормируемых функций может быть сделан многими способами. Но, по-видимому, одним из наиболее удобных и естественных методов является переход к так называемым стационарным волновым пакетам, введенным впервые в теории дифференциальных уравнений (под названием «собственные дифференциалы») учениками Гильберта Эрнстом Хеллингером и Германом Вейлем еще в начале прошлого века, и использованные далее Вигнером на заре развития квантовой механики.

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

Рис. 2.Поведение нескольких волновых пакетов

Рис. 2. Поведение нескольких волновых пакетов в зависимости от безразмерной координаты qr, где q — импульс частицы, для бинов разной ширины. (а) — график для достаточно широких интервалов разбиения, (b) — для средних, (с) — для интервалов с маленькой шириной. Как видно из рисунка, при малых ширинах волновые функции распространяются на очень большие расстояния

В импульсном пространстве волновой пакет имеет вид одиночного импульса (рис. 3, слева), а пакетированная волновая функция (например, волновая функция дейтрона — связанного состояния нейтрона и протона) имеет вид гистограммы (рис. 2, справа).

Рис. 3. Представление в импульсном пространстве пакетированной волновой функции

Рис. 3. Представление в импульсном пространстве волнового пакета (слева) и пакетированной волновой функции (справа). Видно, что волновая функция представляется в виде ступенчатого графика (гистограммы)

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

Например, вместо интегрального уравнения Липпмана-Швингера для t-матрицы, описывающей рассеяние частицы силовым полем V в квантовой механике получим простое матричное уравнение

\[t_{ij}(E_p) = V_{ij}+\sum\limits_{k}V_{ik}g_k(E_p)t_{kj}(E_p),\ q_i\in d_i,\ q_j\in d_j,\ E_p\in D_p,\]

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

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

Существенным преимуществом пакетной схемы является «пиксельная форма» матричных уравнений, когда элементы всех матриц вычисляются независимо друг от друга. Это позволяет относительно «несложно» распараллелить очень трудоемкий расчет огромного числа матричных элементов многомерного интегрального ядра, так что время расчета при такой массивно-параллельной реализации можно сильно (то есть в десятки и сотни раз) сократить. Для реализации этого удачным решением является использование графического процессора (GPU), или видеокарты, которой оснащен практически каждый компьютер для работы с компьютерной графикой. Разумеется, для таких массивно-параллельных вычислений подходит далеко не всякая графическая карта, а только специализированная под научные вычисления. Но они теперь уже широко представлены на рынке. Например, компания NVIDIA в последние годы расширила свою основную специализацию с разработки графических карт для игровых приставок на их адаптацию под чисто научные задачи. Вообще, можно сказать, что в связи с широким распространением графических вычислений во всех областях современной науки на наших глазах происходит компьютерная революция в научных вычислениях и широкий переход к массивно-параллельной реализации многих компьютерных программ.

«GPU — компьютерная революция»: что это такое?

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

В начале 2000-х годов для программистов, использующих 3D-графику, были разработаны специализированные программные средства, OpenGL и DirectX, позволяющие писать инструкции для GPU. Однако почти сразу им пришло в голову, что вместо цвета пикселя шейдер может вычислять любую величину, привязанную к координатам. Если на вход подавать числовые данные, содержащие не цвета, то ничего не мешает написать шейдер, выполняющий с ними произвольные вычисления. Результат можно считать в программу, а GPU безразлично, как именно он интерпретируется. В итоге оказалось, что можно использовать очень высокую скорость арифметических вычислений с помощью графической карты для многих целей, не имеющих ничего общего с графикой на компьютере. Для облегчения программирования даже была создана специальная архитектура CUDA. В результате была создана реальная возможность для сверхбыстрых вычислений с помощью массивно-параллельной реализации.

В настоящее время серийные графические карты, которые свободно продаются на рынке, включают в себя порядка 4 тысяч вычислительных ядер (а некоторые — даже больше!). Сравните это с 4–8 ядрами для обычного процессора. Они позволяют производить параллельные вычисления посредством многих десятков и сотен тысяч потоков — так называемых нитей (threads). И хотя скорость вычисления вдоль каждой такой нити несколько уступает скорости центрального процессора, параллельное использование огромного числа нитей позволяет добиться ускорения на порядки величин.

Однако не все так просто. В силу основных особенностей своей конструкции, GPU-вычисления выполняются в моде SIMD (single instruction on multiple data), что подразумевает, что вычисления вдоль всех нитей должны выполняться по одной и той же инструкции (команде), и, следовательно, тут не допускаются условные операторы и переходы. Есть и другие ограничения.

Поэтому сама возможность сверхбыстрых вычислений на GPU предполагает нетривиальное умение эффективно распараллелить полную задачу с учетом ограничений, налагаемых SIMD-модой. Самый простой и очевидный пример для большого ускорения вычислений посредством GPU — это вычисление элементов матрицы высокой размерности. Обычно для элементов таких матриц имеются аналитические формулы (разной степени сложности), и тогда полная матрица делится на много тысяч или миллионов блоков, причем матричные элементы внутри каждого блока считаются посредством параллельных нитей (по одним и тем же формулам).

Однако часто полная матрица оказывается такой высокой размерности, что она не помещается ни в кэш-память GPU, ни в быструю память (RAM) компьютера, и ее можно записать только на жесткий диск. Но при этом многократное считывание кусков матрицы с диска занимает так много времени, что весь выигрыш от параллельной реализации пропадает. Тем не менее, имеется много способов обойти эти ограничения и добиться высокой степени ускорения GPU-вычислений.

На сегодняшний день ультрабыстрые GPU-вычисления внедрены в большое число научных проектов и приложений, в частности, в квантовой физике многих тел, в квантовой теории поля, химии больших молекул, в геофизике, медицине, финансовой математике и т.д. При этом во многих приложениях использование GPU-вычислений дает совершенно уникальные новые возможности (см., например, книги «Технология CUDA в примерах. Введение в программирование графических процессоров» и «CUDA Fortran для ученых и инженеров»).

Использование GPU-вычислений в квантовой теории многочастичного рассеяния

При решении квантовых задач многочастичного рассеяния на GPU приходится иметь дело с уравнениями для амплитуды трехчастичного рассеяния Фаддеева в форме, предложенной немецкими теоретиками Альтом, Гроссбергером и Сандхасом. В пакетном представлении матричный аналог этого уравнения для системы трех нуклонов (например, для описания рассеяния нейтрона на дейтроне) имеет вид:

\[U=PV+PVG_1U,\]

где U — искомая матрица оператора перехода, V — матрица оператора взаимодействия двух частиц (которая имеет простую блочную структуру) и G1 — матрица резольвенты гамильтониана канала (имеющая диагональный вид). Самым сложным с технической точки зрения элементом этого уравнения является матрица оператора перестановки P, которая имеет полную размерность системы

Чтобы понизить размерность этого уравнения, обычно выполняется разложение всех операторов по сферическим гармоникам, затем получившиеся угловые моменты по каждой (из двух) координат Якоби связываются с переменными спина и изоспина. В итоге для полного момента всей системы J получается огромная система зацепляющихся многомерных интегральных уравнений (в среднем 40–60 зацепляющихся уравнений для каждого значения J). Для решения всего одного из этих уравнений нужно сделать дискретизацию, отвечающую проектированию на базис стационарных волновых пакетов с использованием 50–100 бинов по каждой координате Якоби. Тогда в среднем получается система алгебраических уравнений порядка N = 104×60 = 600 000, с полной размерностью матрицы N×N. Такая матрица состоит из 300–500 миллиардов матричных элементов, так что она не влезает в быстрой памяти компьютера, ее можно разместить только на большом жестком диске. К счастью, основная матрица оператора перестановки представляется в виде \( P=OP_0O^T\), где O — блочная матрица и P0 — очень разреженная матрица перекрывания для плосковолновых функций в различных наборах трехчастичных импульсов, которая заполнена едва ли на 1% (или даже меньше). Это позволяет разместить матрицу P0 в оперативной памяти, однако появляется необходимость предварительной проверки всех ее элементов и отбора среди них отличных от нуля. Такая проверка миллиардов матричных элементов тоже требует много компьютерного времени. И, наконец, следует упомянуть, что вся эта огромная работа должна выполняться для каждого значения полного момента J, которое может принимать полуцелые значения 1/2, 3/2, ..., 17/2!

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

Общая схема решения задачи в пакетном представлении состоит из следующих шагов:
    1) заполнение сеток дискретизации для каждого набора импульсных координат, а также вычисление блочных матриц V, O и диагональной матрицы G1;
    2) предварительный отбор ненулевых элементов матрицы P0;
    3) вычисление ненулевых элементов матрицы P0;
    4) решение матричного уравнения методом итераций.

Поскольку самыми трудоемкими в этой схеме являются шаги 2) и 3), мы провели распараллеливание именно для них. При этом скорость вычислений увеличивается на порядки величин и достигает фантастических значений для распараллеленных частей полной программы в случае относительно простого вида двухчастичных взаимодействий. В частности, мы нашли, что полная матрица перекрывания P0 содержит примерно (для фиксированного J) 260 миллионов ненулевых элементов, при заполнении каждого из которых требуется численно посчитать двойной интеграл от полиномов Лежандра высокого порядка в комбинации с серией других арифметических операций. Мы с большим удивлением обнаружили, что при массивно-параллельном вычислении этих 260 миллионов сложных интегралов на обычном ПК с графическим процессором GeForce GTX 670 для этого требуется всего 3 секунды, а с учетом их предварительного отбора — всего 8 секунд.

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

В итоге полное решение огромной системы зацепляющихся интегральных уравнений для всех нужных J (с учетом всех шагов, в том числе и выполняемых последовательно) для полностью реалистических сложных двухчастичных взаимодействий можно выполнить за время порядка 15–30 минут. По контрасту, та же Фаддеевская задача на большом суперкомпьютере Blue Gene может занимать более одного дня и стоит очень дорого.

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

Источник: V. N. Pomerantsev, V. I. Kukulin, O. A. Rubtsova, S. K. Sakhiev. Fast GPU-based calculations in few-body quantum scattering // Computer Physics Communications. 2016. V. 204. P. 121–131.

Владимир Кукулин


36
Показать комментарии (36)
Свернуть комментарии (36)

  • niki  | 12.08.2016 | 21:43 Ответить
    "Российские физики из НИИЯФ МГУ имени М. В. Ломоносова нашли другой подход..."

    Вообще-то, на видеокартах считают издревле, а с 2007, с момента появления CUDA, мы всё именно на них и считаем.

    Если пишем "Революция", то надобно указывать - "Революция Десятилетней Выдержки".
    Ответить
    • Displacer > niki | 13.08.2016 | 12:46 Ответить
      Пора бы уже переходить на открытые стандарты и использовать OpenCL. А то вся статья выглядит как реклама Nvidia.
      Ответить
      • PavelS > Displacer | 13.08.2016 | 12:53 Ответить
        У NVidia программный интерфейс проще. Что делается в OpenCL долго, то на NVidia заметно проще. Ну и ещё чуточку быстрее, т.к. общий стандарт OpenCL расходует часть мощностей на обеспечение совместимости всех со всеми. Сам в подобных проектах не участвовал, но слышал что NVidia стал стандартом де-факто.
        Ответить
        • niki > PavelS | 13.08.2016 | 13:12 Ответить
          Ну да, CUDA удобнее и быстрее. Обычная история, приходят стандартизаторы и вместо того чтобы объявить стандартом отличную технологию начинают умничать. То есть превращать великолепную технологию в серую, чтобы было "как у всех". Переходить на OpenCL это не уважать труд отличных разработчиков и свой.
          Ответить
          • Displacer > niki | 13.08.2016 | 13:36 Ответить
            Расскажите, каким образом "объявить" стандартом то, что компания, его придумавшая, делать открытым стандартом не собирается? А открытые стандарты нужны, чтобы была конкуренция между производителями, чтобы устранить vendor-lock-in, чтобы на технологию можно было как-то повлиять. Если останется одна Nvidia - сами взвоете от ценников и застоя в итоге. У нас уже есть монополист - Microsoft. Каких усилий стоило, чтобы появились хоть какие-то альтернативы. 20 лет индустрия стояла и не развивалась. Спасает только то, что появились новые ниши в виде смартфонов, планшетов и т.д. А неповоротливый монстр занять эти ниши не успел. И даже теперь миллиардные вложения не помогают, что отлично демонстрирует отношение к нему пользователей и разработчиков - всех от Microsoft-a тошнит. Так что насчет "неуважения" к чужому и своему труду не надо сказки рассказывать.
            Ответить
            • Displacer > Displacer | 13.08.2016 | 13:48 Ответить
              Я бы даже добавил, раз уж пошел разговор в таком ключе, что написание софта только под CUDA - неуважение к пользователям видеокарт альтернативных прозиводителей.
              Ответить
              • niki > Displacer | 13.08.2016 | 14:13 Ответить
                Я не перейду с хорошего оригинала на плохую копию. И никому не посоветую. Вот пусть эти альтернативные производители вначале сделают по крайней мере Не Хуже.
                Ответить
              • PavelS > Displacer | 13.08.2016 | 20:30 Ответить
                Пардон, а вы хотя бы собрали хоть одну программу для видюхи не под CUDA? Я-да. По этой причине дико завидую тем у кого CUDA работает и ничего больше не надо.
                Ответить
                • Displacer > PavelS | 13.08.2016 | 21:24 Ответить
                  Я и на GLSL собирал программы, на чистых шейдерах. В конечном итоге привязка к производителю и несовместимость со стандартами в долгосрочном периоде вас ни к чему хорошему не приведет. Рано или поздно будете либо платформу менять, либо видеокарту, либо процессор, либо и то и другое вместе. Если так нравится зависеть от благосклонности Nvidia (и самого её существования как независимой конторы), то дело хозяйское. Не факт, что дискретные видеокарты вообще продолжат своё существование в долгосрочной перспективе.
                  Ответить
    • radion > niki | 13.08.2016 | 14:36 Ответить
      другой подход в решении квантовоеханических уравнений - они смогли их распараллелить. Что ж вы смысл искажаете. На картах считают давно, это всем известно, но не всё можно на них считать с таким огромным выигрышем.
      Ответить
    • smartvlad2442 > niki | 21.08.2016 | 13:14 Ответить
      Первые GPU-расчеты на CUDA в квантовой теории нескольких тел появились только в 2015 году,а не в 2006,когда вообще придумали использование графических процессоров для массовых научных расчетов!! ПОэтому прежде чем писать комментарии стоит подумать.
      Ответить
  • cuper  | 12.08.2016 | 22:40 Ответить
    На начальной картинке упомянута видеокарта GeForce GTX 970, а в тексте статьи GeForce GTX 670. Какая на самом деле использовалась видеокарта авторами статьи?
    Ответить
  • heyfaraday  | 13.08.2016 | 00:29 Ответить
    "... Земля — Луна — Солнце в полном виде не найдено до сих пор, несмотря на фундаментальные исследования многих великих математиков в этой области, включая Лагранжа, Пуанкаре и других."

    В 1887 году Пуанкаре обобщил теорему Брунса и доказал, что задача трёх тел принципиально не интегрируема. Так что да, решение не найдено, хотя его вообще не существует в явном виде.
    Ответить
  • evatutin  | 13.08.2016 | 08:04 Ответить
    В статье не приводятся цифры, а это не очень здорово... Обычно перед оптимизацией проводят т.н. hotspot-анализ, который показывает, какая из подпрограмм выполняется какое время и на какие из них в плане оптимизации/распараллеливания следует обратить внимание в первую очередь. В статье этих цифр нет. Как правило все подпрограммы улучшить нельзя, поэтому оптимизации/распараллеливанию подвергается некоторое их подмножество, после чего считается теоретический (по закону Амдала) и практический (по результатам вычислительных экспериментов) выигрыш. Если одна из подпрограмм стала в 1000 раз быстрее, это не значит, что вся задача тоже стала решаться в 1000 раз быстрее - прямое следствие закона Амдала.
    Теперь о других цифрах. Обычно практический выигрыш от использования GPU составляет десятки - сотни раз (если код удовлетворяет ряду ограничений: на отсутствие условий, на паттерны обращения в глобальную/разделяемую память и т.п.). Суперкомпьютеры сегодня включают в своем составе как минимум сотни тысяч - миллионы CPU-ядер, соответственно их вычислительная мощность как минимум на 3-4 порядка больше и одним GPU их не заменить (это еще если не учитывать, что в составе современных суперкомпьютеров также присутствуют как GPU, так и другие ускорители). Так что есть подозрение, что на суперкомпьютере и на GPU все же решается не одна и та же задача...
    Резюме: я бы убрал из статьи весь пафос про то, что 1 GPU обогнал суперкомпьютеры - это не так. А то, что группа исследователей получила выигрыш в конкретной задаче - здорово! Только надо бы его привести в статье...
    Ответить
    • niki > evatutin | 13.08.2016 | 09:49 Ответить
      "А то, что группа исследователей получила выигрыш в конкретной задаче - здорово!"

      Для этой группы - здорово. А в качестве новости.. Ну это как - сегодня я пообедал в хорошем ресторане.
      Несомненно здорово, однако на статью не тянет.
      Ответить
      • radion > niki | 13.08.2016 | 14:49 Ответить
        Это мини-революция в их узкой области вообще-то, просто вы не понимаете о чём речь.
        Ответить
        • evatutin > radion | 13.08.2016 | 17:58 Ответить
          Из научпоп статьи этого не видно (на всякий случай: я не спец в данном разделе физики, в параллельном программировании немного понимаю). Было бы здорово попробовать для полноты картины сделать как минимум MPI- и OpenMP-реализации того же кода, сравнить с оригинальной однопоточной и GPU-ориентированной версиями и сделать выводы, построить графики для разных моделей CPU/GPU. На всякий случай: в CPU тоже есть SIMD-расширения (SSEx/AVXx) - было бы неплохо посмотреть, использует ли их применяемый компилятор, и если вдруг нет, то попробовать сделать это самим, например, с использованием intrinsic'ов - скорее всего выигрыш будет и весьма неплохой. И хочу подчеркнуть: авторов статьи ни в коей мере не ругаю, скорее предлагаю направления для дальнейшего совершенствования материала :)
          Ответить
    • PavelS > evatutin | 13.08.2016 | 13:28 Ответить
      Всё верно, современные суперкомпьютеры уже не такие как 10 лет назад. В них в общем-то и так кроме обычных процессоров стоят чипы как в GPU, только много много чипов в каждом из которых много ядер.
      Ответить
    • smartvlad2442 > evatutin | 21.08.2016 | 13:24 Ответить
      Если есть вопросы,то читать нужно оригинальную статью,где приводятся
      подробно все данные и по ускорениям и по устройству программы,где и что распараллеливается,а что нет и какие это дает выигрыши и при каких размерах матриц!!!
      И конечно в оригинальной статье подробно написано,что решается одна и та же ФИЗИЧЕСКАЯ задача,но методы использованы совсем разные.И основную часть выигрыша при такой реализации на GPU составляет именно использование другого метода вычислений,а не переписывание кода на CUDA.
      Ответить
  • PavelS  | 13.08.2016 | 12:48 Ответить
    Зачем такой "желтый" заголовок статьи? Уместней назвать попроще: "найден эффективный способ численного решения таких-то уравнений". А то можно подумать, стараниями рос.физиков совершен прорыв в конструировании персональных компьютеров. Статья была бы лучше, если бы про GPU в ней говорилось бы поменьше - в этом на самом деле нет научной новизны. В статье есть новизна, но она похоронена под тоннами шелухи. Вы долго возились и наконец освоили GPU? Не интересно, это обыденно как выкапывание канавы, даже если канава длинной километр. Вот что вы смогли распараллелить метод - это да, это уже круто. Короче, тут на элементах мало статей по математике, было бы лучше - если б их было бы больше.

    Статья была бы лучше, если бы вы делали бы акцент на решаемой задаче, объяснили зачем её вообще надо решать и почему она нужна (практическая польза, завязки на другие научные задачи). Далее рассказали бы как мучились раньше, пока не было сделано открытие. Потом рассказать как догадались разбить задачу на "пакеты", после чего задача резко упростилась и её стало возможным решать даже на персоналках.
    Ответить
  • PavelS  | 13.08.2016 | 13:23 Ответить
    Владимир, критики тут много. Но это ваша первая статья тут. Не принимайте близко к сердцу. Не опускайте руки, надеюсь что дальнейшие ваши статьи будут заходить более гладко.
    Ответить
  • dust  | 13.08.2016 | 14:55 Ответить
    Тоже мне умники собрались. Если интересует научная новизна и строгость формулировок, то к вашим услугам оригинальная статья, ссылка на которую представлена в конце новости. А так новость с заголовком и достаточно глубоким background'ом, чтобы привлечь и удовлетворить неофита. Мне статья была интересна
    Ответить
    • chastnik > dust | 13.08.2016 | 19:57 Ответить
      "привлечь и удовлетворить неофита" - это значит профану навешали лапшу на уши.
      1) В моем домашнем компе видеокарта с 2 гигабайтами оперативки и несколькими млрд. транзисторов - приблизительно такими же параметрами обладал суперкомпьютер CRAY II во времена моей молодости;
      2) задача которую решили российские ученые является сугубо частной: все, что написано о "моделирования сложных многостадийных процессов, характеризующихся наличием большого числа степеней свободы (такие процессы встречаются, например, в гидро- и газодинамике, теории плазмы, астрофизике, ядерной физике, теории поля на решетках и т. д.), так и переходом к точному численному решению многомерных дифференциальных и интегральных уравнений в реалистичной постановке." - попытка посильней надуть щеки и сделать многозначительное лицо.

      Сравниваются старые работы на старых суперкомпьютерах с работой на современных видеокартах без приведения спецификаций оборудования (это похоже на мошенничество).
      Метод оптимизации расчетов, описанный в статье, может и дает хорошие результаты, НО ТОЛЬКО В ДАННОЙ задаче. Никаких оснований для обобщения нет (да и быть не может). А вот попытка создать видимость значительных, замечательных и пр. и пр. результатов есть.
      Специально для неофитов сообщаю, что в комментариях больше содержания, чем в статье.
      Ответить
      • SysAdam > chastnik | 14.08.2016 | 13:10 Ответить
        Читаем заголовок
        "ПК обогнал суперкомпьютеры в решении задачи трехчастичного рассеяния"
        Из заголовка ясно видно, что речь идет про частную задачу.

        С чем идет сравнение тоже написано

        "Рис. 1. Сверху: суперкомпьютер JUGENE (Jülich Blue Gene) занимает целый зал в Юлихском исследовательском центре (Forschungszentrum Jülich) в Германии, фото с сайта thinkedition.net. Этот суперкомпьютер был создан в 2007 году компанией IBM на основе архитектуры Blue Gene. В 2013 году его заменили на усовершенствованный вариант JUQUEEN, использовав новую версию этой архитектуры. Оба суперкомпьютера на момент начала работы были мощнейшими в Европе. Снизу: видеокарта GeForce GTX 970 (длиной около 25 см), использованная для решения задачи трехчастичного рассеяния в обсуждаемой работе, фото с сайта geforce.com"

        Автор ничего не утаивает, и все пишет честно. Вы считаете, что работа не тянет на статью на Элементах? Данный вопрос зависит не от вашего мнения, а от редакторов Элементов.

        Вы захотели показать насколько Вы умный? У меня сложилось о Вас абсолютно противоположное мнение.
        Ответить
        • chastnik > SysAdam | 14.08.2016 | 13:52 Ответить
          Оставьте себе свое мнение о моем уме. Попробуйте научиться читать - найдите в статье с какой скоростью современный суперкомпьютер решает задачу трехчастичного рассеяния.
          Ответить
        • VICTOR > SysAdam | 15.08.2016 | 14:15 Ответить
          А в конце статьи говорят уже про 2 частицы.
          Там 8 секунд считается задача на 670.
          Ответить
    • Alexander_Ilin > dust | 15.08.2016 | 15:27 Ответить
      "к вашим услугам оригинальная статья, ссылка на которую представлена в конце новости" за $ 35,95.
      Спасибо, наскребу деньжат, умилюсь подлинником.
      А нужно было просто написать, что духи Фаддеева нынче выскакивают из компа, как черти из табакерки.
      Ответить
      • tetrapack > Alexander_Ilin | 23.08.2016 | 05:30 Ответить
        Бох в помощь!
        http://sci-hub.cc/10.1016/j.cpc.2016.03.018
        Ответить
  • Rattus  | 15.08.2016 | 10:43 Ответить
    Не специалист в обсуждаемой теме, но согласен с комментаторами: статью хорошо бы ещё доработать, чтобы соответствовать уровню Элементов.
    Ответить
    • Bedal > Rattus | 17.08.2016 | 09:57 Ответить
      Это сообщение в чём-то эквивалентно утверждению "хорошо настроенный карбюратор работает лучше, чем стоковый компьютеризованный впрыск". Хорошо продуманная под _конкретную_ задачу программа очень даже может работать на десктопе быстрее, чем простая и универсальная - на суперкомпе.
      Вот только заранее известно, что 1) это работает только при наличии дешёвых разработчиков и 2) через обозримое время быстрая десктоп-программа исчезнет из эксплуатации, а тупая супер-компьютерная будет продолжать использоваться.

      По крайней мере, это подтверждает исторический опыт. Промышленность всё равно сожрёт ремесленника, как бы талантлив он ни был.
      Ответить
      • Bobrob777 > Bedal | 18.08.2016 | 09:34 Ответить
        Что-то Вас не видно было давно ))). Великий критик всех времен и народов )))
        Ответить
        • Bedal > Bobrob777 | 18.08.2016 | 13:29 Ответить
          "Проколы, поломки, энтузиазм населения. Все это задерживает." :-)

          Не критика, попытка анализа.
          Ответить
  • zeit-raffer  | 17.08.2016 | 17:57 Ответить
    Известен такой эффект с википедией. Когда читаешь ее статьи по разным специальностям (не своим), то кажется, узнаешь что-то, изложенное четким профессиональным языком. А если ты специалист и случайно читаешь статью по своей теме, то сразу видишь, что писавшие ее не разбираются в том, что пишут. Ну, понятно, энциклопедию собирали любители, им можно не разбираться. Но эту статью писал якобы специалист! И в ней совершенно возмутительным образом написана полная чепуха на уровне даже не детского компьютерного журнала, а настоящей желтой прессы. Все конкретные претензии по содержанию статьи высказаны в комментариях выше, поэтому я повторять их не буду. Буквально, читателю вешают лапшу на уши.

    Раньше я читал это сайт по специальностям, в которых не разбираюсь, и не мог судить об их уровне. И поэтому, по ошибке, считал его научным. Сейчас я вижу, что это не научный вестник, а желтый бульварный листок. Больше не смогу читать ваш сайт, извините.
    Ответить
    • Игорь Иванов > zeit-raffer | 18.08.2016 | 19:13 Ответить
      И вы зарегистрировались на сайте вчера только для того, чтобы прилюдно объявить об этом решении?
      Ответить
      • zeit-raffer > Игорь Иванов | 18.08.2016 | 21:25 Ответить
        Именно так. Я много лет постоянно его читаю (семь лет? больше?) Комментировать не приходилось (вы часто комментируете, допустим, газету? особенно ту, в материале которой не разбираетесь?). Но эта статья мне вполне понятна, однако она очень... неприятно меня удивила, если можно так выразиться. Настолько, что я решил вернуться к ней через несколько дней после первого прочтения и вспомнил о возможности комментирования.

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

        То, что написано - это не корректные бенчмарки! Можно сравнивать один способ вычислений на разной технике (тогда это будет сравнение техники), либо можно сравнивать разные способы вычислений на одной технике (тогда это будет сравнение нашей вычислительной схемы, или того, чем отличаются реализации одной схемы). Если прорыв данной работы в новом способе решения конкретной физической задачи, то тогда 90% статьи, включая пафосный заголовок совершенно нерелевантны. Если же речь, наоборот, про использование GPU в современном вычислительном деле, то надо было написать про Теслу (хардвер для этого), про стандарты API, и как это все используется (да!) в современный суперкомпьютерах. Замечу, что все это упомянуто выше в других комментарих.

        То же, как это написано сейчас, выглядит в точности как давняя реклама (одна из первых): "опустим обычную программу передач в серную кислоту, а газету ТВ-ПАРК - в дистиллированную воду! почувствуйте разницу!"
        Ответить
  • Kostja  | 17.08.2016 | 23:10 Ответить
    Помню когда-то читал заметку про то что Риву ТНТ для чего-то научного использовали, не помню уже для чего.
    Ответить
Написать комментарий


Элементы

© 2005-2017 «Элементы»