Метод численного решения явных сеточных уравнений на графических процессорах и комплексы программ для его реализации тема диссертации и автореферата по ВАК РФ 05.13.18, кандидат наук Воротникова Дарья Геннадьевна

  • Воротникова Дарья Геннадьевна
  • кандидат науккандидат наук
  • 2016, ФГАОУ ВО «Самарский национальный исследовательский университет имени академика С.П. Королева»
  • Специальность ВАК РФ05.13.18
  • Количество страниц 121
Воротникова Дарья Геннадьевна. Метод численного решения явных сеточных уравнений на графических процессорах и комплексы программ для его реализации: дис. кандидат наук: 05.13.18 - Математическое моделирование, численные методы и комплексы программ. ФГАОУ ВО «Самарский национальный исследовательский университет имени академика С.П. Королева». 2016. 121 с.

Оглавление диссертации кандидат наук Воротникова Дарья Геннадьевна

Оглавление

1 Организация вычислений по явным разностным схемам на векторных процессорах

1. 1 Явные разностные схемы

1.1.1 Разностная схема для решения уравнения теплопроводности

1.1.2 Разностная схема для решения уравнений Максвелла

1.2 Обзор векторных алгоритмов решения сеточных уравнений

1.2.1 SIMD-вычисления и их аппаратные реализации

1.2.1.1 Классификация Флинна

1.2.1.2 Аппаратная реализация SIMD

1.2.1.3 Программная и архитектурная модели CUDA

1.2.2 Реализация FDTD-метода на суперкомпьютере серии CRAY

1.2.3 Реализация FDTD-метода при помощи технологии SSE

1.2.4 CUDA-реализации FDTD-метода

1.2.5 CUDA-реализации разностного решения уравнения теплопроводности

1.3 Способы записи и модели параллельных алгоритмов

1.3.1 Классификация Яна Фостера

1.3.2 Нотация Джеймса Ортеги для векторных алгоритмов

1.3.3 Нотация Джина Голуба для векторных алгоритмов

1.3.4 Нотация А.А. Валькаре

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

1.4.1 Актуальность задачи

1.4.2 Модель на основе временной сети Петри для алгоритма с короткими векторами

Выводы главы

2 Векторные алгоритмы разностного решения уравнения теплопроводности

2. 1 Алгоритмы с короткими векторами

2.1.1 Описание алгоритмов

2.1.2 Аппаратное и программное обеспечение

2.1.3 Постановка вычислительных экспериментов

2.2 Алгоритм с длинными векторами на основе операции gaxpy

2.2.1 Описание алгоритма

2.2.2 Постановка вычислительных экспериментов

2.3 Алгоритм с длинными векторами, основанный на повторном использовании попарных сумм

2.3.1 Описание алгоритма

2.3.2 Постановка вычислительных экспериментов

2.3.3 Моделирование вычислений

Выводы главы

3 Векторные алгоритмы разностного решения уравнений Максвелла

3. 1 Алгоритм с длинными векторами на основе операции gaxpy

3.1.1 Описание алгоритма

3.1.2 Постановка экспериментов

3.2 Алгоритм с длинными векторами для уравнения Даламбера, основанный на повторном использовании попарных сумм

3.2.1 Разностная схема для уравнения Даламбера

3.2.2 Описание алгоритма

3.2.3 Постановка вычислительных экспериментов

3.3 Рекомендации по использованию векторного метода

3.4 Внедрение

Выводы главы

Заключение

Список литературы

Введение

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

Рекомендованный список диссертаций по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Введение диссертации (часть автореферата) на тему «Метод численного решения явных сеточных уравнений на графических процессорах и комплексы программ для его реализации»

Актуальность темы

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

Так, хорошо известны параллельные алгоритмы для организации вычислений по явным разностным схемам [44]. Существует достаточно широкий круг задач (связанных, например, с решением некоторых уравнений гиперболического и эллиптического типов), где критерий устойчивости таких схем (например, критерий Куранта для схем Йи [74] при решении уравнений Максвелла) имеет ясный физический смысл и требование абсолютной устойчивости представляется в большинстве случаев избыточным.

Недавнее внедрение (в течении последних десяти лет) в широкую вычислительную практику векторных процессоров (типа SIMD по классификации Флинна [45]), представленных графическими картами (GPU, подтип SIMT), обусловило актуальность разработки специализированных векторных алгоритмов для них. К сожалению, расчеты по неявным схемам, сопряженные с необходимостью решать системы линейных алгебраических уравнений (СЛАУ) с матрицами ленточного вида, векторизуются весьма сложно. Джин Голуб в фундаментальной монографии «Матричные вычисления» [47] указывал на

невозможность векторизации прямых методов решения таких систем для случая узкой ленты. Векторные алгоритмы для итерационных методов (работа Дж. Ортеги «Введение в параллельные и векторные методы решения линейных систем» [23]) также не нашли широкого применения и хотя работы в этом направлении ведутся [12, 17, 77], говорить об их окончании преждевременно.

Вместе с тем, вычисления по явным сеточным уравнениям не связаны с необходимостью решения СЛАУ, что является их очевидным достоинством в плане векторизации. Учитывая, что ускорение расчетов на видеопроцессоре для удачного алгоритма может достигать двух порядков по сравнению с вычислениями на центральном процессоре (CPU) [77], ограничения на шаги сеточной области, свойственные явным схемам, уже не представляются определяющими при выборе типа разностного уравнения. Некоторое возрастание вычислительной сложности при переходе к явным схемам нивелируется высокой производительностью видеопроцессоров. Таким образом, построение численных методов и алгоритмов решения сеточных уравнений явных разностных схем, ориентированных на графические процессоры, становится сегодня актуальной задачей вычислительной математики.

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

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

Наконец, сложно найти доказательства актуальности разработанных алгоритмов более веские, чем в ходе сравнения их реализаций с уже существующими программными пакетами. Это соображение в купе с наличием изрядного количества упомянутых пакетов (OpenCurrent [101], B-CALM [73] и др.), появившихся в последнее время, свидетельствует об актуальности задачи разработки программных комплексов для реализации векторных методов решения сеточных уравнений явных разностных схем.

Степень разработанности

Проблема организации вычислений на векторных процессорах поднимается с конца 60-х годов прошлого века, со времени появления первого векторного компьютера ILLIAC IV [40]. С середины 70-х, после начала производства вычислительных машин серии Cray [61], отмеченная проблема занимает заметное место в вычислительной математике. Обобщению наработок 70-80-х годов в области векторных алгоритмов посвящены уже упомянутые монографии Ортеги [23] и Голуба [48]. К сожалению, акцент в них делается на решении СЛАУ, что пригодилось бы при разработке векторных алгоритмов решения сеточных уравнений неявных схем, но не всегда уместно для работы с явными. Так, в их совместной монографии «Scientific Computing and Differential Equations» [48] 1992 года про векторные алгоритмы для явных схем ничего не говорится.

Вычислению по явным схемам посвящены частные работы, касающиеся конкретных уравнений математической физики. Так, в 1996 году компания Cray опубликовала пособие «Performance of the CRAY multipricessors»[36], в котором приемы векторного программирования иллюстрируются примером применения FDTD-метода. Ту же явную схему Йи на суперкомпьютере Cray в 1998 году реализовали посредством векторного алгоритма авторы работы [54].

С бурным развитием персональных компьютеров в 90-е (когда неспециализированные процессоры стали обгонять векторные суперкомпьютеры прошлого по быстродействию) и банкротством компании Cray (связанным с этим развитием) интерес к векторным алгоритмам для суперкомпьютеров временно угас.

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

Например, в монографиях, посвященных разностному решению уравнений Максвелла, стало хорошим тоном приводить алгоритмы для организации векторных вычислений на видеокартах [56, 67]. Появилось множество коммерческих и свободно распространяемых пакетов, программно их реализующих (FDTD-solver (AccelwareLtd) [95], B-CALM [73], GSvit [96]). При этом использовались разнообразные языки и технологии программирования: ассемблер [63], Brook [53], CUDA [57] и др.

Все эти разработанные алгоритмы и программные комплексы (в том числе и для других уравнений математической физики, разностное решение которых реализовано, например, в пакете OpenCurrent [101] компании NVidia) можно отнести к «матричным» - в них сеточная область проецируется на двумерный массив вычислительных потоков, обрабатываемых видеопроцессором. Эта особенность либо непосредственно указывается в тексте публикации (например, [57]), либо о ней можно догадаться из анализа открытого кода программного

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

Модели архитектур вычислительных систем и алгоритмов, применительно к самой общей постановке задачи организации вычислений по произвольному численному методу на произвольной архитектуре, следует признать вполне разработанными. Они детально описаны в работах Воеводиных [3], Гергеля [7], Хорошевского [35] и др. Однако, являясь избыточно сложными для конкретной задачи моделирования решения явных сеточных уравнений на графических вычислительных устройствах, очевидно нуждаются в упрощении. Желательно с использованием экспериментально найденных характеристик (паспортные данные не всегда оказываются полезными) конкретных видеопроцессоров.

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

В соответствии с поставленной целью определены основные задачи диссертации:

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

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

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

4. Моделировать вычисления по сформулированным алгоритмам для оценки времени их исполнения.

5. Создать комплексы программ, реализующие разработанные алгоритмы, характеризующиеся переносимостью на разные операционные системы, простотой установки и использования по сравнению с известными аналогами.

Научная новизна работы

1. Разработанный численный метод решения сеточных уравнений явных

разностных схем, основанный на векторном представлении сеточных функций, позволил использовать графические процессоры как векторные ЭВМ.

2. Синтезированный алгоритм, основанный на канонической форме записи

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

3. Векторный алгоритм, основанный на повторном использовании попарных

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

4. Предложенная методика моделирования работы обоих алгоритмов

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

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

Теоретическая и практическая значимость работы

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

Применение предложенной методики моделирования вычислений по векторным алгоритмам решения явных сеточных уравнений на видеокарте дает возможность оценки ускорения вычислений без программной реализации алгоритмов. Следовательно, возможность предварительного выбора наилучшего по длительности вычислений алгоритма, его параметров и видеокарты. Практическую значимость имеют два разработанных программных комплекса, обеспечивающих ускорение вычислений по сравнению с пакетом OpenCurrent компании Nvidia (при разностном решении уравнения теплопроводности) и пакетом B-CALM Калифорнийского технологического института (при разностном решении уравнений Максвелла).

Методология и методы исследования

Первая методика построения векторных алгоритмов заключается в приведении явной разностной схемы к канонической форме с последующей реализацией операции gaxpy (general alpha x plus y) через сложение и покомпонентное произведение векторов с учетом диагональной структуры матрицы канонической формы.

Вторая методика построения основана на формировании дополнительного вектора, хранящего все попарные суммы дифференциальных шаблонов с последующим использованием операций сложения векторов и saxpy (scalar alpha x plus y).

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

На защиту выносятся:

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

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

3. Аналогичный предыдущему алгоритм для разностного решения уравнения Даламбера.

4. Векторный алгоритм разностного решения уравнений Максвелла, реализующий операции gaxpy с матрицами ленточного вида.

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

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

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

Степень достоверности и апробация результатов

Достоверность полученных результатов подтверждается соответствием результатов моделирования и и экспериментальных данных для предложенных векторных алгоритмов, а также сравнением с существующими программными реализациями (OpenCurrent и B-CALM).

Результаты, полученные в диссертации, представлялись на Sino-Russia Bilateral Scientific Seminar on Diffractive Optics and Nano-Photonics (2012, Shanghai, China), 13th International Conference on Computational and Mathematical Methods in Science and Engineering (2013, Almeria, Spain), 14th International Conference on Mathematical Methods in Science and Engineering (2014, Cádiz, Spain), Национальный Суперкомпьютерный Форум (2014, Переславль-Залесский, РФ), 15th International Conference on Mathematical Methods in Science and Engineering (2015, Cádiz, Spain), Международной конференции "Информационные технологии и нанотехнологии" (2015, Самара, РФ), а так же совместных семинарах кафедры «Техническая кибернетика» и ИСОИРАН.

1 Организация вычислений по явным разностным схемам на векторных

процессорах 1.1 Явные разностные схемы

Большая часть математических моделей физических явлений находит выражение в виде дифференциальных уравнений в частных производных эллиптического, гиперболического или параболического вида. К настоящему времени важным численным методом решения таких уравнений является метод сеток (конечно-разностный подход, методы конченых и граничных элементов). Первый из указанных основан на аппроксимации производных конечными разностями [27]. Принято различать явные и неявные схемы по способу выражения сеточной функции на искомом временном слое (для нестационарной задачи). Как правило, для параболических уравнений такие схемы характеризуются «жестким» критерием устойчивости, обуславливающем в прошлом предпочтение исследователями неявных схем явным. Однако в настоящее время с развитием векторных процессоров (параграф 1.2) указанное превосходство неявных схем над явными нивелируется [46] в силу простоты векторизации вычислений по явным разностным схемам. Действительно, несмотря на большую вычислительную сложность (количество арифметических операций), характеризующую явные схемы при достижении той же точности по сравнению с неявными в случае жесткого критерия устойчивости, длительность вычислений по ним на векторных процессорах зачастую ниже. Это же утверждение, тем более, верно и при разностном решении уравнений гиперболического и эллиптического типа, ведь критерий устойчивости для явных схем там менее жесткий.

В настоящей работе в качестве области применения авторских метода, алгоритмов и программных комплексов, выбраны двумерное нестационарное уравнение теплопроводности (как классический случай, широко распространенный в учебной литературе) и система уравнений Максвелла (как

основная модель вычислительной нанафотоники [76], электродинамики [68] и т.п.).

1.1.1 Разностная схема для решения уравнения теплопроводности

Рассмотрим разностное решение двумерного однородного линейного нестационарного уравнения теплопроводности [26]:

д и 2ТТ *2ттЛ

д t

a

д 2 U д 2U -+-

д x2 д /

(1)

V ^ x ^ y J

где U(t,x,y) — распределение температуры в пространстве и времени, x е [0, X], y е [0, X], t е [0,T], a — коэффициент температуропроводности, область квадратная. Пусть граничные условия соответствуют условиям Дирихле (температура на границах области равна нулю), а начальное условие имеет вид U(0, x, y) = f(x, y). Решением задачи будем считать нахождение U(T, x, y).

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

Предваряя построение разностной схемы наложим на вычислительную область сеточную с шагами по пространству (постоянными) h = hx = hy = X/(N + 1) и времени т = T / K :

Dh = {tn,xm,yk): xm = mh, yk=kh, tn=nt, m = 0, N +1, k = 0, N +1, n = 1, K}, где K —

количество шагов по времени, N*N — размер сеточной области на одном слое по времени, исключая границы,

Следуя [19] заменим в (1) частные производные их разностными аналогами и получим следующую, хорошо известную, явную разностную схему:

Un + 1- Un , m,k m,k

----— = a

(

Un . b-2Unb+U"b U\ 1 -2Un , + Un 7 Л m-1, k m,k m + 1, k + m,k-1 m,k m,k + 1

h2 h2

V

которую для проведения расчетов удобно представить в виде:

ип+} = а(ип

ш,к 1

+ и.

п

-4ип , +Ш.

п

-4 , +Шп )+Шп а = — (2)

ш,к-1 ^ ш-1, к ш,к ^ш+1, к ш,к+1/ ш,к' ^ '

И 2

Далее при построении векторного алгоритма автор остановился на каноническом представлении академика А.А.Самарского, которое он сформулировал в [26] для исследования устойчивости:

' Т В1 В1 т2 В2

и

п+1

Аип, где А

ВЫ - 2 ТЫ-1 ВЫ-1 ВЫ-1 ты

(3)

где ип вектор, полученный из матрицы, хранящей значения сеточной функции на п-ом слое по времени чередованием строк

ип = (иП,и"2,...и"м,и...и-* 1 >ипы,ы 1 . В силу равенства коэффициентов при

ипк

ип+ ,и"1Л ,и111,и+11 в (2) матрица А — симметричная, блочная трехдиагональная;

В^ (1 = 1,N -1) — диагональная, хранящая коэффициенты при и.я ,и 1]+1 , а Т

(1 = 1, N) — трехдиагональная, в которой на главной диагонали хранятся коэффициенты при и"к, и при и"-1к,иЩг+1к на первой и минус первой

диагоналях.

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

Хорошо известны [26] порядок аппроксимации схемой (2) уравнения (1) -

о(т,И2) и условие устойчивости разностной схемы < -1-.

И2 2а

1.1.2 Разностная схема для решения уравнений Максвелла

Рассмотрим двумерный вариант ЕБТБ-метода, широко применяемого в дифракционной нанофотонике [76], вычислительной электродинамике [68] и в других областях, касающихся исследования распространения электромагнитного

излучения. В двумерном случае распространение ТМ-волны в свободном пространстве соответствует системе уравнений Максвелла [68]:

д Ну д Ех

мп-=--,

0 д г д 2

д Н д Ех д г д у

д Ех д Н д Ну

£0-=---,

д г д у д 2

где Ех, Ну, Н2 - проекции векторов напряженностей электрического и магнитного полей в декартовой системе координат, ^о, е о - магнитная и электрическая константы.

Определим вычислительную область О (0<г<Т, 0<у<Ьу, 0<2<Ь2), граничные условия Дирихле Ех(г, у, 0)=0, Ех(г, у, Ь2)=0, Ех(г, 0, 2)=0 и Ех(г, Ьу, 2)=0, начальное условие Ех(0, х, у)=ф(х, у). Особенности далее построенной сеточной области позволяют не формировать начальные и граничные условия для проекций магнитного поля при реализации вычислений.

Наложим на О сеточную область Он. В этом случае проекцию Ех определим в узлах {(гп, ут, 2к): гп=пк(, п=0, 1, ..,К=Т/ИЬ ут=тНу, т=0, .., Ы=Ьу/ку, 2к=кИ2, к=0, .., N^2^2}, проекцию Ну - {(гп+0,5, ут, 2к+0,5): гп+0,5=(п+0,5)Иг, п=0, 1, .., К-1, ут=тНу, т=1, .., М-1, 2к+0,5=(к+0,5)И2, к=0, .., N-1}, проекцию Н2 - {(гп+0,5, ут+0,5, 2к): гп+0,5=(п+0,5)кь п=0, 1, .., К-1, ут+о,5=(т+0,5)Ну, т=0, .., М-1, 2к=кН2, к=1, .., N-1}. Целью введения промежуточных слоев по времени и пространству (п+0,5, т+0,5, к+0,5) по замыслу Кейна Йи [2] являлось увеличение порядков аппроксимации за счет перехода к центральным разностям.

В предложенной области индексы т, к обозначают узлы по пространству, п -по времени. Расстояния между узлами задаются пространственными (Ну и И2) и временным (Нг) шагами сетки. Тогда явная разностная схема Йи для системы уравнений (4) выглядит как:

Иу"+1/2 - Ну"'12 Ехп - Ехп

У ш,к+1/2 У ш,к+1/2 __ш,к+1 ш,к

И и ,

? г

Игп+и2 - игп-1 /2 Ехп - Ехп

ш+1/2,к ш+1/2,к ш+1,к ш,к -;-=-;-, (5)

И Иу

Ехп+1к - Ехпк Их"1"к - Их"1!*к Иуп+!'22 - Иу "+к1/2 2

„„ ш,к ш,к __ш+1/2,к ш 1/2,к Уш,к+1/2 У ш,к 1/2

ее°-----.

ИИ И

t у г

( 2 2 2 I И ,Иу,иг )

у— и

/ 2 2

устойчива при условии И^ 1/ Иу +1/ Иг < 1/ с, где с — скорость света в свободном пространстве [68].

При записи схемы автор использовал следующую каноническую форму (3) для схемы Йи и на ее основе записал (5) в виде:

Иуп+1'2 = а АЕхп + Иу"'112, (6а)

Их"+1/2 = а2 ВЕх" + Иг"-1"2, (6Ь)

Ех"+1 = 61СИу"+112 + 62 ОИх"+1/2 + Ех", (6с)

И И а И а И "

где а1 =—-—,а2 =—-—,61 =--—,62 =--—. Ех - вектор, полученный из

/и°И2 /и°Иу £°И2 е°Иу

матрицы, хранящей значения сеточной функции Ех" ^ на "-ом слое по времени,

чередованием ее строк Ех" = (ех"°,Ех°1 ,...Ех" ы.-Ех^ы-1 Ех^ыТ . Таким же

образом образованы вектора Иу"+1/2 и ИХг+1/2 из соответствующих матриц, хранящих значения сеточных функций

Иу =\ИУ1,°,5 »Иу \,\,5 >..., Иу 1, N-°,5»Иу 2,°,5 >..., ИУм 1, N-°,5 / и

ти "+1/2 (тт "+И2 тт "+1/2 и "+1/2 и "+1/2 ^ "+1/2 Т лл о

Иг = \Их°,5,1 - Их1,5,1 »...»ИхМ-°,5,1-Их°,5,2 »...»ИхМ-°,2,N-1- ) . Матрицы А и В

составлены из коэффициентов при сеточной функции Ех" ^ и нулей. Аналогично составлены С и О - из коэффициентов при ИyШнk1-15/5, Их"-1/^ и нулей.

Продемонстрируем на примере состоятельность данного подхода к записи сеточных уравнений, рассмотрев случай М=4, N=4, тогда (6) примет вид:

Ну

п+1/2

/о О О 0;-11 о О 'ооо 0:0 -11 о о о о о:о о -и

0 0 0 0 о" о о "б 00000000 00000000

V

0000000 о\ 00000000 00000000 -11 "о б I о о о о о -11 о:о о о о , о о -и:о ооо/

/ЕХ(1)\

' Ех(2) Ех(3)

+

' Ну(2)

\Ну(б)/

ш

и+1/2

а

/о ■ -1 о 001 о:о ооооооо о\ I о:о-юоо ^ оооооооо о1 О О'б'О 0--10 0 0 10^0 0000 ооооо |о-ю 001 ;0 оооо \ о о о о о ТГ0"0"ТР-Тб""о о" 1 о:о \oooooooooio -10 0 0 1:0/

/Ех(1)\ Ех(3)

у Е\(15)

У41Й)/

+

Щ2)

\Нг(б)У

Ех

п+1

.и+1/2 1,0.5

а

1 ( ЕхИ,о +ЕхИд )+ЯуИ0152

Так, Иу"+112 (1) = а1 (Ехи (5) + Ехп (б))+ ИупАП , т.е. Иуп{

что соответствует скалярному представлению (5).

Специфическое представление матриц в последнем примере объясняется тем, что вектор Ехп содержит также и нулевые граничные значения. В силу того, что значение на границе неизменно равно нулю (а также только часть граничных элементов участвует в нахождении новых значений векторов Иуп+12 и И2п+1/2), в матрицах Си В (6с) появляются нулевые строки между блоками, в первых и последних строках матриц, а блоки матриц А (6а) и В (6Ь) обрамлены нулевыми элементами с правой и левой сторон.

1.2 Обзор векторных алгоритмов решения сеточных уравнений

1.2.1 $>!МВ-вычисления и их аппаратные реализации 1.2.1.1 Классификация Флинна Наиболее известной классификацией архитектур вычислительных систем является классификация Флинна [45], предложенная в 1966 году. Основным понятием данной классификации являются потоки команд и данных, которые обрабатывает процессор.

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

Таблица 1.1 - Классификация ЭВМ по Флинну

Один поток команд Несколько потоков команд

Один поток данных Однопроцессорная ЭВМ SISD (single instruction -single data) Конвейерная ЭВМ MISD (multiple instruction -single data)

Несколько потоков данных Векторная ЭВМ SIMD (single instruction -multiple data) Многопроцессорная ЭВМ MIMD (multiple instruction -multiple data)

В интересующих нас векторных 81МБ [79] архитектурах присутствует один поток команд и множество потоков данных, что позволяет выполнять одну арифметическую операцию сразу над многими данными - элементами вектора или матрицы. Способ выполнения векторных операций в модели Флинна не оговаривается, поэтому обработка элементов вектора может производится либо процессорной матрицей, как это было в 1ЬЫЛС IV [4°], либо с помощью векторного конвейера, как, например, в машине СЯЛУ-1 [61].

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

несколько арифметико-логических устройств (рисунок 1.1), что позволяет выполнять одну команду над несколькими областями памяти одновременно. Таким образом, один поток команд определяет действия над несколькими потоками данных.

Похожие диссертационные работы по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Список литературы диссертационного исследования кандидат наук Воротникова Дарья Геннадьевна, 2016 год

Список литературы

1. Антонов, А.С. Параллельное программирование с использованием технологии OpenMP: Учебное пособие/ А. С. Антонов - М.: Издательство МГУ, 2009. - 77 с.

2. Боресков, А. В. Основы работы с технологией CUDA / А. В. Боресков, А. А. Харламов. - М.: ДМК Пресс, 2010. - 232 с.

3. Воеводин, В. В. Отображение проблем вычислительной математики на архитектуру вычислительных систем // Вычислительные методы и программирование. - 2000. - Т.1, № 3. - С. 37-44.

4. Воеводин, Вл. В. Курс лекций «Параллельная обработка данных». Система параллельного программирования Linda. 2009.

URL: http://parallel.ru/vYv/lec7.html (дата обращения 01.02.2016)

5. Воротникова, Д. Г. Моделирование вычислений на GPU по разностным схемам / Д.Г. Воротникова, А.В. Кочуров, Д.Л. Головашкин // Компьютерная оптика. - 2015. - Т. 39, № 5. - С. 802-808.

6. Воротникова, Д.Г. Алгоритмы с «длинными» векторами решения сеточных уравнений явных разностных схем / Д.Г. Воротникова, Д.Л. Головашкин // Компьютерная оптика. - 2015. - Т. 39, № 1. - С. 87-93.

7. Гергель В. П. Теория и практика параллельных вычислений: учебное пособие /В. П. Гергель. - М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2007. - 423 с.

8. Гернштейн, А.В. Устойчивые явные схемы для уравнения теплопроводности / А.В. Гернштейн, Е.А. Гернштейн, Н.Машрабов // Матем. Моделирование и Программирование. - 2008. - Т. 1. - С. 9-11.

9. Головашкин, Д.Л. Совместное разностное решение уравнений Даламбера и Максвелла. Двумерный случай / Булдыгин Е.Ю., Головашкин Д.Л., Яблокова Л.В // Компьютерная оптика. - 2014. - Т.38, № 1. - С. 20-27.

10. Горобец, А.В. Технология распараллеливания явных высокоточных алгоритмов вычислительной газовой динамики и аэроакустики на неструктурированных сетках / А.В. Горобец, Т. К. Козубская // Матем.

Моделирование. - 2007. - Т.19, №2. - С. 68-86.

11. Деги, Д.В. Реализация явной разностной схемы для решения двумерного уравнения теплопроводности на графическом процессорном устройстве с использованием технологии CUDA / Д.В. Деги, А.В. Старченко, А. А. Трунов. // Научный сервис в сети Интернет: суперкомпьютерные центры и задачи: Труды Международной суперкомпьютерной конференции (20-25 сентября 2010 г., г. Новороссийск). - М.: Изд-во МГУ, 2010. - С.346-348.

12. Жидков, Е.П. Векторные алгоритмы для решения трехмерных нелинейных задач магнитостатики / Е.П. Жидков, М. Б. Юлдашева, О. И. Юлдашев // Матем. Моделирование. - 1994. - Т.6, № 9. - С. 99-116.

13. Жуков, А.Т. Параллельный многосеточный метод для решения эллиптических уравнений / А.Т. Жуков, Н. Д. Новикова, О. Б. Феодоритова // Матем. Моделирование. - 2014. - Т.26 №1. - С. 55-68.

14. Зори, С.А. Использование вычислительных возможностей графических систем для организации визуализации трехмерных сцен с использованием технологий объемного отображения / С.А.Зори // Известия ЮФУ. Технические науки . 2014. T.4, №153. URL: http://cyberleninka.ru/article/n/ispolzovanie-vychislitelnyh-vozmozhnostey-graficheskih-sistem-dlya-organizatsii-vizualizatsii-trehmernyh-stsen-s-ispolzovaniem (дата обращения: 01.03.2016).

15. Куцев, А.Р. Моделирование нестационарного процесса сопряженного теплообмена горного массива и рудничного воздуха с применением высокопроизводительных вычислительных систем / А.Р. Курцев. // Сборник трудов международной научной конференции «Параллельные вычислительные технологии 2013» (Южно-Уральский государственный национальный исследовательский университет, 1-5 апреля 2013 г.). - Челябинск, 2013. - С.439-448.

16. Лельчук, Т.И. Язык описания функциональной архитектуры вычислительных систем (Модель и общие принципы) / Т.И. Лельчук, А.Г. Марчук // Новосибирск: Препринт ВЦ СО АН СССР, JS 258. - 1981. - 19 с.

17. Логанова, Л.В. Моделирование и анализ эффективности согласования

численных методов решения сеточных уравнений с гетерогенной вычислительной средой: дис. ... канд. техн. наук: 05.13.18/ Логанова Лилия Владимировна. -Самара, 2015. - 205 с.

18. Логанова, Л. В. Параллельный алгоритм реализации метода встречных циклических прогонок для двумерных сеточных областей / Д. Л. Головашкин, Л. В. Логанова // Вычислительные технологии. - 2011. - Т.16, № 4. - С.64-71.

19. Марчук, Г. И. Проблемы вычислительной техники и фундаментальные исследования /Г. И.Марчук, В. Е.Котов // Автоматика и вычислительная техника.-1979. - Т.2. - С. 3-14.

20. Неганов, В.А. Линейная макроскопическая электродинамика. Том 1 / В.А.Неганов, С.Б.Раевский, Г.П.Яровой. - М: Радио и Связь, 2000. - 512 с.

21. Оленев, Н.Н. Основы параллельного программирования в системе MPI / Н.Н. Оленев. - М.: ВЦ РАН, 2005. - 80 с.

22. Орлов, С. А. Организация ЭВМ и систем: Учебник для вузов. 2-е изд / С.А. Орлов, Б.Я. Цилькер — СПб.: Питер, 2011. — 688 с.

23. Ортега, Дж. Введение в параллельные и векторные методы решения линейных систем / Дж. Ортега - пер. с англ. - М.: Мир, 1991. - 368 с.

24. Поляков, С.В. Параллельный программный комплекс для решения задач механики сплошной среды на современных многопроцессорных системах / С. В. Поляков, Т. А. Кудряшова, А. А. Свердлин, Э. М. Кононов, О. А. Косолапов // Матем. Моделирование. - 2010. - Т.22, № 6. - С. 132-146.

25. Пятибратов, А.П. ЭВМ, МИНИ - ЭВМ и микропроцессорная техника в учебном процессе / А.П. Пятибратов, А.С. Касаткин, Р.В. Можаров.- М: Изд-во МГУ, 1997. - 127 с.

26. Самарский, А. А. Введение в теорию разностных схем / А. А. Самарский -М.: Наука, 1971. - 552 с.

27. Самарский А. А. Методы решения сеточных уравнений. / А. А. Самарский, Е.С. Николаев. — Москва: Наука, 1978. — 592 с.

28. Самарский, А. А. Теория разностных схем. - М.: Наука, 1977. — 656 с.

29. Самарский, А. А. Численные методы решения обратных задач

математической физики / А.А. Самарский, П.Р. Вабищевичю - М: ЛКИ, 2009, -480 с.

30. Самарский, А.А. Численные методы / А.А. Самарский А.В. Гулин. -М.: Наука, 1989, - 432 с.

31. Самарский, А. А Устойчивость разностных схем / А.А. Самарский, А.В. Гулин. - М., «Наука», 1973, - 415 с.

32. Сандерс, Дж. Технология CUDA в примерах. Введение в программирование графических процессоров / Дж. Сандерс, Э.Кэндрот. - ДМК Пресс, 2011. - 232 с.

33. М. Мини-ЭВМ PDP-11: Программирование на языке ассемблера и организация машины — М.: Мир, 1984. — 272 с.

34. Смирнов, А. Д. Архитектура вычислительных систем: Учебное пособие для вузов / А.Д. Смирнов — М.: Наука, 1990. — 320 с.

35. Хорошевский, В. Г. Архитектура вычислительных систем: учебное пособие / В. Г. Хорошевский- 2-е изд., перераб. и доп. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2008. - 520 с.

36. Anderson, E. Performance of the CRAY multiprocessors / E.Anderson, J.Brooks, Ch. Grassel. - The Supplemental Performance Report, 1996. - 25 p.

37. Anderson, E. Performance Analysis of the CRAY T3E-1200E / Edward Anderson. - Lockheed Martin Services Inc., 1999.

URL:https://web.archive.org/web/20030129031218/http://www.arsc.edu/support/news/ T3Enews/misc/perf1200 .html

38. Berenger, J.-P. A perfectly matched layer for the absorption of electromagnetic waves / Jean-Pierre Berenger // Journal of Computational Physics, 1994. - № 114. -P.185-200

39. Bhadke, Y.D. Development of 3D-CFD code for heat conduction process using CUDA / Y.D. Bhadke, M. R. Kawale, V. Inamdar. // IEEE 2014 International Conference on Advances in Engineering and Technology Research (ICAETR), 2014. -P.1 — 5.

40. Barnes, G.H. The ILLIA C IV computer / G.H. Barnes // IEEE Trans. On Computers, 1968. - P. 17- 46.

41. Chang, D-Ch. A High-Performance Parallel FDTD Method Enhanced by Using SSE Instruction Set / D.-Ch. Chang, L. Zhang, X. Yang, S.-H. Yen, W. Yu. // Hindawi Publishing Corporation, International Journal of Antennas and Propagation, 2012. -V.2012. - doi:10.1155/2012/851465

42. Chrzeszczyk, A. Matrix computation on the GPU. CUBLAS and MAGMA by examples / A. Chrzeszczyk, J. Chrzeszczyk. - 2013.

URL:https://developer.nvidia.com/sites/default/files/akamai/cuda/files/Misc/mygpu.pdf (request data 16.02.2016).

43. Cohen, J. OpenCurrent: Solving PDEs on Structured Grids with CUDA. - 2010. URL: http://www.nvidia.com/content/gtc-2010/pdfs/2022_gtc_2010.pdf (request data 16.02.2016).

44. Foster, I. Designing and Building Parallel Programs / I. Foster. - Boston: Addison-Wesley Longman Publishing, 1995. - 430 p.

45. Flynn, M.J. Very high-speed computing systems / M.J. Flinn // Proc. IEEE -1966. - V.54(12). - P. 1901-1909.

46. Golovashkin, D.L. Solving finite-difference equations for diffractive optics problems using graphics processing units / D.L. Golovashkin, D.G. Vorotnokova, A.V. Kochurov, S.A. Malysheva // Optical Engeneering, 2013. - V.52(9). - P. 091719. DOI: 10.1117/1.0E.52.9.091719.

47. Golub, G.H. Matrix Computations / G.H. Golub, Ch.F. Van Loan. - Baltimore: Johns Hopkins University Press, 1989. - 747 p.

48. Golub, G.H. Scientific Computing and Differential Equations: An Introduction to Numerical Methods / G.H. Golub, J.M. Ortega - California: Academic Press, 1992. -344 p.

49. Golub, G.H. Matrix Computations / G.H. Golub, Ch.F. Van Loan. - 3rd edition. -Baltimor: Johns Hopkins University Press, 1996. - 726 p.

50. Harris, М. New Features in CUDA 7.5. - 2015. - URL: https://devblogs.nvidia.com/parallelforall/new-features-cuda-7-5/ (request data 16.02.2016).

51. He, B. Parallel Numerical Simulations of Three-Dimensional Electromagnetic

Radiation with MPI-CUDA Paradigms / B. He, L. Tang, J. Xie, X. Wang, and AnP. Song. // Mathematical Problems in Engineering, 2015. - Vol. 2015. - DOI: 10.1155/2015/823426

52. Huang, L. DM-SIMD: A new SIMD predication mechanism for exploiting superword level parallelism / L. Huang, Li Shen, S. Ma, N. Xiao // IEEE 8th International Conference on ASIC (ASICON '09), 2009. - P.863 — 866.

53. Inman, M.J. Optimization and Parameter Exploration Using GPU Based FDTD Solvers / M.J. Inman, A.Z. Elsherbeni. // Microwave Symposium Digest, 2008 IEEE MTT-S International, 2008. - p.149 - 152.

54. Jordan, H.F. Experience with FDTD techniques on the Cray MTA supercomputer / H. F. Jordan, S. Bokhari, S. Staker, J. R. Sauer, M. A. ElHelbawy, M. J. Piket-May. // SPIE Proceedings on Commercial Applications for High-Performance Computing -2000. - Vol.45(28). - doi: 10.1117/12.434878

55. Kochurov, A.V. GPU implementation of Jacobi method for data arrays that exceed GPU-dedicated memory size/ A.V. Kochurov, D.G. Vorotnikova, D.L. Golovashkin // Proceedings of International Conference Information Technology and Nanotechnology (ITNT-2015) Samara, Russia, June 29 - July 1, 2015. - P. 414-419.

56. Li, Er-P. Plasmonic Nanoelectronics and Sensing / Er-P. Li, Chu H.-S. -Cambridge: EuMA High Frequency Technologies Series, 2014. - 262 p.

57. Livesey, M. Development of a CUDA Implementation of the 3D FDTD Method / M. Livesey, J. F. Stack, F. Costen, T. Nanri, N. Nakashima, S. Fujino // IEEE Antennas and Propagation Magazine, 2012. - Vol. 54(5). - P. 186-195.

58. McCool, M. Structured Parallel Programming, 1st Edition. Patterns for Efficient Computation / M.McCool, J. Reinders, A. Robison. - Elsevier. 2012 — 432 p.

59. Mittal, M. MMX Technology Architecture Overview / M.Mittal, A.Peleg, U.Weiser Intel Technology Journal, 1997. — Vol.1(3). - P.27 - 36.

60. Munshi, A. OpenCL Programming Guide / A.Munshi, B.R. Gaster, T.G. Mattson, J. Fung, D. Ginsburg. — Addison-Wesley Professional, 2011. — 648 p.

61. Murray, C.J. The Supermen: The Story of Seymour Cray and the Technical Wizards Behind the Supercomputer / Ch.J. Murray. - Wiley, 1997. - 232 p.

62. Poole, St. OpenSHMEM - Toward a Unified RMA Model / St. Poole, O. Hernandez, J. A Kuehn, G. M Shipman, A. Curtis, K. Feind.// Encyclopedia of Parallel Computing, 2011. - P. 1379-1391.

63. Simon, W. Efficient FDTD parallel processing on modern PC CPUs (part 2)/ W. Simon, A.Lauer, D. Manteuffel, A. Wien, I.Wolff . - NY: Springer, Ultra-Wideband, Short-Pulse Electromagnetics. - 2007. Vol.7. - p. 131-141.

64. Schatz, M.C. High-throughput sequence alignment using Graphics Processing Units / M. C. Schatz, C. Trapnell, A. L. Delcher, A. Varshney. // BMC Bioinformatics, 2007. - DOI: 10.1186/1471-2105-8-474.

65. Schorghofer, N. GPU-accelerated thermal model for planetary surfaces / N. Schorghofer // 42nd Lunar and Planetary Science Conference (March 7-11, 2011, Woodlands, Texas). LPI Contribution No. 1608. - p.1616-1617.

66. Skillicorn, D. A. Taxonomy for Computer Architectures // Computer, 1988. -Vol.21(11). - P.46-57.

67. Sun, D.GPU-based acceleration on acenet for FDTD-method of electromagnetic field analysis / D. Sun. - Dalhousie University, 2013. - 96 p.

68. Taflove, A. Computational Electrodynamics: The Finite-Difference TimeDomain Method / A. Taflove, S. Hagness. ed. 3-d. - Boston: Arthech House Publishers, 2005. - 852 p.

69. Valcare, A. A GPU approach to FDTD for Radio Coverage Prediction / A. Valcarce, G. De La Roche, J. Zhang. // ICCS 2008. 11th IEEE Singapore International Conference on Communication Systems, 2008. - P. 1585 — 1590.

70. Vorotnikova, D.G. CUBLAS-aided Long Vector Algorithms/ D.G. Vorotnikova, D.L. Golovashkin.// Journal of Mathematical Modelling and Algorithms in Operations Research, 2014. - V.13(4). - P. 425-431.

71. Vorotnikova, D.G. CUBLAS-aided long vector algorithm for Maxwell's equations/ D.G. Vorotnikova, D.L. Golovashkin. // Proceedings of the 15th International Conference on Computational and Mathematical Methods in Science and Engineering (CMMSE 2015), Cadiz, Spain. - 2015. - P.1113-1121.

72. Vorotnikova, D.G. CUBLAS-aided long vector algorithms / D.G. Vorotnikova,

D.L. Golovashkin // CMMSE 2014 : Proceedings of the 14th International Conference on Mathematical Methods in Science and Engineering - Costa Ballena, Rota, Cadiz (Spain), 2014. - P.1292-1300.

73. Wahl, P. B-CALM: An open-source GPU-based 3D-FDTD with multi-pole dispersion for plasmonics / P. Wahl, D.-S. LyGagnon, Ch. Debaes, D.A.B. Miller, H. Thienpont // Optical and Quantum Electronics. - 2012. - Vol. 44. - P. 285-290.

74. Yee, K. Numerical solution of initial boundary value problems involving Maxwell's equations in isotropic media /K. Yee // IEEE Transactions on Antennas and Propagation - 1966. - Vol.14 (3). - P.302-307.

75. Zhen, F. Toward the development of a three-dimensional unconditionally stable finite-difference time-domain method / F. Zhen, Z. Chen, and J. Zhang. Microwave Theory and Techniques, IEEE Transactions, 2000. - 48 (9) p 1550-1558.

76. Дифракционная нанофотоника / подредакциейВ.А. Сойфераю - М.: ФИЗМАТЛИТ, 2011. — 680 с.

77. Параллельные алгоритмы решения сеточных уравнений: Монография / Д. Г. Воротникова, Д. Л. Головашкин, Н. Л. Казанский, А. В. Кочуров, Л. В. Логанова, С. А. Малышева; под ред. Н. Л. Казанского. - Самара: ИСОИРАН, 2013. - 146 с.

78. Digital Equipment Corporation, VAX-11/780 Architecture Handbook, Maynard, Massachusetts, 1977. - 96 p.

79. The Computer Engineering Handbook. Edited by Vojin G. Oklobdzija. CRCPress, 2011 - 653 p.

80. Гибридный вычислительный кластер K-100. - Институт Прикладной Математики им. М.В. Келдыша РАН.

URL: http://www.kiam.ru/MVS/resourses/k100.html (дата обращения 02.03.2016).

81. Описание суперкомпьютера «Сергей Королев». - Самарский Государственный Аэрокосмический Университет имени С.П.Королева.

URL: http://hpc.ssau.ru/node/6 (дата обращения 02.03.2016).

82. Описание суперкомпьютера SKIFMSU. - MOSCOW STATE UNIVERSITY -RESEARCH COMPUTING CENTER.

URL: http://www.top500.org/system/175569 (дата обращения 02.03.2016).

83. Описание суперкомпьютера «ПГУ-Тесла». - T-Platforms. URL:http://www.t-platforms.ru/solutions/completed/pgy-tesla.html (дата обращения 02.03.2016)

84. Описание видеокарты NVidiaGeForce 256. - NVIDIA Corporation. - 2007. URL: http://www.nvidia.com/page/geforce256.html(дата обращения 02.03.2016).

85. Описание видеокарты NvidiaGeForceGTXTitanX- NVIDIA Corporation. -2016.

URL: http://www.nvidia.ru/object/geforce-gtx-titan-x-ru.html (дата обращения 02.03.2016).

86. Оптимальные опции для x86 GCC. Компания Intel. - 2012.

URL: https://habrahabr.ru/company/intel/blog/158939/(дата обращения 02.03.2016)

87. Streaming SIMD Extensions 2 (SSE2). - Christopher Wright. - 2008.

URL: http://softpixel.com/~cwright/programming/simd/sse2.php (дата обращения 08.02.2016)

88. Описание SSE4 для программистов. - Intel Corporation. URL:http://softwarecommunity.intel. com/isn/Downloads/Intel%20 S SE4%20Programmi ng%20Reference.pdf (дата обращения 08.02.2016)

89. The Cray® XC™ Series: Adaptive Supercomputing Architecture. - Cray Inc. -2016.

URL: http://www.cray.com/products/computing/xc-series(дата обращения 02.03.2016)

90. Причины и следствия банкротства Cray Com. - Газета КОМЕРСАНТЪ. -1995.

URL: http://www.kommersant.ru/doc/105600(дата обращения 02.03.2016)

91. Prescott New Instructions (SSE3): обзор новых SIMD расширений с точки зрения разработки и оптимизации программного обеспечения. URL: http://www.ixbt.com/cpu/sse3.shtml(дата обращения 08.02.2016)

92. AMD 3DNow Instruction Porting Guide. ApplicationNote. - AMD Corporation. - 1999. URL:http://web.archive.org/web/20120121112218/http://support.amd.com/us/Processor _TechDocs/22621.pdf(дата обращения 02.03.2016)

93. AltiVec Technology Programming Interface Manual. - Freescale Inc. - 1999. URL: http://www.freescale.com/files/32bit/doc/ref_manual/ALTIVECPIM.pdf (дата обращения 02.03.2016)

94. CUDAToolkit 1.1 (December 2007). - NVidia Corporation. - 2007. URL: https://developer.nvidia.com/content/cuda-toolkit-11 -june-2007 (дата обращения 02.03.2016)

95. Finite-difference time-domain Solver and SDK. - AccelwareInc. - 2015. URL: http://www.acceleware.com/fdtd-solvers (дата обращения 02.03.2016)

96. GSVIT - open source FDTD solver with graphics card computing support. -Department of Nanometrology, Czech Metrology Institute. - 2013.

URL: http://gsvit.net/index.php(дата обращения 02.03.2016).

97. Intel® 64 and IA-32 Architectures Software Developer Manuals. - Intel Corporation. - URL: http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html (дата обращения 08.02.2016)

98. General-purpose computing on graphics processing units. URL: http://www.gpgpu.org/ (датаобращения 18.12.2015).

99. MMX, SSE, and SSE2 Intrinsics. - Microsoft Corporation. - 2008. URL: http s: //msdn .microsoft .com/ru-ru/library/y0 dh7 8 ez%2 8v=vs .90%29. aspx

100. OpenACC: More Science Less Programming. - Nvidia Corporation. - 2015. URL: https://developer.nvidia.com/openacc (дата обращения 02.03.2016)

101. OpenCurrent is an open source C++ library for solving Partial Differential Equations (PDEs) over regular grids using the CUDA platform from NVIDIA . - Nvidia Corporation. - 2010. - Version 1.1.0

102. SunStudio 12: C++ User'sGuide. - Oracle Corporation. - 2010.

103. T0P500 LIST - JUNE 2015.

URL: http://www.top500.org/lists/2015/06/ (дата обращения 02.03.2016)

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