Фок чгпу: ФОК «Бассейн ЧГПУ» — ФОК Бассейн ЧГПУ им И. Я. Яковлева г.Чебоксары

Содержание

Уроки физической культуры – в бассейне ФОКа «Спартак»

Для учеников начальных классов г.Чебоксары вторая четверть началась очень неожиданно и интересно. По крайней мере, что касается уроков физкультуры. Два раза в неделю они выезжают в ФОК «Спартак», чтобы поплавать. Благо, бассейн здесь для этого приспособлен просто идеально.

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

Сейчас в этом проекте участвуют 10, 19, 28, 40, 50 и 56 школы. Власти обещают расширить этот список «по мере возможности» в случае, если практика выездных уроков физкультуры будет успешно применяться и дальше.

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

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

Конечно, число чебоксарских школ, в которых нет бассейна, намного превышает цифру шесть. Если говорить совсем откровенно, школ с бассейном в городе всего лишь три: 59, 61 и, разумеется, 5 гимназия.

Ситуация в Чебоксарах с бассейнами для студентов оставляет желать лучшего. Если студенты ЧГПУ имеют возможность заниматься в собственном бассейне, то учащимся ЧГУ такой возможности пока не предоставлено. И хотя еще в мае прошлого года Управление архитектуры и градостроительства грозилось построить в 1 корпусе ЧГУ новый бассейн с шестью дорожками, пока этот вопрос так и завис на уровне архитектурного решения.

Бассейн длиной 25 метров на шесть дорожек, пропускная способность 24 человека, два тренажерных зала, сауна, душевые и раздевальные комнаты и даже актовый зал на 200 зрителей… Обещанного, как говорится, три года ждут. Прошла лишь половина срока, и студенты ЧГУ им. И.Н. Ульянова не теряют надежды, что однажды и в их учебном заведении появится бассейн.

Приглашаем на открытое занятие Студии эстетического развития под руководством доцента кафедры дизайна ЧГПУ им. И.Я. Яковлева

3 мая в 13.30 приглашаем всех стремящихся познать основы иконописи на открытое занятие Студии эстетического развития под руководством доцента кафедры дизайна ЧГПУ им. И.Я. Яковлева, иконописца Кузиной Елены Алексеевны. Тема: «Святые Евангелисты Марк, Иоанн Богослов, Лука, Матфей. Мастер-класс — рисование льва, орла, тельца — Зооморф.
Адрес: пр. Тракторостроителей, 4 Храм Новомучеников и Исповедников Российских г. Чебоксары
Телефон — 8 (987) 576 53 51

 

С 6 по 12 июля на всероссийскую линию детского телефона доверия Минтруда Чувашии поступило 88 обращений, среди которых зарегистрировано 67 обращений от несовершеннолетних и 21 обращений от иных граждан.

Соседские разборки https://www.instagram.com/chuvprok/ В Чувашии подрядчик сорвал сроки строительства детского сада в микрорайоне «Радужный» в Чебоксарах.

Скрин с видео очевидца. В Чебоксарах на проспекте Ивана Яковлева, возле перекрестка с улицей Кукшумской начал проявляться провал.

Федеральная налоговая служба зарегистрировала 28 предпринимателей Чувашии, которые своей бизнес-деятельностью решают важные социальные задачи, в качестве социальный предпринимателей.

Глава аппарата фракции КПРФ в Госдуме Нина Останина обратилась к генпрокурору Игорю Краснову с требованием отменить решение о возбуждении уголовного дела в отношении москвички,

Фото с сайта МВД по Чувашии Что он натворил Полицейские раскрыли кражу цепочки из чебоксарского ломбарда.

Петров Юрий Александрович | Избиратель

Представительный орган поселения

Чувашская Республика

Собрание депутатов Ходарского сельского поселения Шумерлинского района

Сторонник

Представительный орган поселения

Чувашская Республика

Собрание депутатов Стемасского сельского поселения Алатырского района

Сторонник

Представительный орган поселения

Чувашская Республика

Собрание депутатов Яндобинского сельского поселения Аликовского района

Сторонник

Представительный орган поселения

Чувашская Республика

Собрание депутатов Николаевского сельского поселения Ядринского района

Член партии «Единая Россия»

Представительный орган поселения

Чувашская Республика

Собрание депутатов Хормалинского сельского поселения Ибресинского района

Член партии «Единая Россия»

Представительный орган поселения

Чувашская Республика

Собрание депутатов Аттиковского сельского поселения Козловского района

Член партии «Единая Россия»

Представительный орган поселения

Чувашская Республика

Собрание депутатов Иваньковского сельского поселения Ядринского района

Член партии «Единая Россия»

Представительный орган поселения

Чувашская Республика

Собрание депутатов Новочурашевского сельского поселения Ибресинского района

Член партии «Единая Россия»

(PDF) Эволюционные вычисления на бытовом графическом оборудовании

3

Должны быть выполнены оценки пригодности. Многообещающий подход к преодолению этого ограничения — распараллеливание

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

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

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

, больше людей смогут использовать наш параллельный алгоритм для решения огромных проблем

, встречающихся в реальных приложениях, таких как интеллектуальный анализ данных.

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

в разделах 3 и 4. Был проведен ряд экспериментов, и экспериментальные результаты

будут обсуждены в разделе 5. В последнем разделе мы дадим заключение и описание нашей будущей работы

.

2G

RAPHICS PROCESSING UNIT

В последнее десятилетие потребность мультимедийной и игровой индустрии в ускорении 3D-рендеринга

подтолкнула несколько производителей графического оборудования к разработке высокопроизводительного параллельного графического ускорителя

. Это привело к рождению графического процессора (GPU), который обрабатывает запросы на рендеринг

с помощью прикладного программного интерфейса (API) для трехмерной графики.Весь конвейер состоит из

преобразований, текстурирования, освещения и растеризации в буфер кадра. Потребность в рендеринге cinematic

из игровой индустрии еще больше повысила потребность в программируемости процесса рендеринга.

Начиная с последнего поколения графических процессоров, выпущенных в 2001 году (включая серию nVidia GeforceFX и

ATI Radeon 9800 и выше), разработчики могут писать свои собственные C-подобные программы, которые называются шейдерами,

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

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

Эти шейдеры управляют двумя основными модулями конвейера рендеринга, а именно вершинами и фрагментами.

gines. В качестве иллюстрации механизма в GPU мы описываем рендеринг poly-

gon с отображением текстуры. Пользователь сначала определяет трехмерное положение каждой вершины через API в графической библиотеке (OpenGL или

DirectX).Кажется неуместным определять трехмерные треугольники для эволюционных вычислений. Однако такое соотношение

необходимо для удовлетворения входного формата графического конвейера. В нашем приложении мы просто определяем

2 треугольника, покрывающих весь экран. Координата текстуры, связанная с каждой вершиной, также определяется одновременно

. Эти координаты текстуры необходимы для определения соответствия элементов

в текстурах (входные / выходные данные) и пикселям на экране (шейдеры выполняются на попиксельной основе). Затем

определенных вершин передаются в механизм вершин для преобразования (в нашем случае — фиктивные).

14 апреля 2005 г. ПРОЕКТ

Стратегия кэширования на основе графического процессора для многоматериальных линейных эластичных FEM на регулярных сетках

Abstract

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

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

Образец цитирования: Schlinkmann C, Roland M, Wolff C, Trampert P, Slusallek P, Diebels S, et al. (2020) Стратегия кэширования на основе графического процессора для многоматериальных линейных упругих FEM на регулярных сетках. PLoS ONE 15 (10): e0240813. https://doi.org/10.1371/journal.pone.0240813

Редактор: Анотида Мадзвамузе, Университет Сассекса, СОЕДИНЕННОЕ КОРОЛЕВСТВО

Поступила: 18 апреля 2020 г .; Принят в печать: 2 октября 2020 г .; Опубликовано: 30 октября 2020 г.

Авторские права: © 2020 Schlinkmann et al.Это статья в открытом доступе, распространяемая в соответствии с условиями лицензии Creative Commons Attribution License, которая разрешает неограниченное использование, распространение и воспроизведение на любом носителе при условии указания автора и источника.

Доступность данных: Исходный код программного обеспечения доступен по адресу https://github.com/c3di/voxsol. Все остальные соответствующие данные находятся в рукописи и ее файлах с вспомогательной информацией.

Финансирование: T.D., C.S., P.S. Авторы с благодарностью признают финансовую поддержку Немецкого Bundesministerium für Bildung und Forschung (BMBF) в рамках гранта 13GW0124.https://www.bmbf.de/ Спонсоры не играли никакой роли в дизайне исследования, сборе и анализе данных, принятии решения о публикации или подготовке рукописи.

Конкурирующие интересы:

Авторы заявили, что конкурирующих интересов не существует.

Введение

Мотивация

Метод конечных элементов (МКЭ) — широко используемый подход для решения уравнений в частных производных, например, для моделирования механических систем. Подход происходит из инженерной науки, где объекты обычно описываются как модели автоматизированного проектирования (САПР) с использованием кривых более высокого порядка, например, обрезанных неоднородных рациональных B-сплайнов (NURBS). Классические модели FEM требуют, чтобы эти кривые более высокого порядка были дискретизированы в виде объемной сетки, состоящей из отдельных ячеек (конечных элементов). Типичные ячейки ячеек имеют гексаэдрическую или тетраэдрическую топологию. Ячейки сетки гибки в их возможности соединения, чтобы выражать широкий диапазон форм. Отдельные ячейки сопоставляются со стандартными элементами, как правило, единичного размера, а законы механики формулируются с помощью базисных функций. Чаще всего используются пространства произведений многочленов от первой до третьей степени (линейные, квадратичные, кубические), но также успешно используются степени более высокого порядка, а также более экзотические функции, такие как NURBS [1].

Смоделированные механические свойства каждого конечного элемента описываются локальной матрицей жесткости, полученной путем объединения конкретных свойств материала элемента с базисными функциями. Затем моделируется взаимосвязь конечных элементов путем объединения локальных матриц жесткости в единую глобальную матрицу жесткости A . Обычно он симметричный, положительно определенный и часто очень разреженный, поскольку каждый конечный элемент обычно присущ только небольшому количеству других элементов.Система уравнений вида Ax = b моделирует полную механическую систему, где b — вектор нагрузки, содержащий объемные силы, а также граничные условия, а x — вектор неизвестных значения, такие как смещения. Обзор обозначений приведен в таблице 1.

Полученная алгебраическая система может быть решена напрямую, например, с помощью разложения Пардизо [2, 3] или разложения Холецкого [4, 5]. Однако для больших систем это становится невозможным, и вместо этого используется итерационный численный подход, например метод сопряженных градиентов.Наилучшая отправная точка для итеративного решателя может быть аппроксимирована путем сначала решения более грубой дискретизации той же механической системы. Это может повторяться несколько раз на последовательно более грубых представлениях, создавая иерархию дискретизаций; процесс, известный как многосеточный метод. В этой публикации мы называем эти более грубые дискретизации дополнительными уровнями детализации.

Поскольку FEM-моделирование проблем практически значимого размера может потребовать очень больших вычислительных ресурсов, их распараллеливание уже давно является активной областью исследований.Однако требования схем распараллеливания часто противоречат свойствам, вводимым в модель конечных элементов с помощью неструктурированной геометрии сетки. Например, моделирование связи между элементами в произвольной сетке вводит фрагментацию памяти, что затрудняет эффективный параллельный доступ. Чтобы бороться с этим эффектом, элементы сетки могут быть переупорядочены, чтобы максимизировать пропускную способность памяти [6, 7]. В многосеточных методах изменения топологии между двумя уровнями дискретизации в неструктурированных сетках могут вызывать неоднозначности, с которыми трудно справиться [8–10].

В последнее время моделирование методом конечных элементов все чаще применяется к моделям, которые созданы не из программного обеспечения САПР, а с использованием технологий трехмерной визуализации, таких как компьютерная томография (КТ) или трехмерная микроскопия. Приложения для этих сценариев многочисленны. Биомеханическое моделирование часто основывается на клинических данных компьютерной томографии [11, 12]. Механическое моделирование микроструктур в материаловедении и инженерии может быть основано на методах трехмерной электронной микроскопии, таких как сканирующая электронная микроскопия с фокусированным ионным пучком (FIB / SEM) [13], электронная или рентгеновская томография [14].

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

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

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

По последнему слову техники

Самыми популярными альтернативами МКЭ по эластичности являются методы конечных разностей (FDM). FDM — это также класс численных методов решения уравнений в частных производных путем аппроксимации производных конечными разностями.FDM широко используются в численном анализе и некоторых инженерных приложениях [15]. Даже в области линейной эластичности FDM все еще являются активной областью исследований, в частности, с акцентом на шахматные сетки и концепции без блокировок [16]. Расширение до обобщенного FDM также оказалось хорошим бессеточным методом для задач теории упругости [17].

Другой альтернативой наиболее распространенному моделированию методом конечных элементов для задач линейной упругости является метод виртуальных элементов (VEM) [18]. Виртуальные элементы могут быть почти аналогичны FEM за счет использования аналогичных пространств элементов [19].В отличие от классического МКЭ, базисные функции, моделирующие материал внутри конечных элементов, определяются только неявно. Это позволяет использовать произвольные многоугольные элементы в одной и той же сетке, обеспечивая более гибкое создание сеток сложной геометрии. Это также не требует специальной обработки висячих узлов, поскольку два инцидентных полигона, разделяющие висячий узел, могут иметь разное количество сторон. Однако матрица элементарной жесткости должна быть рассчитана с помощью условий согласованности и устойчивости, чтобы восстановить приближение базисных функций, поскольку они существуют только виртуально [20].

Многосеточные методы — это алгоритмические концепции, использующие иерархию дискретизаций в процессе решения [21, 22]. Чтобы ускорить сходимость решателя, итеративная глобальная коррекция решения на уровне самой мелкой сетки используется в сочетании с решением грубой задачи [23]. Здесь процесс огрубления используется рекурсивно до тех пор, пока не будет достигнут уровень сетки, на котором проблема может быть решена очень эффективно [24], что приводит к более быстрому распределению информации по вычислительной области и уменьшению низкочастотных ошибок.Однако эта иерархия уровней сетки требует эффективных операторов передачи с одного уровня сетки на другой и обратно, а также представления дискретной механической системы на каждом уровне сетки. В сочетании, грубая сеточная коррекция, ограничение остаточной ошибки до более грубых уровней сетки, проекция вычисленной поправки на более мелкие сеточные уровни и сглаживание ошибок приводит к более высокой скорости сходимости [25–27].

Многосеточные методы также используются с локально адаптивными уточненными и грубыми уровнями сетки.В этом случае различают сетки уровней, то есть ячейки с одинаковым расстоянием уточнения от грубой сетки, и конечные сетки, состоящие из всех активных ячеек иерархии. Эти концепции требуют определенных алгоритмов и структур данных [28]. Чтобы избежать проблем многосеточных методов со сложной геометрией, были разработаны алгебраические многосеточные методы, действующие только на лежащую в основе линейную систему уравнений, а не на саму сетку [23].

Поскольку узким местом производительности часто является перемещение данных, а не операции с плавающей запятой (flops), блочно-асинхронные многосеточные сглаживания на GPU [29] выполняют больше операций flops, чтобы уменьшить усилия по синхронизации.Для многих задач стратегии асинхронных итераций превосходят классические методы синхронизированной релаксации [30].

Алгоритмическая структура для безматричного вычисления оператора обеспечивает очень эффективные реализации, поскольку матрица коэффициентов не сохраняется явно. Вместо этого доступ к матрице реализуется путем оценки лежащих в основе коэффициентов на лету с помощью произведений матрица-вектор [31, 32]. Безматричные подходы FEM были предложены для уменьшения требований к памяти и устранения узких мест в полосе пропускания памяти при параллельных вычислениях [33]. Первоначально разработанные для распределенных вычислительных кластеров, эти подходы вновь демонстрируют интерес к универсальным приложениям для графических процессоров. При работе с фиксированной сеткой с одинаковыми размерами элементов и одним материалом все конечные элементы имеют одну и ту же локальную матрицу жесткости, которую можно предварительно вычислить [34]. Хранение этой матрицы в постоянной памяти дополнительно снижает требования к пропускной способности в подходе безматричного графического процессора [35].

Подходы на основе каждой вершины, также известные как подходы от узла к узлу, представляют собой переформулировку задачи конечных элементов с упором на решение отдельных узлов, а не конечных элементов [36].Работа, наиболее близкая к нашему подходу, основана на каждой вершине релаксации Гаусса-Зейделя [37]. Путем смещения вычислительного фокуса с элементов на уравнения для каждой вершины вершины итеративно обновляются с учетом обновленных смещений их прямых соседей. Наша работа улучшена по сравнению с [37] для класса задач из нескольких материалов за счет введения высокоэффективного представления данных, использующего самоподобие в системной матрице, тем самым снижая потребление памяти и повышая эффективность кеширования на несколько порядков.

Материалы и методы

Алгоритм

Наш подход (рис. 1) основан на ряде предположений о механической проблеме. В большинстве задач с ограниченным количеством дискретных материалов [11, 38, 40] глобальная матрица жесткости содержит много избыточных элементов. Во-первых, часто встречаются большие участки однородного материала. В случае фиксированной сетки с однородным размером и формой конечных элементов это соответствует блокам в матрице FEM, которые идентичны до относительно простых изменений индекса.Во-вторых, даже если материалы вокруг какой-либо вершины неоднородны, одна и та же конфигурация граничных условий и локального распределения материала должна многократно появляться в задаче, что также приводит к избыточной матричной структуре. Экспериментальное подтверждение этого предположения показано в разделе результатов.

Рис. 1.

Обзор нашего подхода. a) Два разных материала представлены красным и синим. Решение обновляется путем локальной работы с регионами обновления.Количество и размер областей обновления зависит от архитектуры графического процессора. Проблема решается путем выбора и обработки областей обновления в цикле до достижения критерия сходимости. б) Вершины в областях обновления переносятся в общую память. Области обновления обрабатываются путем многократного обновления положения ряда случайно выбранных вершин. Когда область обновления локально сходится, результат передается обратно в глобальную память. c) С целью обновления положения вершины мы определяем локальную задачу следующим образом: Локальная задача соответствует решению для положения (x, y, z) центральной вершины, при этом предполагая, что положения всех 26 соседних вершин равны исправлено на время этого шага обновления. г) Мы решаем положение центральной вершины, назначая идентификатор конфигурации в зависимости от ее граничных условий и компоновки материалов восьми инцидентных вокселей. Мы называем это локальной конфигурацией проблемы, при этом каждая уникальная конфигурация выше представлена ​​другим цветом. Для каждой конфигурации локальные матрицы жесткости для 27 вершин локальной задачи предварительно вычисляются и сохраняются в удобном для кэша формате. Ключевое наблюдение состоит в том, что для больших задач с упорядоченным распределением дискретных материалов многие вершины будут иметь одну и ту же конфигурацию.

https://doi.org/10.1371/journal.pone.0240813.g001

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

(1)

Уравнение 1: матрицы жесткости M 26 внешних вершин умножаются на их векторы смещения d и суммируются, чтобы сформировать вектор правой части (RHS).Под индексом 13 понимается центральная вершина, которая не должна вносить вклад в RHS, поскольку это вершина, для которой решается. Если применимо, добавляются внешние падающие силы φ . Для решения системы предварительно инвертированная матрица жесткости K -1 центральной вершины умножается на вектор RHS, давая новый вектор смещения и центральной вершины. Предварительное вычисление K -1 численно стабильно, поскольку K очень мало (3 × 3) по сравнению с глобальной матрицей системы.

Алгоритм начинается с посещения каждой вершины глобальной задачи для изучения распределения материалов в восьми инцидентных вокселях, а также граничных условий в центральной вершине. Вместе эта информация называется локальной проблемной конфигурацией . Если конфигурация известна, вершине присваивается соответствующий идентификатор, в противном случае создается и назначается новый идентификатор. Предполагая, что количество конфигураций меньше 65 536, каждая вершина требует 2-байтового идентификатора конфигурации и трехкомпонентного вектора смещения с одинарной или двойной точностью.

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

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

Схема разделения помещает вершины в восемь различных подмножеств, при этом k -я вершина каждого воксела помещается в подмножество k th . Этот процесс повторяется для всех вершин в области обновления. Этот шаблон гарантирует, что никакие две вершины в одном подмножестве не смежны друг с другом.Восемь разделов обновляются последовательно, в то время как вершины внутри каждого раздела могут обновляться параллельно. Это разделение относится к порядку вычислений, и его не следует путать со связностью элементов.

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

Реализация

Алгоритм был реализован с использованием C ++ и Nvidia CUDA 10. Генерируется и сохраняется на хосте шестигранное представление механической проблемы с фиксированной сеткой. Это представление называется дискретной задачей , которая содержит материальные назначения всех шестигранных элементов, а также граничные условия задачи. Дискретная задача — это промежуточное представление, которое не используется в итеративном решателе, а служит для помощи в предварительной обработке многосеточной структуры и локальных конфигураций задачи.Представление на основе вершин генерируется из узлов дискретной задачи, в которых хранятся вершины, а не гексаэдрические элементы. На конфигурации локальной проблемы ссылаются идентификаторы конфигурации, хранящиеся в вершинах. Каждая конфигурация состоит из 27 матриц размерности 3 × 3 и одного трехкомпонентного вектора для напряжения Неймана, падающего на грани, соединенные с центральной вершиной локальной задачи. Общее количество конфигураций сильно зависит как от количества, так и от распределения дискретных материалов в задаче.Конфигурации предварительно вычисляются на хосте и сохраняются в памяти текстур на графическом процессоре, после чего они обрабатываются как доступные только для чтения. Эти шаги повторяются для каждого уровня многосеточной сети, вплоть до минимального размера проблемы, охватывающего размер одной области обновления. Мы используем многосеточную систему с половинным V-циклом как самый простой из возможных подходов, совместимых с нашим решателем. Каждый уровень многосетки решается полностью перед проецированием результирующих смещений на следующий уровень. После схождения грубого уровня и проецирования результата на следующий более тонкий уровень детализации связанные данные могут быть отброшены.В принципе, с нашим решателем совместимы и более сложные схемы многосеточного цикла, такие как F-циклы или W-циклы.

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

На графическом процессоре каждый блок потока сначала копирует вершины своей области обновления в общую память (рис. 3A). Важно отметить, что дополнительная граница с 1 вершиной со всех сторон также должна быть включена, поскольку вершины на краях области обновления требуют смещения соседей, которые лежат за пределами области обновления.Данные вершин часто обновляются и должны быть доступны для всех потоков в блоке во время построения векторов RHS, поэтому они хранятся в общей памяти. С другой стороны, локальные конфигурации проблем доступны только для чтения и должны кэшироваться как можно эффективнее в кэше L1 каждого потокового мультипроцессора.

Рис. 3. Архитектура программного обеспечения определяется аппаратными возможностями графического процессора.

а) Схема памяти. Смещения вершин активных областей обновления хранятся в общей памяти каждого блока потока.Конфигурации проблем хранятся в глобальной памяти. Поскольку они остаются постоянными, их можно кэшировать в L1. б). Схема резьбы. Блок потока соответствует активной области обновления. Блок резьбы подразделяется на девять основ, называемых «рабочими». Каждый рабочий обновляет одну вершину за раз, собирая правую часть (RHS) и умножая ее на инвертированную матрицу жесткости центральной вершины. RHS собирается параллельно с использованием 26 нитей в каждой основе, по одной для каждой соседней вершины.

https: // doi.org / 10.1371 / journal.pone.0240813.g003

Каждый блок потоков разделен на группы из девяти основ по 32 потока в каждой, в дальнейшем называемых worker (рис. 3B). Количество воркеров выбирается так, чтобы отражать возможности оборудования с большим количеством воркеров, что позволяет параллельному обновлению большего числа вершин внутри области обновления. Для простоты в оставшейся части статьи мы примем девять рабочих.

Каждый рабочий процесс состоит из одной основы, содержащей 32 потока.Чтобы обеспечить согласованность, мы отключаем 6 потоков в каждой деформации, используя внутреннюю функцию __ballot_sync , оставляя 26 потоков для сборки записей RHS для каждого из 26 соседей в локальной проблеме. Обновление выполняется с помощью следующих вычислений: (1) Каждому исполнителю назначается вершина в активном разделе области обновления. (2) Для каждой из 26 соседних вершин один поток используется для вычисления вклада RHS путем умножения текущего смещения на соответствующую матрицу жесткости соседа, хранящуюся в конфигурации локальной задачи.(3) 26 вкладов суммируются с использованием встроенной функции CUDA __shfl_down_sync , которая суммирует значения регистра деформации. (4) Первые три потока каждой основы затем помещают суммированный вклад в соответствующий компонент вектора RHS в общей памяти. (5) Общеблочный вызов __syncthreads гарантирует, что компоненты RHS всех рабочих процессов завершены, прежде чем двигаться дальше. Это необходимо, чтобы избежать состояний гонки при передаче новых смещений обратно в общую память.(6) Выбираются три резьбы для расчета компонентов x , y и z нового смещения путем добавления напряжения Неймана к правой стороне и умножения на предварительно инвертированную матрицу центральной жесткости, которая также сохраняется. в локальной конфигурации проблемы. Новый вектор смещения переносится в общую память, доступную для следующей итерации.

Мы назначаем девять рабочих процессов на блок потока, что дает в общей сложности девять деформаций или 288 потоков на блок.Мы решили использовать обновленные области размером 6 × 6 × 6 вершин, которые расширяются до 8 × 8 × 8 вершин с требуемой границей с 1 вершиной. Многоцветное разбиение приводит к восьми отдельным разбиениям по 27 вершин в каждом. Граничные вершины не рассматриваются для разбиения, так как они никогда не обновляются. Таким образом, девять рабочих могут обновить каждый раздел за три шага, обновляя девять вершин параллельно за шаг. Вершины в каждой области обновляются в общей сложности три раза, чтобы гарантировать, что вся область обновления сошлась к своему новому равновесию.Затем блок потока завершается после того, как новые смещения переносятся из общей памяти обратно в глобальную память.

Определение сходимости

Определение подходящего критерия завершения — важный аспект численных подходов к решению систем уравнений. Такие критерии часто определяются в терминах минимизации функции ошибок до определенного нижнего порогового значения , после чего решение считается сходимым. Для решателя, представленного в этой статье, мы определяем функцию ошибок как относительную ошибку условия равновесия Ku = f : (2)

Мы будем называть этот термин остаточной ошибкой вершины.В случаях, когда ‖ f 2 = 0, остаточная ошибка устанавливается равной нулю. Выборка остаточных ошибок производится путем планирования периодического обновления вершин в решении. Поскольку этот процесс не записывает результаты обратно в решение, между вершинами нет зависимостей данных, поэтому все вершины внутри области обновления могут обрабатываться параллельно. Кроме того, чтобы уменьшить как вычислительные затраты, так и требования к хранилищу в восемь раз, остаточные ошибки вычисляются только для каждой второй вершины в каждом пространственном измерении.

Каждой вершине назначается один поток для завершения вычисления остаточной ошибки, как определено в (2). Результат сохраняется в отдельном массиве, из которого существуют две копии. Один содержит результат предыдущего прохода остаточной ошибки δ k -1 , а другой содержит результат текущего прохода δ k . Эти массивы чередуются при выполнении ядра.

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

Наборы данных, используемые для оценки

Для оценки использовались три набора данных (рис. 4). Первый состоял из материаловедческого образца алюминия с внедренными кремниевыми ( AlSi ) коралловыми структурами, полученными с помощью сканирующей электронной микроскопии сфокусированным ионным пучком (FIB / SEM) [41]. Набор данных содержит подмножество вокселей 64 × 64 × 64 с размером вокселя 46 × 46 × 46 нм, , всего 262 144 вокселя. Свойства материала двух фаз были присвоены из литературных значений [39].Для алюминиевой фазы предполагается модуль Юнга 70 ГПа и коэффициент Пуассона 0,34, для эвтектического кремния модуль Юнга 107 ГПа и коэффициент Пуассона 0,27. Нижняя часть образца была зафиксирована в направлении x , а две стороны были зафиксированы в направлениях x и y соответственно. Сжимающая сила в 6 ньютонов была равномерно распределена по верхней поверхности образца.

Рис. 4. Наборы данных, использованные для оценки.

a) Зонд для материала, полученный с помощью FIB / SEM, содержит силиконовые карманы, залитые в алюминий.б) Образец двухфазной стали, полученный путем последовательного разрезания. в) Большеберцовая кость с дистальным переломом и межмедуллярным стержнем, захваченным компьютерной томографией (КТ).

https://doi.org/10.1371/journal.pone.0240813.g004

Второй набор данных (двухфазная сталь ) состоял из более крупного материаловедческого образца двухфазной стали, состоящей из ферритной матрицы с включениями мартенсита, захвачено с помощью сканирующей электронной микроскопии с последовательным сечением с размером вокселя 411 × 411 × 407 нм .Разрешение этого набора данных составляло 256 × 256 × 100, всего 6 553 600 вокселей. Соотношение феррита и мартенсита составляло приблизительно 90:10 соответственно. Использовали модуль Юнга 200 ГПа для ферритной фазы и 220 ГПа для мартенситной фазы. Обе фазы получили коэффициент Пуассона 0,27. Образец был зафиксирован аналогично набору данных AlSi , и сжимающая сила в 1000 Ньютонов была равномерно распределена по верхней поверхности образца.

Последний набор данных ( большеберцовая кость, ) представлял собой компьютерную томографию (КТ) большеберцовой кости человека со сложным переломом и межмедуллярным стержнем.Имплантату были присвоены свойства материала, соответствующие титану, с модулем Юнга 108 ГПа и коэффициентом Пуассона 0,342. Большеберцовая кость была вручную сегментирована на два разных материала, кортикальную и губчатую кость, на основе значений серого, найденных в данных КТ. Кроме того, и разрыв трещины, и костная мозоль были сегментированы как отдельные классы материалов, чтобы можно было оценить деформации в области перелома. С учетом пустотного материала это дает в общей сложности 6 различных классов материалов.Кортикальной кости были присвоены модуль Юнга 18 ГПа и коэффициент Пуассона 0,3, губчатой ​​кости 590 МПа и 0,3 соответственно. Зазор трещины и костная мозоль получили модуль Юнга 5 МПа и коэффициент Пуассона 0,4. После предварительной обработки и обрезки размеры набора данных tibia составили 169 × 281 × 1334, всего 63 350 326 вокселей с размером вокселя 0,44 × 0,44 × 0,3 мм. К большеберцовому плато прилагалась сжимающая сила в 902 Ньютона, чтобы имитировать вес стоящего тела в 92 кг.Дистальный конец большеберцовой кости фиксировали во всех направлениях, в то время как большеберцовое плато фиксировали в направлениях x и y . Обратите внимание, что большое количество вокселей (приблизительно 56 миллионов), окружающих кость, заполнено пустотным материалом.

Среда оценки

Оценка проводилась на сервере с автономным графическим процессором с Intel Xeon E5-2680, 256 ГБ ОЗУ и одним Nvidia Tesla P100 с 16 ГБ памяти. P100 включает 56 потоковых мультипроцессоров (SM), каждый с 24 КБ кэш-памяти L1.

В качестве основы каждый набор данных также был смоделирован с использованием итеративного решателя в коммерчески доступном программном обеспечении Abaqus. Для этой цели наборы данных не обновлялись. Моделирование проводилось параллельно на рабочей станции с 16 ядрами ЦП и 128 ГБ оперативной памяти. Линейный решатель был настроен на использование итерационного метода с критерием сходимости 5,0 × 10 −3 для средней нормы потока и 1,0 × 10 −2 для поправок на смещение.

Результаты

Производительность

Эффективность предложенной стратегии кэширования оценивалась на трех описанных выше наборах данных.Эксперименты проводились с одинарной точностью с критерием сходимости 1.0 × 10 −6

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

С двумя дополнительными уровнями детализации набор данных AlSi занял 13.7 с с отключенным кешированием и 6,8 с с включенной предлагаемой схемой кэширования (таблица 2). Это представляет собой ускорение в два раза. Итерационный решатель в Abaqus® смог вычислить решение за 17 секунд. Ниже представлен анализ соответствующей точности моделирования.

С тремя дополнительными уровнями детализации набор данных для двухфазной стали занял 63,7 с с отключенным кэшированием и 14,3 с с включенной предлагаемой схемой кэширования; ускорение в 4,5 раза. Итеративному решателю в Abaqus® потребовалось 17 минут для решения.

С пятью дополнительными уровнями детализации набор данных tibia не может быть завершен с отключенным кэшированием. После 51 минуты вычислений доступная память графического процессора была исчерпана при переходе на уровень детализации с полным разрешением. Сравнение с Abaqus® также не удалось из-за нехватки системной памяти. Используя предложенную схему кэширования, полный набор данных был завершен за 8,9 минут.

Свойства сходимости

Для проверки правильности конвергентных решений набор данных AlSi сравнивался с достоверным решением, созданным Abaqus®.Были проведены эксперименты с различными размерами вокселей, включая размеры анизотропных вокселей в каждой из трех степеней свободы. Кроме того, менялись как величина, так и направление приложенной силы. Во всех случаях среднеквадратичная ошибка по всем смещениям вершин была ниже 4% при использовании 1 × 10 −7 в качестве критерия сходимости. Чтобы облегчить точное сравнение с решением Abaqus®, эти эксперименты были выполнены с использованием двойной точности с использованием более высокого критерия сходимости и без дополнительных уровней детализации.Таким образом, общее время вычислений для набора данных AlSi значительно больше, чем результаты, представленные ранее.

Поскольку наш решатель показал несоответствие решению Abaqus не менее 3%, следующий эксперимент подтвердил правильную сходимость к аналитически известной проблеме. Тестовая задача состоит из стальной балки размером 10 м × 1 м × 1 м, модулем упругости 210 × 10 9 и коэффициентом Пуассона 0,3. Сжимающая нагрузка -1.0 × 10 9 N моделировалось параллельно самой длинной оси. В этом стандартном примере максимальное смещение балки составляет:

Дискретизация 100 элементов × 10 × 10 использовалась без дополнительных уровней детализации при различных критериях сходимости (рис. 5C). Максимальное смещение отличалось на 0,88% с критерием сходимости 1,0 × 10 −6 , с падением до 0,15% при 1,0 × 10 −9 с использованием двойной точности.

Рис 5.Влияние критерия сходимости на общую точность решения.

a) Решение для набора данных AlSi было рассчитано с помощью Abaqus и для этой цели считается достоверным. Средняя относительная ошибка смещений по сравнению с этим достоверным решением была рассчитана на уровне детализации с полным разрешением и нанесена на график как функция критерия сходимости. При ошибке 6% значение 1,0 × 10 −5 уже дает хорошее приближение к окончательному решению, при этом общая ошибка стабилизируется на уровне 3.7% для значения 1,0 × 10 −7 . б) Средняя относительная ошибка смещений как функция времени моделирования без дополнительных уровней детализации и 1,0 × 10 −7 в качестве критерия сходимости. c) Относительная погрешность максимального смещения в аналитическом примере, состоящем из стальной балки с сжимающей нагрузкой, приложенной параллельно самой длинной оси. Ошибка продолжает уменьшаться по мере уменьшения критерия сходимости со значением 0,46% при использовании 1,0 × 10 −7 и 0,15% при использовании 1.0 × 10 −9 . Эти эксперименты были выполнены с двойной точностью.

https://doi.org/10.1371/journal.pone.0240813.g005

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

Распространение конфигураций

Одно из предположений, лежащих в основе представленного подхода, состоит в том, что в случаях с ограниченным количеством дискретных материалов небольшое количество уникальных локальных конфигураций задачи должно быть достаточным для описания большинства вершин в задаче.Действительно, три набора данных, рассмотренных в этой работе, действительно демонстрируют это свойство (рис. 6). В случае двухфазного набора данных достаточно двух конфигураций, чтобы описать 90% вершин в задаче. Однако мы также видим, что в наборе данных tibia требуется значительно больше конфигураций для достижения того же процентиля. Здесь шесть уникальных материалов и неравномерное распределение кортикальной и губчатой ​​кости по всему набору данных приводят к большему количеству конфигураций в целом.Тем не менее, в этом сложном случае только 41 из 5897 конфигураций достаточно для описания 90% вершин в задаче, даже после фильтрации всех вершин, окруженных пустотными материалами.

Рис. 6. Распределение конфигураций локальных проблем в трех наборах данных.

Для каждого набора данных показаны 90, 95 и 99 процентили. Обе оси были масштабированы логарифмически. Для обоих образцов зонда материала небольшое количество уникальных конфигураций достаточно для описания 90% вершин в задаче.В случае большеберцовой кости сочетание четырех различных материалов очень неравномерным образом приводит к большему количеству уникальных конфигураций. Во всех случаях воксели, соответствующие пустотным материалам, отфильтровывались.

https://doi.org/10.1371/journal.pone.0240813.g006

Влияние увеличения количества материалов

Воздействие предложенной схемы кэширования на проблему зависит от количества и пространственного распределения материалов. Мы использовали три реальных примера, чтобы оценить этот эффект на практике.Чтобы лучше понять устойчивость кэширования в других, менее благоприятных условиях, мы также изменили набор данных для двухфазной стали , искусственно введя дополнительные материалы. Мы распределили эти дополнительные материалы по оси x задачи, так что срезы уникальных материалов были созданы в плоскости y-z . В худшем случае мы также исследуем присвоение каждому вокселю случайного материала.

Все дополнительные материалы имеют те же параметры материала, что и фаза ферритной стали в исходном наборе данных, но во всем программном обеспечении рассматриваются как уникальные материалы.Это делается для того, чтобы изолировать эффект снижения эффективности кэш-памяти от любого влияния, которое также могут иметь различные свойства материала. Например, более мягкие материалы приводят к более высоким деформациям, что также влияет на общее время моделирования. Кроме того, испытания материалов с очень большими различиями в коэффициентах упругости, например порядка 10 7 , показали аналогичные ошибки вычислений, как и в других подходах FEM. В таких случаях может потребоваться предварительный кондиционер для дефляции. Граничные условия и дополнительные уровни детализации аналогичны исходному набору данных.

Эффективность кэша L1 немного снижается с 99% до 98% по мере увеличения количества материалов (таблица 3). Влияние на общее время работы находится на границе точности измерения с небольшим увеличением с 12 до 13 с в случае с 256 материалами. В случае 256 материалов, распределенных случайным образом по всей ферритовой фазе, эффективность кэш-памяти L1 значительно падает до 71%, а общее время выполнения моделирования приближается к верхней границе, при которой схема кэширования полностью отключена.

Числовая точность

Чтобы исследовать вопросы числовой точности, мы повторили эксперименты на всех трех наборах данных (AlSi, Dual Phase, Tibia) как с одинарной, так и с двойной точностью. Для используемого критерия сходимости мы не обнаружили заметной разницы в точности результата. Было замечено, что производительность ниже менее чем на 10% при использовании двойной точности.

Технические характеристики

В целях обсуждения технических характеристик мы сфокусируемся на наборе данных двухфазной стали без дополнительных уровней детализации.Nvidia Visual Profiler использовался для исследования различных показателей производительности графического процессора во время выполнения. Всего за одно выполнение ядра было обработано 448 областей обновления, что соответствует восьми блокам потоков на доступный SM. Каждый блок ниток состоит из девяти нитей по 32 нитки в каждой.

Было обнаружено, что основное вычислительное ядро, ответственное за обновление вершин в каждой области обновления, как описано в разделе реализации, демонстрирует 56% -ную занятость с четырьмя активными блоками на SM, ограниченную общим количеством регистров.При частоте попаданий в кэш L1 99,49% для доступа к глобальной памяти планировщик в каждом SM усредняет 3,7 активных подходящих деформаций за цикл. Средний КПД СМ составил 90,5%. Остановки были связаны в первую очередь с зависимостью от памяти (22%), зависимостью выполнения (17%) и синхронизацией (7%).

Обсуждение

Работа, наиболее близкая к нашему исследованию, представлена ​​Dick et al. в [37]. Однако у этих двух подходов есть несколько ключевых различий. В предыдущей работе хранятся все данные, необходимые для выполнения моделирования МКЭ явно как для элементов, так и для вершин.Сюда входят матрицы упругости, плотности и вращения для элементов, а для вершин — вектор внешней силы, условия Дирихле, 27 коэффициентов локальной матрицы жесткости 3 × 3, вектор смещения, вектор невязки и вектор RHS. Это приводит к значительным требованиям к памяти в размере 1 КБ на вершину с использованием одинарной точности, которые в предыдущей работе пытались уменьшить с помощью явной индексации конечных элементов, чтобы избежать выделения пространства для пустых областей в проблеме.

Напротив, наш подход не требует хранения данных на графическом процессоре для самих конечных элементов и минимизирует требования к памяти для данных вершин с помощью предложенной схемы кэширования.При использовании одинарной точности 63 миллиона вершин в наборе данных tibia требуют всего 1013 МБ глобальной памяти на графическом процессоре с дополнительными 5793 кБ для хранения 5897 уникальных локальных конфигураций проблем. Остаточные ошибки, хранящиеся на один уровень грубее, чем соответствующая проблема, требуют всего 128 МБ глобальной памяти. Вместе это представляет собой амортизированную потребность в памяти, составляющую всего 18 байт на вершину. Для одного графического процессора с 8 ГБ памяти это дает теоретический максимальный размер примерно 400 миллионов вокселей для проблем, типичных для примеров, представленных в этой статье.

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

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

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

Время вычисления было примерно на 10% меньше при использовании двойной точности. Это замедление происходит полностью из-за повышенного потребления памяти, поскольку используемый графический процессор P100 разработан для арифметических операций с двойной точностью, а операции вычислений не выигрывают от сокращения чисел с плавающей запятой до одинарной точности.Мы предполагаем, что результаты будут по-другому выглядеть на потребительском оборудовании и что использование двойной точности будет иметь гораздо большее влияние на производительность этих систем.

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

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

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

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

Выводы

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

Благодарности

Авторы хотели бы поблагодарить доктора Торстена Тьярдеса из Университета Виттен-Хердеке за предоставление клинических данных компьютерной томографии, использованных в этой статье. За образцы материаловедения мы хотели бы поблагодарить кафедру функциональных материалов Саарландского университета, возглавляемую Франком Мюклихом.

Ссылки

  1. 1. Хьюз Т.Д., Коттрелл Дж., Базилевс Ю. Изогеометрический анализ: САПР, конечные элементы, NURBS, точная геометрия и уточнение сетки. Вычислительные методы Appl Mech Eng. 2005; 194: 4135–4195.
  2. 2. Шенк О., Гертнер К. Решение несимметричных разреженных систем линейных уравнений с помощью PARDISO. Futur Gener Comp Syst. 2004. 20: 475–487.
  3. 3. Шенк О., Гертнер К. О методах быстрого разворачивания факторизации для разреженных симметричных неопределенных систем.Электрон Транс Нумер Анал. 2006. 23: 158–179.
  4. 4. Trefethen LN (Lloyd N, Bau D, for Industrial S, Mathematics A. Числовая линейная алгебра. Филадельфия: Общество промышленной и прикладной математики; 1997. Доступно: http://ezproxy.uws.edu.au/login?url=http : //www.igpublish.com/siam-ebook/Book.nsp? cid_BOOKCODE = DEMOSIAMB0000286 & cid_BOOKPAGE = 1
  5. 5. Дерениовский Д., Кубале М. Факторизация параллельных матриц Холецкого и ранжирование графов. В: Wyrzykowski R, Dongarra J, Paprzycki M, Waśniewski J, редакторы.Параллельная обработка и прикладная математика. Берлин, Гейдельберг: Springer Berlin Heidelberg; 2004. С. 985–992.
  6. 6. Катхилл Э., Макки Дж. Уменьшение пропускной способности разреженных симметричных матриц. Материалы 24-й Всероссийской конференции 1969 г. Нью-Йорк, Нью-Йорк, США: ACM; 1969. С. 157–172. https://doi.org/10.1145/800195.805928
  7. 7. Азад А, Жаклен М, Булюк А, Нг Э. Обратный алгоритм Катхилла-Макки в распределенной памяти. Proc — 2017 IEEE 31st Int Параллельный распределительный процесс Symp IPDPS 2017.2017; 22–31.
  8. 8. Кнапек С. Матрично-зависимая многосеточная гомогенизация для задач диффузии. SIAM J Sci Comp. 1999; 20: 515–533.
  9. 9. Ван WL. Интерфейс, сохраняющий огрубляющуюся многосетку для эллиптических задач с сильно разрывными коэффициентами. Numer Linear Algebr с Прил. 2000; 7: 727–742.
  10. 10. Хабер Э., Хельдманн С. Многосеточный метод октодерева для квазистатических уравнений Максвелла с сильно разрывными коэффициентами. J. Comput Phys.2007. 223: 783–796.
  11. 11. Дамен Т., Роланд М., Тьярдес Т., Бульон Б., Слусаллек П., Дибелс С. Автоматизированный рабочий процесс для биомеханического моделирования большеберцовой кости с имплантатом с использованием компьютерной томографии и метода конечных элементов. Вычислить математику с Appl. 2015; 70: 903–916.
  12. 12. Poelert S, Valstar E, Weinans H, Zadpoor ​​AA. Индивидуальное моделирование костей с помощью конечных элементов. Proc Inst Mech Eng Часть H J Eng Med. 2013; 227: 464–478. pmid: 23637222
  13. 13.Роланд М., Круглова А., Харсте Н., Мюклих Ф., Дибелс С. Численное моделирование сплавов Al-Si с направленной кристаллизацией и без нее. Изображение Anal Stereol. 2014; 33: 29.
  14. 14. Берре С., Фок С.Л., Маммери П.М., Али Дж., Марсден Б.Дж., Марроу Т.Дж. и др. Анализ отказов эффектов пористости в термически окисленном ядерном графите с использованием моделирования методом конечных элементов. J Nucl Mater. 2008; 381: 1–8.
  15. 15. Гроссманн Ч., Стайнс М, Роос Х.Г. Численное рассмотрение дифференциальных уравнений с частными производными -.Берлин Гейдельберг: Springer Science & Business Media; 2007.
  16. 16. Руи Х., Сун М. Безблокирующий метод конечных разностей на шахматных сетках для задач линейной теории упругости. Вычислить математику с Appl. 2018; 76: 1301–1320. https://doi.org/10.1016/j.camwa.2018.06.023
  17. 17. Гавете Л., Уренья Ф., Бенито Дж. Дж., Гарсия А., Уренья М., Салете Э. Решение нелинейных эллиптических уравнений в частных производных второго порядка с использованием обобщенного метода конечных разностей. J Comput Appl Math.2017; 318: 378–387.
  18. 18. да Вейга Л., Брецци Ф., Марини Л.Д. Виртуальные элементы для задач линейной упругости. SIAM J Numer Anal. 2013; 51: 794–812.
  19. 19. Veiga LBDA, Brezzi F, Cangiani A, Manzini G, Marini LD, Russo A. Основные принципы методов виртуальных элементов. Методы математической модели Appl Sci. 2013; 23: 199–214.
  20. 20. Менголини М, Бенедетто М.Ф., Арагон AM. Инженерная перспектива метода виртуальных элементов и его взаимодействие со стандартным методом конечных элементов.Вычислительные методы Appl Mech Eng. 2019; 350: 995–1023.
  21. 21. Хакбуш В. Параболические многосеточные методы. В: Редактор Гловинского Р. Вычислительные методы в прикладных науках и технике VI: материалы шестого международного симпозиума по вычислительным методам в прикладных науках и технике, Версаль, Франция, 12–16 декабря 1983 г. Амстердам: Elsevier; 1984. С. 189–197.
  22. 22. Hackbusch W. Mehrgitterverfahren für elliptische Randwertaufgaben. В: Фридрих V, редактор.Probleme und Methoden der Mathematischen Physik: 8 Tagung, Karl-Marx-Stadt, 20–24 июня 1983 г. Лейпциг: Teubner; 1984. С. 83–90.
  23. 23. Бриггс В.Л., Хенсон В.Е., Маккормик С.Ф. Многосеточное руководство (2-е изд.). Филадельфия, Пенсильвания, США: Общество промышленной и прикладной математики; 2000.
  24. 24. Хакбуш В. Итерационное решение больших разреженных систем уравнений. Второе издание. Чам: Спрингер; 2016. https://doi.org/10.1007/978-3-319-28483-5
  25. 25. Heuveline V, Lukarski D, Trost N, Weiss JP.Параллельные сглаживания для матричных геометрических многосеточных методов на локально уточненных сетках с использованием многоядерных процессоров и графических процессоров. Перед лицом многоядерности — вызов II Лекционные заметки по информатике, том 7174. 2012. стр. 158–171.
  26. 26. Георгий Дж., Вестерманн Р. Многосеточная структура для моделирования деформируемых тел в реальном времени. Вычислительный график. 2006. 30: 408–415.
  27. 27. Бастиан П., Винерс К. Многосеточные методы на адаптивно уточняемых сетках. Comput Sci Eng. 2006; 8: 44–54.curl-Conforming методы конечных элементов высокого порядка. SIAM J Sci Comput. 2011; 33: 2095–2114.
  28. 29. Анзт Х., Томов С., Гейтс М., Донгарра Дж., Хевелин В. Блочно-асинхронные многосеточные сглаживания для систем с ускорением на GPU. Процедуры Comput Sci. 2012; 9: 7–16.
  29. 30. Anzt H, Tomov S, Dongarra J, Heuveline V. Метод блочно-асинхронной релаксации для графических процессоров. J Parallel Distrib Comput. 2013; 73: 1613–1626.
  30. 31. Кронбихлер М, Корманн К.Общий интерфейс для приложения оператора конечных элементов на основе параллельных ячеек. Вычислительные жидкости. 2012; 63: 135–147.
  31. 32. Кронбихлер М., Корманн К. Быстрое безматричное вычисление разрывных операторов конечных элементов Галеркина. CoRR. 2017; абс / 1711.0. Доступно: http://arxiv.org/abs/1711.03590
  32. 33. Кэри Г.Ф., Цзян Б.Н. Поэлементные линейные и нелинейные схемы решения. Коммунальные методы числовых приложений. 1986; 2: 145–153.
  33. 34. Люнгквист К.Безматричный оператор конечных элементов на графических процессорах. 2014. С. 450–461.
  34. 35. Мартинес-Фрутос Дж., Эрреро-Перес Д. Эффективная безматричная реализация на графическом процессоре анализа методом конечных элементов фиксированной сетки. Finite Elem Anal Des. 2015; 104: 61–71.
  35. 36. Cai Y, Li G, Wang H. Схема решения на основе параллельных узлов для неявного метода конечных элементов с использованием графического процессора. Процедуры Eng. 2013; 61: 318–324.
  36. 37. Дик С., Георгий Дж., Вестерманн Р.Многосеточный метод конечных гексахэдров в реальном времени для моделирования упругости с использованием CUDA. Теория практической модели Simul. 2010; 19: 801–816.
  37. 38. Ривьер Б. Разрывные методы Галеркина для решения эллиптических и параболических уравнений. Общество промышленной и прикладной математики; 2008.
  38. 39. Круглова А., Роланд М., Дибелс С., Мюклих Ф. Комбинация экспериментальных и численных методов для определения механических характеристик сплавов Al-Si. IOP Conf Ser Mater Sci Eng.2017; 258: 012004.
  39. 40. Катани С., Зиаи-Рад С., Нури Н., Саейди Н., Кадходапур Дж., Торабиан Н. и др. Моделирование микроструктуры двухфазной стали с использованием СЭМ-микрофотографий и моделей поликристаллов Вороного. Металлогр Микрострукт Анал. 2013; 2: 156–169.
  40. 41. Роланд М., Круглова А., Гайзельманн Г., Бреретон Т., Шмидт В., Мюклих Ф. и др. Численное моделирование и сравнение реального сплава Al – Si с виртуально созданными сплавами. Arch Appl Mech. 2015; 85: 1161–1171.

Суждено следовать за Glide в могилу?

Mantle — это то, чего игровая индустрия не видела раньше, по крайней мере, долгое время. Самое близкое к Mantle, что может вспомнить любой из нас, — это, вероятно, «Glide» API от 3dfx Interactive. Если кто-нибудь помнит, 3dfx обанкротилась в 2002 году из-за неоднократных неудачных запусков GPU и сокращения поддержки Glide.

Многие люди предполагают, что Mantle встретит ту же кончину и в конечном итоге будет вытеснена OpenGL и Direct3D.Как вы скоро узнаете, провал Mantle не так вероятен, как провал Glide. Естественно, что люди скептически относятся к Mantle, поскольку Glide был таким похожим, но Mantle — это сила, с которой нужно считаться. Мантл не только сам по себе могущественнее, чем Glide, но и сталкивается с совершенно другим миром технологических возможностей.

Компания, стоящая за Voodoo и Glide, которая позже была поглощена NVidia.

Самое большое преимущество Mantle перед Glide — это рынок, на котором она родилась.Glide был создан, когда доступные видеокарты и компьютерные геймеры были намного реже. Мантл рождается в мире, который почти противоположен! APU и доступные видеокарты есть повсюду, и единственное, что требуется большинству компьютеров для воспроизведения последних игр, — это простая видеокарта (если это так, интегрированная графика улучшается).

В итоге: рынок оборудования для Mantle не только больше и доступнее, чем для Glide, но и для геймеров.Последнее большое преимущество Mantle перед Glide — это то, что она «открыта». Любой производитель графического чипа может добавить поддержку Mantle в свои чипы, и это не означает только nVidia! Это означает, что Intel, ARM, Qualcomm, Samsung, Texas Instruments и все остальные имеют равные возможности для добавления поддержки своих графических процессоров (вероятно, в дополнение к Direct3D 11 и OpenGL 4.0).

Компания, создавшая Mantle

Самый большой кирпич в ускорителе Mantle — это сама AMD.AMD не является болваном, когда дело доходит до внедрения новых технологий на массовом рынке, что продемонстрировали x86_64 и многие другие. В ситуации с 3dfx Glide запускала только свою собственную серию карт VooDoo. Mantle будет работать на новейшем кремнии AMD (и на кремнии конкурента, если он будет принят) где угодно, от сотовых телефонов до суперкомпьютеров.

Еще один фактор поддержки AMD Mantle — популярность оборудования, на котором оно уже гарантированно работает. APU и карты Radeon используются в настольных компьютерах, ноутбуках, серверах, планшетах, консолях и автомобилях.Даже если Mantle сократится на игровом рынке, его дальнейшее развитие будет поддерживаться другими рынками. Последним важным преимуществом AMD Mantle является отсутствие технологических недостатков по сравнению с Glide. На момент выпуска Glide у него были некоторые неудобные и досадные недостатки, такие как 16-битные ограничения цвета и отсутствие поддержки 2D-рендеринга.

Mantle может исправить многие из этих проблем.

Еще одним преимуществом Mantle является резкое снижение загрузки ЦП, что рынок действительно может использовать.

Рынок опережает Mantle

Как и компания, стоящая за Mantle, рынок впереди нее также сильно отличается от того, что видел Glide. На момент запуска у Glide не было такой поддержки разработчиков, как у Mantle, что, похоже, тесно связано с долей рынка. На момент запуска Glide на выбор было больше производителей графических процессоров, чем только nVidia и AMD. Другими словами, тогда конкуренция была намного сильнее, и рыночные доли каждой компании были намного меньше.Третье по величине рыночное отличие — предстоящий HSA от AMD. HSA в тандеме с Mantle может принести очень крутых улучшений в игровую индустрию. Для тех, кто не знаком с HSA, это еще один «открытый» стандарт, возглавляемый AMD. Короче говоря, это идея полной унификации ЦП и ГП для повышения эффективности, снижения энергопотребления и упрощения разработки приложений / игр.

Итак, Mantle имеет большие преимущества, которых у Glide в то время просто не было.Если Glide смог выжить в таких суровых условиях, будет очень весело наблюдать за тем, как Mantle будет жить в ближайшие годы.

Архитектура гетерогенных систем

будет поддерживаться Kaveri и, предположительно, APU AMD 2014 года

GPU: парадигма параллельной мощности для эволюционных вычислений.

GPU: парадигма параллельного питания для эволюционных вычислений.

по

Аннотация

Фок Ка Линг.Диссертация (M.Phil.) — Китайский университет Гонконга, 2005 г. Включает библиографические ссылки (листья 96-101). Тезисы на английском и китайском языках. Аннотация — стр. 1 Благодарность — стр. Iv Глава 1 — Введение — стр.1Глава 1.1 — Эволюционные вычисления — стр.1Глава 1.2 — Графический процессор — стр.2Глава 1.3 — Цель — стр.3Глава 1.4 — Вклад — — с.4Глава 1.5 — Организация диссертации — с.4Глава 2 — Эволюционные вычисления — с.6Глава 2.1 — Введение — с.6Глава 2.2 — Общая структура — стр.7Глава 2.3 — Особенности эволюционного алгоритма — стр.8Глава 2.3.1 — Широкое применение — стр.8Глава 2.3.2 — Параллелизм — — стр.9Глава 2.3.3 — Устойчивость к изменениям — стр.9Глава 2.4 — Параллельный и распределенный эволюционный алгоритм — стр.9Глава 2.4.1 — Глобальные параллельные эволюционные алгоритмы — стр.10Глава 2.4.2 — Детальные эволюционные алгоритмы — стр.11Глава 2.4.3 — Островные распределенные эволюционные алгоритмы — стр.12Глава 2.5 — Резюме — стр.14Глава 3 — Графический процессор — стр.15Глава 3.1 — Введение — стр.15Глава 3.2 — История GPU — стр.16Глава 3.2. 1 — Графические процессоры первого поколения — стр.16Глава 3.2.2 — Графические процессоры второго поколения — стр.17Глава 3.2.3 — Графические процессоры третьего поколения — стр.17Глава 3.2.4 — — Графические процессоры четвертого поколения — стр.17Глава 3.3 — Графическая конвейерная обработка — стр.18Глава 3.3.1 — Стандартный графический конвейер — стр.18Глава 3.3.2 — Программируемый графический конвейер — — п.18Глава 3.3.3 — Фрагментные процессоры для научных вычислений — стр.21Глава 3.4 — Аналогия GPU-CPU — стр.23Глава 3.4.1 — Архитектура памяти — стр.23Глава 3.4.2 — — Модель обработки — стр.24Глава 3.5 — Ограничение графического процессора — стр.24Глава 3.5.1 — Ограничение ввода и вывода — стр.24Глава 3.5.2 — Медленное считывание данных — — стр.24 Глава 3.5.3 — Отсутствие генератора случайных чисел — стр.25Глава 3.6 — Резюме — стр.25Глава 4 — Эволюционное программирование на GPU — стр.26Глава 4.1 — Введение — стр.26 Глава 4.2 — Эволюционное программирование — стр.26 Глава 4.3 — Организация данных — стр.29 Глава 4.4 — Оценка пригодности — стр.31 Глава 4.4.1 — Введение — стр.31Глава 4.4.2 — Различные формы фитнес-функции — стр.32Глава 4.4.3 — Параллельная оценка фитнес-функции с использованием графического процессора — стр.33Глава 4.5 — Мутация — стр.34Глава 4.5.1 — Введение — стр.34Глава 4.5.2 — Самоадаптивные операторы мутации — стр.36Глава 4.5.3 — Мутация на GPU — стр.37 Глава 4.6 — Выбор для замены — стр.39 Глава 4.6.1 — Введение — стр.39 Глава 4.6.2 — Классификация оператора выбора — стр.39 Глава 4.6.3 — q -Выбор турнира — стр.40Глава 4.6.4 — Медианный поиск — стр.41Глава 4.6.5 — Минимизация передачи данных — стр.43Глава 4.7 — Результаты экспериментов — стр.44Глава 4.7.1 — Визуализация — стр.48Глава 4.8 — Резюме — стр.49Глава 5 — Генетический алгоритм на GPU — стр.56Глава 5.1 — Введение — стр.56Глава 5.2 — Канонический генетический алгоритм — стр.57Глава 5.2.1 — Выбор родителей — стр.57Глава 5.2.2 — Кроссовер и мутация — стр.62Глава 5.2.3 — Замена — стр.63Глава 5.3 — Результаты эксперимента — стр.64Глава 5.4 — Резюме — стр.66Глава 6 — Многоцелевой генетический алгоритм — стр.70Глава 6.1 — Введение — — стр.70 Глава 6.2 — Определения — стр.71 Глава 6.2.1 — Общие MOP — стр.71 Глава 6.2.2 — Переменные решения — стр.71 Глава 6.2.3 — Ограничения — стр.71 Глава 6.2.4 — Возможная область — стр.72 Глава 6.2.5 — Оптимальное решение — стр.72 Глава 6.2.6 — Оптимум Парето — стр.73 Глава 6.2.7 — Парето Лицевая сторона — стр.73 Глава 6.3 — Многоцелевой генетический алгоритм — стр.75 Глава 6.3.1 — Ранжирование — стр.76 Глава 6.3.2 — Фитнес-шкала — стр.77 Глава 6.3 .3 — Сохранение разнообразия — стр.77Глава 6.4 — Многоцелевой генетический алгоритм ниши и элитизма на GPU — стр.79Глава 6.4.1 — Оценка объективных ценностей — стр.80Глава 6 .4.2 — Парное доминирование Парето и попарное расстояние — стр.81 Глава 6.4.3 — Назначение пригодности — стр.85 Глава 6.4.4 — Замена встроенного архивирования — стр.87 Глава 6.5 — Эксперимент Результат — стр.89Глава 6.6 — Резюме — стр.90Глава 7 — Заключение — стр.95 Библиография — стр.9

Темы: Эволюционное программирование (Информатика), Эволюционные вычисления, Компьютерная графика — Оборудование и материалы

Год: 2005

Идентификатор OAI: oai: cuhk-dr: cuhk_325321


GeRelion: параллельная реализация обработки криоЭМ-изображений одиночных частиц с помощью графического процессора

Abstract

КриоЭМ одиночных частиц представляет собой мощный и универсальный метод для характеристики структуры и функции макромолекул, выявляя структурные детали критически важных молекулярных механизмов внутри клеток.RELION — это широко используемое программное обеспечение для обработки ЭМ изображений, и большинство недавно опубликованных крио-ЭМ-структур одиночных частиц были созданы с помощью RELION. Из-за огромных вычислительных нагрузок и растущих требований к обработке гораздо больших наборов крио-ЭМ данных существует острая необходимость в ускорении обработки изображений. Здесь мы представляем GeRelion (https://github.com/gpu-pdl¬nudt/GeRelion), эффективную параллельную реализацию RELION в системе GPU. В тестах производительности с использованием двух наборов данных крио-ЭМ GeRelion на картах с 4 или 8 графическими процессорами превзошел RELION на 256 ядрах ЦП, продемонстрировав значительно улучшенную скорость и превосходную масштабируемость.Благодаря значительному ускорению крио-ЭМ структурного анализа одиночных частиц, GeRelion будет способствовать как определению структуры с высоким разрешением, так и анализу смешанных конформаций динамических молекулярных машин.

КриоЭМ одиночных частиц стала технологией, меняющей правила игры в структурной биологии, позволившей получить беспрецедентное понимание многих макромолекулярных машин в фундаментальных жизненных процессах 1, 2 . Благодаря непосредственному отображению биологических образцов, замороженных в буферных растворах, крио-ЭМ устраняет необходимость получения хорошо упорядоченных кристаллов, что является основным узким местом в традиционных кристаллографических методах определения структуры с высоким разрешением.Крио-ЭМ с одной частицей также может разделять смешанные конформации в одном образце с помощью вычислений, что значительно облегчает определение структур с высоким разрешением и анализ динамических молекулярных машин 3 .

В криоЭМ одиночных частиц молекулы, внедренные в стекловидный лед, принимают разные ориентации и генерируют различные двумерные (2D) проекционные изображения, так называемые частицы. Трехмерная (3D) реконструкция создается путем усреднения большого количества частиц в соответствии с их углами вращения и сдвигами в плоскости.Разрешение трехмерной реконструкции постепенно улучшается путем итеративного уточнения геометрических параметров каждой частицы 4 . Кроме того, сложные методы вычислений позволяют выбирать наиболее однородные частицы для достижения трехмерных реконструкций с высоким разрешением, а также разделять различные конформации в одном образце. В частности, RELION реализует байесовский подход и алгоритм максимального апостериорного анализа (MAP) и демонстрирует выдающуюся производительность в 3D-классификации и 3D-уточнении 5, 6 .Фактически, большинство недавно опубликованных одночастичных криоЭМ-структур было создано с использованием RELION. Однако вычислительные затраты на RELION очень высоки, а огромные вычислительные нагрузки практически ограничивают количество крио-ЭМ-частиц, которые можно регулярно анализировать. С развитием автоматического сбора электромагнитных данных и постоянно растущими требованиями к анализу большего количества частиц для достижения более высокого разрешения и для анализа смешанных конформаций возникает острая необходимость в ускорении обработки изображений 1, 7 .

Для ускорения вычислений многие программные пакеты EM, такие как SPIDER 8 , FREALIGN 9 , EMAN 10 и RELION 6 , реализуют параллельные вычисления на основе центральных процессоров (ЦП) и скорости увеличение зависит от количества доступных процессоров. В последнее десятилетие, благодаря развитию аппаратной архитектуры и модели программирования высокого уровня, графический процессор (GPU) широко использовался для ускорения трудоемких научных приложений, таких как обработка медицинских изображений 11 , биоинформатика 12 и машинное обучение 13 .Оснащенные тысячами процессоров в одном процессоре, современные графические процессоры обеспечивают огромную вычислительную мощность со значительно большей пропускной способностью памяти, чем многоядерные процессоры. Кроме того, соотношение цены и производительности GPU обычно выше, чем у CPU. Таким образом, GPU предлагает привлекательную альтернативу для параллельной реализации требовательных к вычислениям приложений обработки ЭМ изображений. О реализации GPU сообщалось для EMAN, FREALIGN и других программ 10, 14, 15 .Несмотря на то, что RELION чрезвычайно популярен в этой области в течение нескольких лет, он не был реализован в системе графического процессора, вероятно, из-за проблем с реструктуризацией сложного рабочего процесса для отображения вычислений на графическом процессоре. Во-первых, RELION использует грубое распараллеливание, которое несовместимо с мелкомасштабным распараллеливанием GPU. Во-вторых, структура данных в RELION предназначена для отдельных изображений, что приводит к прерывистой обработке нескольких изображений. В-третьих, RELION вводит два метода выборки, причем вторая выборка является разреженной и иногда с неопределенностью, что затрудняет реализацию на GPU.

Здесь мы представляем GeRelion, эффективную параллельную реализацию RELION с использованием системы с улучшенным графическим процессором. Наши тесты на двух наборах данных крио-ЭМ одиночных частиц показывают, что GeRelion с 4 или 8 графическими процессорами NVIDIA превосходит RELION, работающий на современном кластере ЦП с 256 ядрами ЦП. GeRelion демонстрирует практически линейную масштабируемость до 8 графических процессоров, протестированных в наших экспериментах, что указывает на большой потенциал для дальнейшего масштабирования на более крупных кластерах графических процессоров. В этой статье мы сообщаем о реализации GeRelion, результатах тестов производительности и детальной процедуре использования программы GeRelion.Эта новая параллельная реализация в системе с графическим процессором значительно повысит эффективность обработки ЭМ-изображений отдельных частиц и позволит проводить рутинный анализ гораздо больших наборов данных, тем самым облегчая определение крио-ЭМ-структур с высоким разрешением и анализ смешанных конформаций динамических молекулярных структур. машины.

РЕЗУЛЬТАТЫ

Профилирование RELION

RELION объединяет различные функциональные модули для обработки крио-ЭМ изображений одиночных частиц. Наша реализация сосредоточена на двух наиболее часто используемых и ресурсоемких функциях: 3D-классификация и 3D-уточнение.Чтобы распараллелить RELION на GPU, мы сначала проанализировали программу RELION, чтобы определить местонахождение горячих точек вычислений и идентифицировать шаблоны вычислений.

Математической основой RELION является байесовская статистика, а лежащий в основе алгоритм — метод максимизации ожидания (подробности в Online Methods ) 6 . Мы проанализировали распределение времени выполнения RELION в соответствии с программным каркасом RELION ( Дополнительный рис. 1 ). Общая процедура вычисления разделена на три этапа: ожидание, максимизация и другие.Шаг ожидания состоит из четырех основных подпрограмм: getFourierTransformAndCtfs (getImg), getAllSquaredDifferences (getDiff), convertAllSquaredDifferencesToWeights (преобразование) и storeWeightedSums (сохранение). Другой этап включает в себя обмен данными MPI, накладные расходы на чтение / запись данных и определенные задачи обработки данных на стороне хоста, такие как объединение файлов частичной 3D-реконструкции. Сначала мы использовали 8 ядер ЦП с параллелизмом MPI, чтобы оценить распределение времени выполнения RELION, запустив 3D-классификацию набора данных крио-ЭМ TRPV1 16 .Этот набор данных содержит 35 645 частиц размером 256 x 256 пикселей. Результаты показывают, что наиболее трудоемким шагом является ожидание, занимающее более 97% всего времени, в то время как максимизация и другие шаги занимают всего 0,4% и 2,1% соответственно (, рис. 1a, ). На этапе ожидания подпрограмма getDiff, которая вычисляет l2-норму алгоритма ожидания, является самой медленной частью. Такой же тест был проведен для другого набора крио-ЭМ-данных одиночных частиц для комплексов RAG 17 , который содержит 154 984 частицы размером 192 x 192 пикселей, что привело к аналогичной схеме распределения времени выполнения ( рис.1б ).

Рисунок 1. Распределение времени выполнения и масштабируемость RELION. ( a ) Распределение времени выполнения 3D-классификации набора данных TRPV1 (без симметрии) с использованием 8 ядер ЦП. Показаны распределения времени для трех шагов (ожидание, максимизация и другие) и четырех основных подпрограмм (getImg, getDiff, convert и store) на этапе ожидания. ( b ) То же, что ( a ), за исключением того, что 3D-классификация была проведена для набора данных RAG.( c ) Повышение скорости в 3D-классификациях набора данных TRPV1 с симметрией C4 и без него, а также набора данных RAG с использованием 8, 16, 32, 64, 128 и 256 ядер ЦП. Скорости 8 ядер ЦП использовались в качестве эталона для расчета увеличения скорости. ( d ) То же, что ( c ), за исключением увеличения скорости для шага ожидания.

Мы дополнительно оценили масштабируемость RELION с увеличением количества процессоров, проверив общее время выполнения и время на этапе ожидания.Мы провели трехмерную классификацию, используя набор данных TRPV1 с симметрией C4 и без нее, а также набор данных RAG. Скорость вычислений RELION на наборе данных TRPV1 линейно увеличивалась до 64 ЦП, но улучшение скорости значительно замедлялось с более чем 64 ЦП ( Рис. 1c ). Ограничение ускорения на базе ЦП было связано с существенно увеличенными временными пропорциями на максимальном и других этапах (, дополнительный рис. 2b, ). Накладные расходы на объединение файлов частичной 3D-реконструкции кажутся наиболее значительной частью на других этапах.Подавление ускорения с большим количеством процессоров оказалось менее серьезным в тестах на наборе данных TRPV1 без применения симметрии и на наборе данных RAG, который содержит более чем в 4 раза больше частиц набора данных TRPV1 ( Рис. 1c ). Это происходит из-за увеличения вычислительных нагрузок на самом медленном этапе ожидания, что частично уменьшило увеличение времени на максимизацию и другие этапы (, дополнительный рис. 2e, ). Действительно, для всех трех тестов ускорение шага ожидания было более линейным, чем ускорение общего времени выполнения ( рис.1д ). Чтобы устранить дополнительные узкие места на этапе максимизации и некоторые накладные расходы, которые значительно повлияли бы на масштабирование вычислений RELION, мы решили распараллелить все этапы в системе с графическим процессором.

Основываясь на вышеупомянутых тестах и ​​тщательном анализе программы RELION, мы классифицировали вычислительные задачи RELION на три категории: интенсивные вычисления, вычисление с использованием разреженных индексов и операция глобального сокращения. Были разработаны конкретные стратегии для параллельной реализации этих различных задач на GPU, как подробно описано в Online Methods .

Реализация GeRelion

Мы внедрили GeRelion, версию RELION с улучшенным графическим процессором, чтобы ускорить наиболее широко используемые функции: 3D-классификацию и 3D-уточнение («автоматическое уточнение»). Исходные коды RELION для чтения / записи данных и обмена данными MPI не изменены, а управление потоком прогрессивной обработки в исходном RELION сохраняется.

Богатый мелкозернистый параллелизм на уровне данных и эффективный доступ к памяти — два основных фактора, которые определяют производительность программы графического процессора.В этой работе мы разработали четырехуровневую параллельную модель для обработки крио-ЭМ-изображений одиночных частиц, чтобы использовать мощные вычислительные возможности графического процессора. На первом уровне изображения частиц делятся на набор пулов, которые распараллеливаются на отдельные графические процессоры, а количество пулов, обрабатываемых одновременно, равно количеству графических процессоров (, рис. 2а, ). На втором уровне изображения в одном пуле распараллеливаются на потоковые мультипроцессоры одного графического процессора ( рис.2б ). На третьем уровне рабочая нагрузка для одного изображения в одной ориентации будет назначена одному блоку потока ядра графического процессора, а степень параллельности этого уровня равна количеству обрабатываемых ориентаций ( Рис. 2c, ). На четвертом уровне обработка одного или нескольких пикселей назначается одному потоку в каждом блоке потока, и все пиксели в одном изображении частицы обрабатываются одновременно ( Рис. 2d, ). В GeRelion максимальная степень параллелизма равна nr_gpus * M * N * K, где nr_gpus, M, N и K представляют количество графических процессоров, количество изображений в одном пуле, количество обрабатываемых ориентаций и количество пикселей. в одном изображении частицы соответственно.

Рисунок 2. Многоуровневая параллельная модель GeRelion. ( a ) Распараллеливание нескольких пулов для нескольких графических процессоров. Изображения частиц разделены на набор пулов. Максимальная степень параллельности — это количество GPU: nr_gpus. (b) Распараллеливание нескольких изображений для потоковой передачи нескольких процессоров (SM) одного графического процессора. Максимальная степень параллельности — это количество изображений частиц в пуле: M. (c) Распараллеливание с несколькими ориентациями в блоки потоков (TB). Максимальная степень параллельности — это количество ориентаций, которое необходимо вычислить для изображения частицы: N. (d) Многопиксельное распараллеливание в потоки (T). Максимальная степень параллельности — это общее количество пикселей в одном изображении частицы: K. Следовательно, максимальная общая степень параллельности GeRelion равна nr_gpus * M * N * K.

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

Производительность GeRelion

Чтобы проверить производительность GeRelion и сравнить ее с исходным RELION, мы использовали две вычислительные системы (система 1 и система 2 в , таблица 1, ). Немодифицированный RELION работал в кластере только для ЦП с 256 ядрами ЦП, а GeRelion работал в кластере на основе графического процессора с 2 узлами, каждый из которых содержал 4 графических процессора и 12 ядер ЦП.

Таблица 1

Вычислительные системы, использованные для испытаний.

Сначала мы использовали набор данных TRPV1 для выполнения 3D-уточнения без или с симметрией C4, и сравнили время вычислений RELION и GeRelion. Результаты тестирования показывают, что общая скорость вычислений GeRelion на 4 графических процессорах аналогична скорости вычислений RELION на 256 ядрах ЦП, а GeRelion продемонстрировал почти линейное ускорение с использованием до 8 графических процессоров, что указывает на отличную масштабируемость реализации ( Рис. 3a. , 3с ). Увеличение скорости GeRelion в общем времени выполнения соответствует таковому на этапе ожидания ( Рис.3a, 3c ), чему, в свою очередь, способствовало аналогичное ускорение всех четырех основных подпрограмм на этапе ожидания ( Рис. 3b, 3d ). Мы замечаем дополнительное увеличение скорости выполнения в целом по сравнению с шагом ожидания ( Рис. 3a, 3c ), что связано со значительным ускорением на этапах максимизации и других ( Таблица 2, , Дополнительный Рис. 5 ). Чтобы доказать точность вычислений нашей реализации, мы также подтвердили, что 3D-реконструкции, созданные RELION и GeRelion, по существу идентичны ( Рис.3e, 3f ).

Рис. 3. Производительность GeRelion при трехмерном уточнении набора крио-ЭМ данных TRPV1. ( a ) Скорость вычислений RELION на 256 ядрах ЦП и GeRelion на 2, 4 и 8 графических процессорах. Трехмерное уточнение проводилось без применения симметрии. Скорость RELION использовалась в качестве эталона для расчета увеличения скорости GeRelion. ( b ) Скорость вычисления четырех основных подпрограмм шага ожидания в GeRelion, из тестов в ( a ). Скорости GeRelion на 2 графических процессорах использовались в качестве эталона для расчета увеличения скорости при использовании большего количества графических процессоров.( c ) То же, что ( a ), за исключением того, что 3D-уточнение было выполнено с симметрией C4. ( d ) То же, что ( b ), за исключением того, что 3D-уточнение было выполнено с симметрией C4. Все соответствующие времена выполнения перечислены в Таблице 2. ( e ) Трехмерные реконструкции TRPV1, созданные RELION (слева, оранжевым цветом) и GeRelion (справа, синим цветом). Обе карты были отфильтрованы с разрешением 3,6 Å и показывают практически идентичные особенности. ( f ) Кривые корреляции оболочки Фурье (FSC) золотого стандарта (оранжевые и синие) двух трехмерных реконструкций в ( e ) демонстрируют отличное перекрытие, а кривая FSC между этими двумя реконструкциями (зеленая) показывает Значения FSC 0.9 и 0,75 при разрешении 3,6 Å и пределе Найквиста соответственно. Это указывает на то, что две реконструкции, созданные RELION и GeRelion, по существу идентичны. Таблица 2

Время выполнения (в минутах) RELION и GeRelion в автоматическом уточнении и трехмерной классификации двух наборов криоЭМ-данных одиночных частиц.

Затем мы сравнили производительность GeRelion и RELION в 3D-классификации. Результаты очень похожи на результаты тестов 3D-детализации, демонстрируя отличную масштабируемость GeRelion с увеличением количества графических процессоров ( рис.4 ). Для набора данных TRPV1 GeRelion на 4 графических процессорах превзошел RELION на 256 ядрах процессора (, рис. 4a, ). Поскольку масштабируемость RELION на базе ЦП улучшается с более высокими вычислительными нагрузками на этапе ожидания ( рис. 1c, 1d ), для набора данных RAG со значительно большим количеством частиц для GeRelion потребовалось 8 графических процессоров, чтобы опередить 256 ядер ЦП. РЕЛИОН с питанием ( Рис. 4c ). Кроме того, мы также протестировали 3D-уточнение с использованием набора данных RAG и 3D-классификацию с использованием набора данных TRPV1 с симметрией C4.Время выполнения всех тестов в этой работе сведено в Таблица 2 . В совокупности наши обширные тесты производительности демонстрируют превосходное ускорение и масштабируемость GeRelion.

Рисунок 4. Производительность GeRelion в 3D-классификации. ( a ) Скорость вычислений RELION на 256 ядрах ЦП и GeRelion на 2, 4 и 8 графических процессорах, в трехмерной классификации набора данных TRPV1 без симметрии. Скорость RELION использовалась в качестве эталона для расчета увеличения скорости GeRelion.( b ) Скорость вычисления четырех основных подпрограмм шага ожидания в GeRelion, из тестов в ( a ). Скорости GeRelion на 2 графических процессорах использовались в качестве эталона для расчета увеличения скорости при использовании большего количества графических процессоров. ( c ) Скорости вычислений RELION на 256 ядрах ЦП и GeRelion на 2, 4 и 8 графических процессорах, в 3D-классификации набора данных RAG. Скорость RELION использовалась в качестве эталона для расчета увеличения скорости GeRelion. ( d ) Скорость вычисления четырех основных подпрограмм шага ожидания в GeRelion, из тестов в ( c ).Скорости GeRelion на 2 графических процессорах использовались в качестве эталона для расчета увеличения скорости при использовании большего количества графических процессоров. Все соответствующие времена выполнения перечислены в Таблице 2 .

ОБСУЖДЕНИЕ

RELION — это популярная программа обработки изображений в крио-ЭМ-области, с помощью которой было создано большинство недавно опубликованных одночастичных крио-ЭМ-структур с высоким разрешением. Однако вычисление на основе байесовской статистики в RELION очень дорогое, и в результате огромные вычислительные нагрузки ограничивают количество частиц в стандартных наборах данных по отдельным частицам значительно ниже одного миллиона.В связи с широко используемым автоматическим сбором данных и необходимостью анализа большего количества частиц для извлечения большей структурной информации из конкретного биологического образца, существует острая необходимость в значительном ускорении программ обработки изображений, таких как RELION 1 .

Здесь мы представили GeRelion, эффективную параллельную реализацию программы RELION на базе графического процессора. Чтобы использовать мощные вычислительные возможности системы GPU, мы разработали четырехуровневую параллельную модель и реструктурировали программу RELION, чтобы эффективно сопоставить эту параллельную модель с системой GPU.Полученная в результате реализация GeRelion демонстрирует значительное ускорение в тестах с двумя наборами крио-ЭМ данных и демонстрирует отличную масштабируемость с увеличением количества графических процессоров. Насколько нам известно, GeRelion представляет собой первое систематическое преобразование графическим процессором всех этапов вычислений в две наиболее широко используемые функции RELION: 3D-классификацию и 3D-уточнение.

Наши тесты показывают, что GeRelion, использующий 4 или 8 графических процессоров, превосходит RELION, использующий 256 современных ядер ЦП. Таким образом, для достижения аналогичной скорости вычислений более рентабельно приобретать и обслуживать пару узлов GPU, чем большой кластер CPU.В частности, один графический процессор NVIDIA K40m обеспечивает 1,43 т FLOPS (операций с плавающей запятой в секунду) для чисел с плавающей запятой двойной точности, а его цена составляет около 3000 долларов. Напротив, процессор Intel Xeon E5-2620 v2 поддерживает до 100,8 Гбайт FLOPS, а его цена составляет около 400 долларов за процессор. Если рассматривать стоимость памяти и других компонентов компьютерного узла, цены на 8 графических процессоров (2 узла) и 256 ядер ЦП (22 узла) составляют около 34 000 и 67 700 долларов США соответственно. На практике также намного проще построить и поддерживать пару узлов графического процессора, чем большой кластер ЦП.Кроме того, в регулярных вычислениях RELION используются данные с плавающей запятой двойной точности, что делает необходимым использование высокопроизводительных графических процессоров. Расчет с плавающей запятой одинарной точности реализован в RELION версии 1.4. Если вычисления с плавающей запятой одинарной точности могут удовлетворить требования обработки изображений, по крайней мере, при определенных обстоятельствах, оптимальным выбором будет использование графического процессора потребительского уровня в ценовом диапазоне 200-600 долларов, что аналогично цене графического процессора. шестиядерный процессор Intel Xeon.

Некоторые аспекты нашей текущей реализации GeRelion могут быть улучшены в будущем. Во-первых, можно увеличить степень параллельности подпрограммы getImg. В текущей реализации мы распараллелили только один пул изображений для каждого вызванного ядра, а количество по умолчанию, равное 8, недостаточно для графического процессора. Следовательно, на этом этапе мы можем распараллелить сотни или тысячи изображений и сохранить результаты в памяти графического процессора для следующей подпрограммы getDiff. Во-вторых, шаг максимизации может быть оптимизирован для больших частиц, например, с размером 512 или более пикселей.Из-за ограничений памяти графического процессора в настоящее время сложно выполнить функцию преобразования Фурье для очень больших частиц. В-третьих, гибридная реализация GPU-CPU может быть разработана для использования вычислительных возможностей CPU, которые поставляются с системой GPU, для дальнейшего повышения эффективности вычислений. В-четвертых, можно улучшить параллельное чтение / запись, что станет особенно важным для масштабирования в гораздо более крупных кластерах GPU.

Таким образом, GeRelion значительно ускоряет требующую больших вычислений 3D-классификацию и 3D-уточнение в RELION и демонстрирует большой потенциал для масштабирования увеличения скорости на более крупных кластерах графических процессоров.GeRelion значительно ускорит обработку гораздо более крупных наборов криоЭМ-данных одиночных частиц и, таким образом, упростит определение структуры с высоким разрешением, а также анализ смешанных конформаций в биологических образцах.

МЕТОДЫ

Методы и все связанные с ними ссылки доступны в онлайн-версии статьи.

ВКЛАД АВТОРА

M.L. и Д. задумал проект. Д.Л. и X. L. руководили проектом. H.S. и Д. разработал общую разработку GeRelion.H.S., W.W., X.D и D.L реализовали программу на GPU. H.S, W.W и M.L разработали тест и проанализировали результаты. М.Л., Д.Л. и Х.С. написал рукопись. Все авторы прочитали и одобрили окончательную рукопись.

КОНКУРЕНЦИЯ ФИНАНСОВЫХ ИНТЕРЕСОВ

Авторы заявляют об отсутствии конкурирующих финансовых интересов.

TRPV1 (C1), 8 процессоров

RAG, 8 процессоров

ОНЛАЙН МЕТОДЫ

Алгоритм RELION

RELION — это программный пакет с открытым исходным кодом для определения криоЭМ структуры одиночных частиц.Как и большинство существующих реализаций для обработки крио-ЭМ изображений, он использует так называемое приближение объекта слабой фазы, что приводит к следующей модели формирования линейного изображения в пространстве Фурье.

Где X ij j -я компонента, с j = 1,…, J 2D преобразования Фурье X i экспериментального изображения i , с i = 1,…, N. CTF ij — это j -й компонент передаточной функции контрастности для i -го изображения. V kl l -я компонента, с l = 1,…, L, трехмерного преобразования Фурье V k k th из K нижележащих структур в набор данных. Предполагается, что все компоненты V kl являются независимыми, с нулевым средним и распределенными по Гауссу с дисперсией P Φ представляет собой матрицу проецирования элементов размером J × L, N ij — шум в комплексе. плоскости, которая считается независимой, с нулевым средним и гауссовским распределением с дисперсией.

Возражение программного обеспечения для анализа крио-ЭМ изображений RELION состоит в том, чтобы найти модель с набором параметров Θ (включая все, и), которая имеет наибольшую вероятность быть правильной в свете как наблюдаемых данных X, так и априорной информации. Y. Согласно закону Байеса, это так называемое апостериорное распределение делится на две составляющие, представленные уравнением (2). Где правдоподобие P (X | Θ, Y) количественно определяет вероятность наблюдения данных, заданных в модели, а априорное P (Θ | Y) выражает, насколько вероятно, что этой модели дана априорная информация [16].Следует отметить, что большинство других методов в области Фурье нацелены только на оптимизацию P (X | Θ, Y).

Что касается RELION, априорной информацией является гипотеза гладкости крио-ЭМ реконструкций, а апостериорная информация предоставляется набором данных крио-ЭМ изображения. Выведенная оптимизация называется максимальной апостериорной оценкой (MAP). Оценка MAP — это наиболее вероятная модель, которая максимально использует данные при гауссовой предпосылке гладкости. RELION реализует итеративный алгоритм максимизации ожидания для оптимизации модели MAP 2.Итерационный алгоритм выражается формулами 3∼7. где в уравнении (6) — апостериорная вероятность присвоения класса k и присвоения ориентации ф для изображения i -го для данной модели на итерации n. Итерационный алгоритм начинается с модели начальной оценки V k . Пользователь контролирует количество одновременно дорабатываемых моделей K . Первоначальные оценки для и рассчитываются из спектров мощности исходной модели и отдельных частиц соответственно.В каждой итерации должна быть рассчитана апостериорная вероятность для всех изображений во всех возможных ориентациях и классе k . Основное вычисление происходит из вычисления нормы l 2 в уравнении (7).

Три режима вычислений RELION

В соответствии с инструкциями вычислений мы классифицировали вычислительные задачи RELION на три категории: интенсивные вычисления, вычисление разреженных индексов и глобальное сокращение ( Дополнительная таблица 1 ).В первой выборке «getDiff» будет вычислена норма l2 для всех изображений частиц и эталонных изображений CTF во всех возможных ориентациях. Для определения структуры с высоким разрешением часто требуются сотни тысяч или даже миллионы частиц и более тысячи ориентаций для поиска угла. Поверх них есть еще одна поисковая сетка смещения XY. Общие требования к вычислениям для «getDiff» будут превышать PetaFLOPs, процедура может считаться ресурсоемкой для вычислений.В Relion процесс второй точной выборки выполняется только в значимых ориентациях, определенных в первой выборке. Ориентацию можно считать значимой, если соответствующий вес больше порогового значения. По сравнению с общим количеством ориентаций количество значимых ориентаций относительно невелико. Шаблон вычисления — это вычисление разреженного индекса. Для вычисления взвешенной суммы в подпрограмме «store» операция суммирования всех изображений в формуле (3) и интегрирования соответствует решению дискретной суммы во всех значимых ориентациях.Оба они относятся к глобальной редукции для всех частиц и ориентаций. Точно так же путь выполнения «store» также зависит от того, является ли соответствующий вес значимым. Из-за разреженности матрицы весов процесс «хранения» является одновременно разреженным индексом и глобальным сокращением.

Реструктуризация RELION для реализации на GPU

Чтобы эффективно распараллелить вычисления RELION в системе GPU, мы реструктурировали программу в нескольких аспектах.

Разбиение и развертывание циклов

Философия программирования GPU заключается в развертывании циклов в ядрах.Как правило, простое ядро ​​разрабатывается на основе одного или нескольких циклов сегмента кода с одинаковой степенью параллельности: размером индекса цикла. В RELION подпрограммы состоят из нескольких уровней циклов, рабочая нагрузка в циклах разных уровней соответствует разным степеням параллельности. Например, подпрограмма «getDiff» состоит из трех уровней циклов, ориентации цикла, цикла частиц и цикла перевода. Подфункции getFref, applyCTFtoFref и calDiff находятся в этих трех циклах уровней соответственно.Это означает, что их параллельные степени не одинаковы. Эти рабочие нагрузки следует распараллеливать с помощью разных ядер графического процессора. Поэтому мы разделяем длинные циклы на несколько коротких циклов, в каждом из которых выполняется ключевая функция. Несмотря на развертывание цикла, мы можем разработать ядра для каждого короткого цикла, сопоставив рабочую нагрузку циклов различных уровней с многоуровневой моделью программирования графического процессора (, дополнительный рис. 3) .

Реорганизовать структуру данных

В исходной программе данные изображения различных частиц хранятся в отдельном пространстве памяти, что не соответствует принципу непрерывного доступа программирования графического процессора.Кроме того, чтобы сэкономить место в памяти, для проецирования и обратного проецирования адаптирована операция «на лету». В GeRelion мы реорганизуем данные изображения, собирая необработанные данные изображения различных частиц в большой массив в начале каждой итерации. На следующих этапах все входные данные генерируются из предыдущих ядер на GPU, что позволяет избежать подготовки входных данных для ядер и использует локальность между производителем и потребителем.

Построить платформу адаптивного параллелизма

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

Увеличить степень параллельности и степень параллельности

Согласно профилированию RELION, существует три основных режима вычислений. В GeRelion мы разрабатываем ядра для различных проходов отбора проб. Для первого прохода, учитывая, что большинство ориентаций действительны и существует хорошая локальность данных между всей сеткой сдвига XY, мы проектируем грубое ядро ​​для распараллеливания первого прохода getDiff путем увеличения параллельной детализации.Один поток используется для работы со всей сеткой сдвига XY, и данные эталонного изображения могут использоваться многократно. Для второй выборки, где значимых ориентаций очень мало, чтобы использовать достаточный параллелизм, мы разработали облегченное ядро, отдав приоритет степени параллельности и используя один поток для обработки только одного пикселя.

Преобразование разреженных вычислений в непрерывные процессы

Хотя вычисление разреженных индексов сложно и неэффективно для графического процессора, распараллеливание разреженных вычислений на основе графического процессора неизбежно для достижения высокопроизводительного графического процессора RELION.С одной стороны, судя по результатам профилирования, разреженные вычисления занимают определенную долю времени выполнения, особенно в трехмерной классификации. С другой стороны, если функции вычисления разреженных индексов остаются на стороне хоста, много промежуточных данных необходимо скопировать обратно в ЦП. Однако передача данных между CPU и GPU стоит дорого. В GeRelion мы преобразуем разреженные вычисления в непрерывный процесс, чтобы избежать расхождения в ядрах графического процессора. В нашей реализации мы собираем значимые веса всех частиц из разреженной матрицы весов в небольшой непрерывный вектор.Чтобы сохранить согласованность веса с соответствующим изображением и ориентацией, вводится вспомогательный вектор для хранения индексов весов в исходной разреженной матрице весов. Пример массива и вектора весов в CPU и GPU RELION показан на дополнительном рис. 4 . Как правило, глобальное сокращение выполняется на стороне хоста, даже несмотря на то, что накладные расходы на обратное копирование большой матрицы весов в ЦП являются дорогостоящими, и также необходим примитив блокировки для обеспечения правильности программы.Из-за возможного письменного конфликта при обратном проецировании 2D-срезов в 3D-пространство Фурье мы применяем атомарную операцию для реализации глобального сокращения.

Тесты производительности GeRelion

Мы использовали два набора крио-ЭМ данных для отдельных частиц, чтобы проверить производительность GeRelion в 3D-классификации и 3D-уточнении («автоматическое уточнение»). Наборы данных TRPV1 и RAG можно загрузить из архива экспериментальных изображений электронной микроскопии (https://www.ebi.ac.uk/pdbe/emdb/empiar/). Набор данных TRPV1 (EMPIAR-10005) содержит 35 645 частиц размером 256 x 256 пикселей.Для наших тестов мы использовали только частицы, усредненные по всем 30 кадрам фильма, чтобы создать карту с разрешением 3,6 Å. Продолжение 3D-обработки с использованием частиц, усредненных из кадров фильма № 3-16, позволило бы улучшить разрешение до 3,4 Å. Набор данных RAG (EMPIAR-10049) представляет собой комбинацию частиц SEC и PC и содержит 154 984 частицы размером 192 x 192 пикселей. В тестах 3D-классификации данные TRPV1 классифицируются на 3 класса, а данные RAG — на 6 классов.

В настоящее время GeRelion может поддерживать только командные строки для отправки заданий.Команды для запуска всех тестов GeRelion в этой работе перечислены ниже. «Node01» и «node02» — это имена хостов двух узлов графического процессора. «Relion_refine_mpi» — исполняемый файл GeRelion. GeRelion может работать на GPU или CPU, установив для параметра «модель» значение 1 или 0.

Команда автоматического уточнения TRPV1 без симметрии: mpirun —np 9 -N 5 —host node01, node02 relion_refine_mpi — o Refine_OPT_C1 / run8 -¬auto_refine —split_random_halves —i new_DFMerge_20.star —particle_diameter 160 —angpix 1.2156 —ref EMD-5778.mrc —firstiter_cc —ini_high 60 —ctf —ctf_corrected_ref —flatten_solvent —zero_mask —oversampling 1 —healpix_order 2 —auto_local_healpix_order 4 —offset_range 5 -¬offset_step sym C1 —low_resol_join_halves 40 —norm —scale —j 1 —memory_per_thread 8 —dont_combine_weights_via_disc —mode 1

Команда автоматического уточнения TRPV1 с симметрией C4: mpirun —np 9 -N 5 — -host node01, node02 relion_refine_mpi —o Refine_OPT_C1 / run8 -¬auto_refine —split_random_halves —i new_DFMerge_20.star —particle_diameter 160 —angpix 1.2156 —ref EMD-5778.mrc —firstiter_cc —ini_high 60 —ctf —ctf_corrected_ref —flatten_solvent —zero_mask — передискретизация 1 —healpix_order 2 —auto_local_healpix_order 4 — offset_range 5 -¬offset_step 2 —sym C4 —low_resol_join_halves 40 —norm —scale —j 1 —memory_per_thread 8 —dont_combine_weights_via_disc —mode 1

Команда 3D-классификации на TRPV1 без симметрии: mpirun — np 9 -N 5 —host node01, node02 relion_refine_mpi —o Class3D_OPT / run8 —i allimg.star —particle_diameter 180 —angpix 1.23 —ref 3D_relion_class001_shz-5.dat -¬firstiter_cc —ini_high 40 —ctf —ctf_corrected_ref —iter 25 —tau2_fudge 4 —K 6 —flatten_solvent —zero_mask — передискретизация 1 —healpix_order 2 —offset_range 5 —offset_step 2 —sym C1 -¬norm —scale —j 1 —memory_per_thread 8 —dont_combine_weights_via_disc —mode 1

Команда 3D-классификации на TRPV1 с C4 симметрия: mpirun —np 9 -N 5 —host node01, node02 relion_refine_mpi —o Class3D_OPT / run8 —i allimg.star —particle_diameter 180 —angpix 1.23 —ref 3D_relion_class001_shz-5.dat -¬firstiter_cc —ini_high 40 —ctf —ctf_corrected_ref —iter 25 —tau2_fudge 4 —K 6 —flatten_solvent —zero_mask — передискретизация 1 —healpix_order 2 —offset_range 5 —offset_step 2 —sym C4 -¬norm —scale —j 1 —memory_per_thread 8 —dont_combine_weights_via_disc —mode 1

Команда автоматического уточнения на RAG: mpirun —np 9 -N 5 —host node01, node02 relion_refine_mpi —o Refine3D_OPT / run8 -¬auto_refine —split_random_halves —i sizes_autopick_sort_class2d.star —particle_diameter 200 —angpix 3.54 —ref 3i3e_lp50A.mrc —firstiter_cc —ini_high 60 —ctf —ctf_corrected_ref -¬flatten_solvent —zero_mask —oversampling 1 —healpix_order 2 —auto_local_heal 4-offsetpix —offset_step 2 —sym D2 —low_resol_join_halves 40 —norm —scale —j 2 —memory_per_thread 4 —random_seed 1401784870 —dont_combine_weights_via_disc —mode 1

Команда 3D-классификации на RAG: mpirun — np 9 -N 5 —host node01, node02 relion_refine_mpi —o Class3D_OPT / run8 —i sizes_autopick_sort_class2d.star —particle_diameter 200 —angpix 3.54 —ref 3i3e_lp50A.mrc —firstiter_cc —ini_high 50 —ctf —ctf_corrected_ref —iter 25 —tau2_fudge 2 —K 4 -¬flatten_solvent —zero_mask — передискретизация 1 —healpix_order 2 —offset_range 3 —offset_step 2 ¬-sym C1 —norm —scale —j 1 —memory_per_thread 4 —dont_combine_weights_via_disc —mode 1

БЛАГОДАРНОСТИ

Авторы благодарны С. Шересу (MRC) за то, что поделился исходным кодом RELION, и хотел бы поблагодарить X. Zhu (Южный медицинский университет) за соединение двух исследовательских групп для начала этой совместной работы.Эта работа частично спонсируется Национальной программой фундаментальных исследований Китая (973) в рамках гранта № 2014CB340303, Национальным фондом естественных наук Китая в рамках гранта № 61222205 и № 61502509, Программа для выдающихся талантов нового века в университетах, и Образовательный фонд Фок Инь-Тонг (грант № 141066) и так далее.

Ссылки

  1. 1.↵
  2. 2.↵
  3. 3.↵
  4. 4.↵
  5. 5.↵
  6. 6.↵
  7. 7.↵
  8. 8.↵
  9. 9.↵
  10. 10.↵
  11. 11.↵
  12. 12.↵
  13. 13.↵

    Raina, R., Madhavan, A. & Ng, AY Крупномасштабное глубокое обучение без учителя с использованием графических процессоров . в Proc. 26-го Анну. Int. Конф. Мах. Learn.-ICML’09 873–880 (ACM Press, 2009). doi: 10.1145 / 1553374.1553486

  14. 14.↵
  15. 15.↵
  16. 16.↵
  17. 17.↵

FOK.nl / Reviews / Horizon: Zero Dawn (PC)

Sony продолжает свое наступление, предлагая предыдущие эксклюзивные игры для PlayStation на ПК, включая всеми любимую Horizon: Zero Dawn. Это не прошло бесследно: не все фанатики PS4 были готовы поделиться своей игрой с сообществом ПК. Но три года спустя чрезвычайно популярная RPG плюс все DLC наконец-то выходит на ПК, позволяя более широкой аудитории насладиться одной из лучших RPG этого поколения.

Во-первых, в этом обзоре основное внимание уделяется тому, насколько хорошо Horizon: Zero Dawn переведено на ПК и как игра технически сравнивается. Коллега ПоэХао уже говорил об этом Horizon: Zero Dawn , написанном, когда игра вышла (и дал ей редкую, идеальную 10), и игра вошла в наш топ-10 лучших игр 2017 года.То, что игра великолепна и многим нравится, не обсуждается в этом обзоре.

Сначала мои первые впечатления не были хорошими: Horizon: Zero Dawn У были проблемы с запуском при первой игре. Настройка выполняет процесс оптимизации, который проверяет ваше оборудование, чтобы настроить наилучшие параметры, и экран загрузки предупреждает, что это может занять некоторое время. Об этом нет ни слова: определенно требуется добрых десять минут, прежде чем игра рассчитает, какие настройки выбрать, и после этого игра также вылетала дважды, прежде чем первая кат-сцена была даже на картинке.Но с большим упорством я подошел к первой кат-сцене: также было значительное падение частоты кадров, из-за которого изображение сократилось до менее 20 кадров в секунду. Я подумал, что это не сулит ничего хорошего для остальной части порта.

Но как только вы берете себя в руки, проблемы исчезают, как снег на солнце, и я глубоко впечатлен тем, насколько хорошо игра оптимизирована. Даже с несколько более старым графическим процессором вы можете получить более 60 кадров в секунду, если установите высокие настройки (или, говоря словами игры, «любимое качество»).Когда вы переключитесь на 2K (2560 × 1440), вы заметите, что происходит падение примерно на 10 кадров, но даже тогда игра остается на уровне 30 кадров в секунду.

И это самое большое преимущество игры: Guerilla наконец-то выпустила ограничение частоты кадров, и игра явно стала лучше. Это остается клише, но это правда; многие игры просто выглядят плавнее и лучше с неограниченной частотой кадров, и Horizon: Zero Dawn не исключение.

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

Даже если вы не знаете, как достичь этих 60 кадров в секунду, вы все равно можете повозиться с игрой достаточно, чтобы повысить частоту кадров.Существует адаптивная частота кадров, при которой разрешение рендерится динамически для достижения желаемой частоты кадров, а масштаб рендеринга также можно отрегулировать, когда это вам больше нравится. И, конечно же, вы также можете настроить «традиционные» настройки, включая текстуры, качество моделей, анизотропные фильтры, тени, отражения в воде, облаках, сглаживание, размытие в движении и окружающее окклюзию. Удобная деталь заключается в том, что вы можете сразу увидеть различия в предварительном просмотре, если установите настройки выше или ниже.В любом случае, это более чем Death Stranding предлагает графические настройки — я недавно написал об этом обзор — и больший выбор всегда хорош, когда дело доходит до платформы, где оборудование одного игрока может резко отличаться от другого. . Вам по-прежнему нужна довольно крупная видеокарта: GTX 780 с 3 ГБ видеопамяти — это минимум, но в большинстве сборок среднего (и даже низкого) уровня теперь есть карта с сопоставимой вычислительной мощностью.

Тем не менее, в Horizon: Zero Dawn рекомендуется играть на ПК, который является более мощным компьютером: в дополнение к неограниченной частоте кадров, Guerilla Games улучшила игру графически.Между «оригиналом» (средний; исходная графика на PlayStation 4) и высоким есть огромная разница, когда оригинал на PlayStation 4 отображается на экране. И для этого даже не обязательно иметь очень хорошую видеокарту: моя GTX 970 легко могла бы иметь такую. Флора намного больше выращивается на высоте, и особенно визуализация на расстоянии выглядит намного лучше. В Ultimate разница с предыдущими настройками намного меньше, поэтому, если вы хотите продолжать играть на высоких мощностях, это абсолютно не наказание.

Элементы управления на клавиатуре и мыши также кажутся логичными и интуитивно понятными. Есть стандартный арсенал с C для наклонения и переключения боеприпасов с помощью цифровых клавиш, но мышь правда Horizon: Zero Dawn действительно большой выигрыш. Тем более, что Элой большую часть игры сражается с луком и стрелами, точность с мышью — это находка. С другой стороны, все еще есть что-то странное в том, чтобы постоянно нажимать W для движения вперед и использовать Shift для спринта — изящество джойстика здесь намного приятнее.

Несмотря на фальстарт в начале моего обзора и просадки частоты кадров, больше нечего сказать, что порт Horizon: Zero Dawn так же хорош, как и сама игра. Вам не нужен компьютерный зверь, чтобы играть в игру, и даже с некоторым старым оборудованием у вас будет достаточно, чтобы игра выглядела намного лучше графически, чем на PlayStation 4, с самым большим бонусом, заключающимся в том, что ограниченная частота кадров — это вещь мимо. И с клавиатурой и мышью, и с традиционным контроллером Horizon: Zero Dawn нормально играть.Это уже была фантастическая игра для PlayStation 4, но благодаря хорошей оптимизации, эта блестящая игра графически получает то немного больше, что может дать только ПК.

Specs ARCTIC Accelero S3 — Компоненты охлаждения компьютера пассивного кулера видеокарты NVIDIA / AMD (DCACO-V830001-GBA01)

Поддерживаемые процессорные сокеты *

Не поддерживается

Совместимая серия процессоров *

Не поддерживается

Совместимые продукты

AMD Radeon: R9 280, 270 (X), R7 265, 260 (X), 250 (X), 240, HD8950, 8870,8760,8740, 7870 (XT, ГГц), 7850, 7790, 7770 (ГГц), 7750, 7730 , 6950, 6870, 6850, 6790, 6770, 6750, 6670 (LP), 6570, 5850, 5830,5770, 5750, 5670, 5550 (OEM), 4890, 4870, 4850, 4830, 4770, 4730,4670, 4650 , 4550, 4350 (LP), 3870, 3850, 3690, 3650, 3470, 3450 NVIDIA GeForce: GTX 960, 760, 750 (Ti), 680, 670, 660 (Ti), 650 (Ti, Ti Boost), 560 (Ti, SE), 550 Ti, 465, 460 (SE), GTS 450, 250, 240 (OEM), GT 640, 630, 440,340, 330, 320, 240, 220

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *