Гибридная суперкомпьютерная платформа и разработка приложений для решения задач механики сплошной среды сеточными методами

Тип работы:
Реферат
Предмет:
ТЕХНИЧЕСКИЕ НАУКИ
Узнать стоимость новой

Детальная информация о работе

Выдержка из работы

Раздел III. Использование суперЭВМ в математическом моделировании
2. Соболь К М., Картышов С. В., Кульчицкая К А., Левитан Ю М. О многокритериальной оптимизации математических моделей // Математическое моделирование. — 1994. — № 6. — C. 85−93.
3. Бондарев А. Е. Решение задачи оптимизационного анализа с помощью параллельных вычислений // Новые информационные технологии в автоматизированных системах: Материалы пятнадцатого научно-практического семинара. — М.: МГИЭМ, 2012. — С. 89−94.
Статью рекомендовал к опубликованию д.ф. -м.н. АЖ. Алексеев.
Бондарев Александр Евгеньевич — Институт прикладной математики им. М. В. Келдыша РАН- e-mail: bond@keldysh. ru- 125 047, г. Москва, Миусская пл., 4- тел.: 84 992 507 817- отдел № 2- старший научный сотрудник- к.ф. -м.н.
Bondarev Alexander Evgen’evich — Keldysh Institute of Applied Mathematics RAS- e-mail: bond@keldysh. ru- 4, Miusskaya sq., Moscow, 125 047, Russia- phone: +74 992 507 817- department 2- senior researcher — dr. of phis. -math. sc.
УДК 519. 688
C.B. Поляков, Ю. Н. Карамзин, О .А. Косолапое, ТА. Кудряшова, С .А. Суков
ГИБРИДНАЯ СУПЕРКОМПЬЮТЕРИАЯ ПЛАТФОРМА И РАЗРАБОТКА ПРИЛОЖЕНИЙ ДЛЯ РЕШЕНИЯ ЗАДАЧ МЕХАНИКИ СПЛОШНОЙ СРЕДЫ СЕТОЧНЫМИ МЕТОДАМИ*
Рассмотрена проблема разработки параллельных приложений для решения задач механики сплошной среды на современных вычислительных системах с гибридной архитектурой, включающей центральные и графические процессоры. Для их решения сформулирована концепция гибридных параллельных вычислений, включающая анализ особенностей гибридного вычислителя и его программного оснащения, а также предложения по реализации параллельных программ. В частности, предложены три основные модели параллель,, тесной связке с центральными процессорами. Также рассмотрены специфические проблемы реализации сеточных численных алгоритмов на гибридных вычислителях. Приведён пример реализации конечно-объёмной схемы на неструктурированной сетке при решении систем уравнений Эйлера и Навье-Стокса на графическом ускорителе.
Механика сплошной среды- математическое моделирование- численные подходы на основе метода сеток- параллельные алгоритмы- комплексы программ для гибридных вы.
S.V. Polyakov, Yu.N. Karamzin, O.A. Kosolapov, T.A. Kudryashova, S.A. Soukov
HYBRID SUPERCOMPUTER PLATFORM AND APPLICATIONS PROGRAMMING FOR THE SOLUTION OF CONTINUOUS MECHANICS PROBLEMS BY GRID METHODS
The developing of parallel applications for the solution of continuum mechanics problems on modern computer systems with hybrid architecture (including the central and graphical processors) was considered. For the solving of the problem the conception of hybrid parallel computations was formulated. This conception includes the analysis of both architecture of modern hybrid computer and its software and the special ways for the construction of parallel programs. In particular, three main models of the parallel calculations, using graphic processors incidentally, constantly or in a close sheaf with the central processors were offered. Specific problems of reali-
* Работа выполнена при поддержке Российского фонда фундаментальных исследований (проекты № 11−01−12 086-офи-м, 12−01−339, 12−01−345). '-
zation of grid numerical algorithms on hybrid computers were also considered. The example of implementation of the finite-volume scheme on unstructured grid at the decision of systems of the equations of Euler and Navier-Stokes on graphic accelerators was given.
ontinuum mechanics- mathematical modeling- numerical approach based on grid technique- parallel algorithms- software tools for hybrid computer systems.
Введение. Особенностью современного этапа развития прикладных параллельных программных средств моделирования является переход к гибридным. -ных компьютерных архитектур в повседневную практику научных исследований. Способствовало этому процессу развитие программных сред и языков программи-,, следует отметить графические ускорители. Главной задачей с в настоящее время, на наш взгляд, является формирование единой концепции гибридного параллель,
годы как основу развития параллельных приложений в науке и технике.
В настоящей работе авторы попытались сформулировать свое видение проблемы применительно к одному широко распространённому классу задач, а именно задачам механики сплошной среды (МСС), решаемым методом сеток. В результате была разработана концепция гибридных параллельных вычислений, которую можно положить в основу программной части гибридной суперкомпьютер-ной платформы. Среди множества вопросов, примыкающих к этой проблеме, были рассмотрены два: алгоритмы решения задач и особенности их реализации на доступных вычислительных системах.
Особенности современной гибридной архитектуры. Для достижения поставленных целей обратимся сначала к обзору аппаратных и программных средств, имеющихся в наличии у большинства исследователей. Сразу отметим, что в качестве аппаратных решений будем различать 3 класса вычислительных систем (ВС): 1) настольные или мобильные персональные компьютеры (ПК),
2) бюджетные кластеры (БК) лабораторий и небольших организаций, 3) супер-компьютерные вычислительные системы (СКВС) крупных организаций и центров
().
независимых вычислительных узлов и способами их интеграции в единую вычис-. -
-..
На рис. 1 показана гибридная архитектура современного вычислительного ,. Здесь предполагается, что узел имеет k центральных (CPU) и p графических (GPU) процессоров, а также k банков общей оперативной памяти. Каждый CPU имеет l
, m ,
. GPU —
ет q мультипроцессоров и q*r*n ядер, сгруппированных в r блоков по n кон веерных устройств обработки данных, и доступ к собственной оперативной памяти (), GPU () PCI
Express, а также к оперативной памяти своего узла. В отличие от CPU в графических ускорителях имеется также возможность управления кэш-памятью.
При использовании подобного вычислительного узла в настольном исполнении получаем мощную рабочую станцию, вполне пригодную для проведения научных расчётов среднего уровня. При объединении небольшого количества (по-10−50)
(например, Gigabit Ethernet) получаем бюджетный кластер террафлопного диапа-
.
высокоскоростных сетей (10-Gigabit Ethernet, InfiniBand и т. д.), а число узлов измеряется сотнями и более, получаем суперкомпьютерную систему вплоть до пе-тафлопного уровня производительности.
CPU0
Соге0 CoreJ
1 Т0… Тгп Т0… Т_т
CPU_k
Соге0 CoreJ
Т0… Т_т I Т0… Т_т [
о о
о о
О О
О- 9
Network
О
CPU Mem О
CPU Mem k
PCI Express Bus
¦-& gt-
& lt-t й
GPU_Mem0 GPU_Mem_p
GPU_CacheJ Э GPU_Cache_p
V0… V_r V O… V_r V0… V_r V0… V_r
МР0 MP_q MP0 MP_q
GPU0 GPU_p
PCI-network
Puc. 1. Гибридная архитектура современного вычислительного узла кластера или
персонального компьютера
С точки зрения управляющей программной среды ситуация складывается. -ном используется операционная система Windows (дапее ОС Windows), а также Mac OS X- существенно реже встречается операционная система UNIX в версии Linux (далее ОС Linux). Как правило, это уже 64-битные версии ОС. Для реализации кластерных решений используются в основном OC Linux, существенно реже ОС Windows в версии Windows Server или Windows Cluster Server. Таким образом, ,
Windows Linux.
Специфика разработки неспециальных приложений для вычислителей с универсальной центральной архитектурой отличается тем, что прикладному программисту фактически не требуется знать детальную структуру узла, а лишь использо-
l l*m,
,.
этом инициализация многопоточного приложения внутри вычислительного узла производится за очень короткое время (порядка нескольких микросекунд) и может повторяться многократно в течение всего цикла решения задачи (так, например, происходит при использовании технологии OpenMP). Ввод/вывод с каждой нити приложения осуществляется так же, как в однопоточном приложении, и не вызывает больших проблем.
Разработка любого приложения для вычислителей с гибридной архитекту-, ,. часть информации можно получить во время исполнения кода. В этой ситуации требуется изначально ориентироваться на конкретную аппаратную платформу. Время доступа к различным типам памяти гибридного узла сильно отличается. Количество одновременно исполняемого кода и обрабатываемого массива данных
сильно ограничено. Ввод/вывод данных возможен напрямую только из тех нитей приложения, которые выполняются на CPU. Следует также отметить, что время инициализации GPU достаточно велико (порядка нескольких секунд), поэтому инициализация этих устройств производится один раз в начале цикла вычислений. Эти и другие особенности гибридных вычислительных систем приходится учитывать при разработке конкретных приложений.
В данной работе авторы конкретизировали аппаратно-программную плат. CPU-GPU —
соров Intel (или AMD) и графических ускорителей NVIDIA. С одной стороны, данное сужение класса вычислителей не является фатальным, поскольку они составляют более 90% используемого парка вычислительных систем и доступны практически любому пользователю. С другой стороны, это сужение позволяет большую часть анализа аппаратуры проводить во время исполнения программы и разработать общие подходы к разработке приложений. Также было решено огра-
, 64- Windows
Linux. — -
работке параллельных приложений для такого рода систем, который удовлетворял бы следующим требованиям:
1)
гибридных вычислительных системах из указанных выше трёх классов:
, , —
2) -программной платформы на другую-
3) —
страняемое или условно свободно распространяемое программное обес-().
Г ибридная параллельная платформа. Предлагаемая концепция параллельных вычислений на гибридных вычислительных системах указанного выше класса была выработана на основе анализа литературы и собственного опыта авторов по организации параллельных вычислений на гибридных ВС. Базой для реализации вычислений на GPU послужили работы [1−3]. Вопросы кросс-платформенной реализации были рассмотрены с использованием [4−5]. Для изучения общих вопросов параллельного программирования имеется уже очень широкий пласт литературы (см., например, [6−9]).
Сформулируем общие предложения, которые могут быть положены в основу концепции гибридных параллельных вычислений.
1., -, MPI- , —
ную модель вычислений. Распределённая модель вычислений выбрана в связи с тем, что требуется создавать приложения, ориентированные на произвольное сколь
. MPI-
реализована на большинстве аппаратно-профаммных платформ, и перенос таких программ с одной платформы на другую не вызывает особых затруднений.
2., реализации MPI-приложений: C, C++, Fortran. Естественно остановиться на этом множестве и в данном случае. Однако версии самих языков требуют уточнения.
C,
C++, Fortran 64- GNU
C/C++/Fortran. Linux. ,
64- Windows GNU
C/C++ (MinGW64) Fortran. -
блемой является то, что компилятор C/C++ для GPU (пакет CUDA Toolkit), сво-
NVIDIA, Linux
GNU C/C++. Windows CUDA Toolkit
Microsoft Visual Studio —
. Windows Microsoft Visual C/C++,
Linux GNU
C/C++. Свободно распространяемый 64-битный компилятор с языка Fortran для Windows, Linux GNU Fortran. ,
— Intel C/C++/Fortran,
оно будет платным.
3. MPI. — ,
сетевого интерфейса между узлами- во-вторых, от типа ОС. В первом случае имеются следующие альтернативы: в качестве сетевого решения может использоваться Ethernet, InfiniBand, Myrinet, SCI и другая аппаратура связи. Поскольку первые два типа интерфейсов захватили большую часть рынка коммуникаций, то можно
. MPI —
ляются две группы: реализации, поддерживающие только один тип коммуника-, ,. В первую группу можно поместить MPICH, MPICH2 и LAMMPI (поддерживают коммуникации в сетях Ethernet), MVAPICH и MVAPICH2 (поддерживают коммуникации в сетях InfiniBand). Во вторую группу попал OpenMPI. Он поддерживает оба способа коммункаций — Ethernet и InfiniBand. Если далее рассмотреть фактор,, , MPI
версии для ОС Linux, и только некоторые из них имеют версии для Windows. С точки зрения создания свободно распространяемого ПО следует использовать MPICH, Windows Linux.
Ethernet. MPICH
под ОС Windows является MS MPI, входящий в пакет Microsoft HPC Pack 2008.
InfiniBand Linux 2: MVAPICH
OpenMP.
имеется только у Intel. Важно также отметить, что с точки зрения содержания MPI- MPI —
ваемого параллельного приложения.
4. -
тем имеет многоядерную архитектуру, то естественно использовать дальнейшее
CPU.
OpenMP
PThreads. Оба эти средства имеют свои преимущества и недостатки. Однако общая их особенность состоит в том, что они встроены в язык программирования высокого. PThreads
ANSI C/C++, OpenMP ANSI C/C++,
Fortran. ,
. OpenMP PThreads —
runtime-.
случае зависит только от сделанного выбора: OpenMP или PThreads.
5.
существенно увеличить, если наиболее затратные части кода выполнять на GPU. Для реализации такой аппаратной возможности предлагается использовать техноло-CUDA. CUDA. — ,
специальный драйвер устройства (в дальнейшем CUDA driver), обеспечивающий GPU (-
— ). —, -/ ++, CUDA Toolkit, —
GPU, GPU,
CPU. Использование технологии CUDA позволяет задействовать все ресурсы вы, CPU GPU.
6. CUDA
. —, CUDA C/C++ -
Microsoft Visual C/C++ Windows GNU C/C++
Linux. -
. —, GPU —
дания соответствующего количества нитей CPU, управляющих отдельными GPU.
CUDA
OpenMP PThreads. —, GPU
рамках одного узла может осуществляться либо через основную память посредством CPU, либо непосредственно по каналам прямого доступа шины PCI Express. Реализация первого механизма не требует привлечения дополнительных средств.
существенное снижение скорости передачи данных между различными GPU. Одна из реализаций второго механизма состоит в использовании библиотеки Shmem, с помощью которой можно организовать единое адресное пространство памяти всех GPU, в том числе располагающихся за пределами узла (в других узлах).
—, MPI- ,
GPU, компиляция функций для GPU и так называемых & quot-обёрток"- производится CUDA C/C++, —
вами пакета MPI для CPU.
7.
гибридном вычислителе следует прежде всего определить модель размещения и
: 1) CPU- 2) —
ти GPU- 3) смешанный способ хранения. В первом случае подразумевается, что GPU, , —
числительно ёмкие блоки данных. Во втором случае подразумевается, что вся за-
GPU, CPU
GPU /. -
,, GPU
недостаточно для размещения всех обрабатываемых данных.
8.
следствия. Первое — это тип основного интерфейс, а передачи данных между вычислителями (в случае 1) — это передача данных по сети, в случае 2) — это передача данных по шине PCI Express, в случе 3) — смешанная схема обменов). Второе -это тип используемого средства программирования коммуникаций (в случае 1) -это MPI, в случае 2) — Shmem, в случае 3) — использование обоих средств).
9. , —
лельными сеточными методами, можно добавить ещё несколько специфических моментов. Отметим основной из них.
Эффективное решение задач МСС на сетках различного типа существенно зависит от двух факторов: 1) является ли сетка динамической (меняет свою структуру и объём в процессе вычислений) или статической (не меняется в процессе) — 2) (шаблон связей её элементов) или неструктурированной (каждый элемент сетки
).
Если сетка динамическая, то к известным проблемам балансировки вычислительной загрузки узлов добавляется ещё и реализация перестроений сетки во вре-,.
На сегодняшний день гибридные вычислительные системы мало приспособлены к реализации такой вычислительной схемы, и в этом случае лучше оставаться в рамках вычислений на центральных процессорах, которые обладают большей гибкостью архитектуры и большей оперативной памятью.
Если используемая сетка статическая и структурированная (например, декар), -GPU.
, CPU
крупнозернистым как на межузловом уровне, так и внутри узлов. Если же вычис-GPU,
.
Если используемая сетка статическая и неструктурированная, то при перево-GPU —
объект. Для этого, например, её предварительно следует упорядочить по размеру и структуре шаблона и разместить близкие по характеристикам элементы сетки в GPU. GPU —
вать и использовать единый фиксированный шаблон связей, вмещающий любой конкретный шаблон сетки, принадлежащий данному GPU.
GPU
фиксированного локального шаблона. Сама блочная структура организации вы-GPU GPU
подсказывают методику общего алгоритма балансировки. В целом можно отметить, что практически любой алгоритм балансировки, имеющий в качестве динамически подбираемых параметров размеры двумерного или трёхмерного блока
,, .
Эти и другие приёмы можно использовать в качестве основы для разработки конкретных параллельных сеточных приложений.
Пример реализации гибридных сеточных вычислений. Для иллюстрации изложенной выше концепции была проведена адаптация известных сеточных подходов к решению задач механики сплошной среды на неструктурированных сетках на гибридном суперкомпьютере с графическими ускорителями. Рассматривалась проблема моделирования вязких и невязких газодинамических течений на неструктурированных гибридных сетках. Дискретная модель расчетной области состояла из элементов четырех фиксированных типов: шестигранник, четырех,. -нений Эйлера и Навье-Стокса проводилась методом конечных объёмов с использованием схемы Роу для вычисления конвективных потоков, а также методов повышенного порядка аппроксимации на гибридных сетках, основанных на полиномиальной реконструкции значений газодинамических переменных внутри сеточ-.
GPU —
гоядерными процессорами общего назначения. Все вычислительные эксперименты проводились на суперкомпьютере К-100 (ИМИ им. М. В. Келдыша РАН). Данная СКВС состоит из вычислительных модулей, каждый из которых содержит в себе 2 6-ядерных процессора Intel Xeon X5670 и 3 графических процессора nVidia Tesla C2050..
Графические процессоры nVidia Tesla C2050 поддерживают одновременное
(1536 —
процессоре, которых здесь 14). При этом влияние загрузки мультипроцессора (отношение числа фактически выполняемых на нем нитей к максимально допусти) —
ко. Приемлемая скорость чтения/записи упорядоченных в глобальной памяти уст-
50% (. 1).
В свою очередь, для достижения высокой производительности непосредственно вычислений коэффициент загрузки ресурсов должен быть не ниже 33% (табл. 2). На практике уровень загрузки мультипроцессора ограничивается размерами его регистровой и разделяемой памяти. В пределе каждой нити доступно лишь 63 32-битовых регистра (выполнение 512 нитей с 33%-ной загрузкой). При необхо-
63
эмулируются в глобальной памяти устройства, что, естественно, снижает эффективность самих вычислений.
1
Зависимость скорости чтения/записи данных от загрузки мультипроцессора
Размер блока нитей 32 64 128 256 512 1024
Загрузка мультипроцессора (%) 16,7 33,3 66,7 100 100 66,7
Скорость чтения/записи данных (ГБ/сек) 57,2 85,6 102 97,5 100,4 97
2
Зависимость производительности вычислений от загрузки мульти-процессора (на примере численного интегрирования квадратичного
полинома)
Размер блока нитей 32 64 128 256 512 1024
Загрузка мультипроцессора (%) 16,7 33,3 66,7 100 100 66,7
Производительность вычислений (ОБ1ор8) 219,4 236,3 236,5 236,7 238 237,3
Для эффективного использования возможностей графического процессора необходимо разделить исходную сложную алгоритмическую задачу на относительно простые этапы. А каждый из таких этапов постараться представить в виде множества независимых подзадач с минимальной ресурсоемкостью и максимальным объемом вычислений на единицу данных. В этом случае, во-первых, увеличивается загрузка мультипроцессора, что положительно влияет на скорость чтения/записи данных. А во-вторых, появляется возможность & quot-скрыть"- обращения к
(), —
временно выполняемых на одном мультипроцессоре.
Оценка эффективности вычислений на СРи и ОРИ проводилась на примере программных реализаций двух основных вычислительных модулей расчетного алгоритма. Это вычисление коэффициентов полиномиальной реконструкции значений пяти газодинамических переменных для каждого элемента сетки и вычисление конвективных потоков через грани расчетных ячеек. Сравнивалось время работы программ на одном СРИ (6 процессорных ядер) и одном ОРИ. В случае СРи
общей памяти (интерфейс разработки прикладного программного обеспечения ОрепМР). В качестве исходных данных тестовых задач были взяты промежуточные результаты расчета задачи невязкого газодинамического обтекания сферы на тетраэдральной сетке, содержащей порядка 700 тысяч элементов (около 1,3 мил).
Алгоритмически задача определения коэффициентов полиномов для каждой из сеточных ячеек сводится к перемножению постоянной на протяжении всего расчета матрицы А[9][ЭД на матрицу В[ЭД[5], значения элементов которой зависят от текущих значений газодинамических переменных в ячейках шаблона соответствующего сеточного элемента. Здесь N — размер шаблона. В рассматриваемом случае N принимает значения от 24 до 50. В результате умножения, А х В формируется матрица Р[9][5] с девятью коэффициентами квадратичного полинома для каждой из пяти газодинамических переменных.
Раздел III. Использование суперЭВМ в математическом моделировании
СРИ
директиву распараллеливания ОрепМР над основным вычислительным циклом по
,
.
При реализации этого же алгоритма на ОРИ используется уже иной принцип. Назовем элементарным заданием процедуру вычисления коэффициентов полиномов для одного сеточного элемента. В рамках предложенного алгоритма обработка одного элементарного задания выполняется 32 нитями, что соответствует раз., -полняет нити варпами, то такой подход дает возможность, во-первых, минимизировать дисбаланс загрузки, связанный с переменным размером шаблона, и, во,
(А). -
грузки устройства нити группируются в блоки размером 128 нитей (4 варпа). Та, 4 ,.. п-
блок нитей вычисляет коэффициенты полиномов для ячеек с индексами 4п, 4п+1, 4п+2 и 4п+3. Ограничения по регистровой памяти для используемой программной реализации позволяют одновременно запустить на каждом мультипроцессоре 7 блоков нитей, что соответствует уровню загрузки в 58%.
Времена работы соответствующих программных модулей приведены в табл. 3.
. 4. -
СРИ —
рического параллелизма: каждая нить ОрепМР обрабатывает отведенную ей по. -ции распределения через грани вошедших в нее ячеек с последующим суммированием результата вычислений.
3
Сравнение эффективности вычислений на СРи и ОРи на примере задачи вычисления коэффициентов полиномиальной реконструкции
Вычислитель СРи (6 ядер) ОРИ (448 ядер)
Время работы (секунд) 0,145 0,045
Производительность (ОБ1ор8) 16,37 52,74
4
Сравнение эффективности вычислений на СРи и ОРи на примере задачи
вычисления конвективных потоков через грани расчетных ячеек
Вычислитель СРИ (6 ядер) ОРИ (448 ядер)
Время работы (секунд) 0,059 0,0168
Производительность (ОБ1ор8) 10,91 38,3
ОРИ ,
по граням контрольных объемов, будет иметь минимальную эффективность. Объем исходных данных для вычисления конвективного потока через грань расчетной ячейки и число внутренних переменных в программной реализации схемы Роу
63.
вычисления потока по Роу не распадается на подзадачи с возможностью параллельного выполнения на 81МБ-архитектуре. Поэтому с целью оптимизации ис-ОРИ 3
относительно простых этапа: 1) вычисление значений газодинамических переменных слева и справа от центров граней- 2) вычисление потоков через грани расчетных ячеек- 3) суммирование потоков через грани в ячейки сетки. Узким местом в данном случае остался второй этап, где избежать эмуляции регистров в памяти
устройства не представляется возможным. В свою очередь задачи, решаемые на первом и третьем этапах алгоритма, достаточно просты, что обеспечивает высокую загрузку мультипроцессора.
Основываясь на представленных в табл. 3 и 4 результатах, можно сказать, GPU (3)
. GPU
отнести слабую зависимость производительности вычислений от нумерации эле, -сматриваемых вычислительных алгоритмов на CPU. С другой стороны, с точки зрения энергопотребления величина ускорения в 3 раза лишь немного выше ми-
2.5. ,
можно с большой вероятностью прогнозировать, что в случае повышения алгоритмической или вычислительной сложности расчетного алгоритма (например, реализации процедуры интегрирования потока через грань с использованием ме-
) GPU.
Заключение. В заключение отметим, что представленная концепция гибридных параллельных вычислений является лишь ориентиром для разработки конкретных приложений в области решения задач механики сплошной среды се.
сократить цикл разработки параллельных программ для гибридных вычислитель.
БИБЛИОГРДФИЧЕСКИЙ СПИСОК
1. Сандерс Дж., Кэндрот Э. Технология CUDA в примерах: введение в программирование графических процессоров. — М.: ДМК Пресс, 2011. — 232 с.
2. NVIDIA CUDA C Programming Guide. Version 4.0. Santa Clara (CA, USA): NVIDIA Corporation, 2011. — 187 p.
3. Боресков AM., Харламов A.A. Основы работы с технологией CUDA. — М.: ДМК Пресс, 2010. — 232 с.
4. Logan S. Cross-platform development in C++: building Mac OS X, Linux, and Windows
applications. Crawfordsville (Indiana, USA): RR Donnelly, 2007. — 575 p.
5. ., ., .,. ++. —. :
КУДИЦ-ПРЕСС, 2007. — 624 c.
6..
— М.: Мир, 1971. — 367 с.
7. .,.. — .: — ,
2002. — 608.
8. Dongarra J., Foster I., Fox J. et al. Sourcebook of Parallel Computing. San Francisco
(CA, USA): Elsevier Science, 2003. — 852 p.
9. … .: & quot- -
-. & quot-, & quot-. -
& quot-, 2007. — 424 c.
Статью рекомендовал к опубликованию д.ф. -м.н., профессор М. В. Якобовский.
Поляков Сергей Владимирович — Институт прикладной математики им. М. В. Келдыша РАН- e-mail: polyakov@imamod. ru- 125 047, г. Москва, Миусская пл., 4- тел.: 84 999 730 385- отдел № 16- зав. сектором- д.ф. -м.н.- с.н.с.
Карамзин Юрий Николаевич — e-mail: karamzin@imamod. ru- отдел № 16- г. н.с.- д.ф. -м.н.-.
Кудряшова Татьяна Алексеевна — e-mail: kudryashova@imamod. ru- тел.: 84 992 507 910- отдел № 16- к.ф. -м.н.- с.н.с.
Суков Сергей Александрович — e-mail: pm18@imamod. ru- тел.: 84 992 507 823- отдел № 16- к.ф. -м.н.- с.н.с.- магистр.
Косолапое Олег Александрович — Info Industries Group- e-mail: firimar@mail. ru- 119 017,., ., 8/11,. 3- -.
Polyakov Sergey Vladimirovich — Keldysh Institute for Applied Mathematics, Russian Academy of Sciences- e-mail: polyakov@imamod. ru- 4, Miusskaya square, Moscow, 125 047, Russia- phone: +74 999 730 385- department № 16- head of laboratory- dr. of phis. -math. sc.- senior scientist.
Karamzin Yuri Nikolaevich — e-mail: karamzin@imamod. ru- department № 16- main research associate- dr. of phis. -math. sc.- professor.
Kudryashova Tatiana Alekseevna — e-mail: kudryashova@imamod. ru- phone: +74 992 507 910- department № 16- cand. of phis. -math. sc.- senior scientist.
Soukov Sergey Aleksandrovich — e-mail: pm18@imamod. ru- phone: +74 992 507 823- department № 16- cand. of phis. -math. sc.- senior scientist- master of science.
Kosolapov Oleg Aleksandrovich — Info Industries Group- e-mail: firimar@mail. ru- 8/11, Malyi Tolmachevskiy pereulok, building 3, Moscow, 119 017, Russia- software department- programmer.

Показать Свернуть
Заполнить форму текущей работой