Издательский Дом МГУ
Суперкомпьютерное образование

Суперкомпьютерное образование

INMOST-программная платформа и графическая среда для разработки параллельных численных моделей на сетках INMOST-программная платформа и графическая среда для разработки параллельных численных моделей на сетках

В учебном пособии представлен опыт создания параллельной программной MPI-платформы и графической среды для разработки параллельных численных моделей на сетках общего вида. Технологический комплекс INMOST (Integrated Numerical Modeling and Object-oriented Supercomputing Technologies) – инструментарий для суперкомпьютерного моделирования, характеризуемый максимальной общностью поддерживаемых расчетных сеток, гибкостью и экономичностью структуры распределенных данных, кросплатформенностью, а также графической средой для интерактивного пользовательского интерфейса.

Данное учебное пособие будет полезно разработчикам СИА, инженерам и математикам-вычислителям, деятельность которых связана с суперкомпьютерным моделированием: всем тем, кто непосредственно создает параллельные приложения или использует параллельные численные модели.

Алгоритмы для разреженных систем линейных уравнений в GF (2) Алгоритмы для разреженных систем линейных уравнений в GF (2)

«Рабочими лошадками» всей вычислительной математики являются системы линейных уравнений и программы, которые способны быстро решать системы линейных уравнений. В учебном пособии рассматриваются алгоритмы, предназначенные для решения больших разреженных систем линейных уравнений над полем GF(2), полученных методами решета в задаче о разложении большого натурального числа в произведение двух простых. Общее количество операций для рассматриваемых систем и алгоритмов столь велико, что единственная возможность решать такие задачи состоит в применении параллельных технологий. В книге анализируются параллельные свойства двух наиболее распространенных на данный момент алгоритмов: алгоритма Монтгомери и метода Видемана – Копперсмита. Параллельные реализации алгоритмов получаются в результате применения простых общих принципов создания параллельных программ. Приводятся примеры реальных расчетов, подтверждающих правильность аналитических выводов.

Вычислительная математика и структура алгоритмов: 10 лекций Вычислительная математика и структура алгоритмов: 10 лекций

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

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

Вычислительно сложные задачи теории чисел Вычислительно сложные задачи теории чисел

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

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

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

Инструменты параллельного программирования в системах с общей памятью Инструменты параллельного программирования в системах с общей памятью

В учебнике описываются методы и инструментальные средства для разработки, отладки и профилировки параллельных программ, ориентированных на работу в системах с общей памятью. Рассматриваются программные пакеты Intel Thread Checker, Intel Thread Profiler, Intel Threading Building Blocks. Дается вводная информация по пакету Intel Parallel Studio и библиотеке Intel MKL. Демонстрируется весь цикл работ, включая создание последовательной реализации в качестве базы для сравнения, подготовку параллельной версии, ее отладку, профилировку и оптимизацию. Изучение проводится на модельных задачах, не требующих наличия специфических знаний из конкретных предметных областей. Подразумевается знакомство читателя с основами программирования (базовый язык – С/С++), некоторые задачи требуют сведений из высшей математики (задача Дирихле). Учебник разработан в лаборатории «Информационные технологии» (ITLab) факультета ВМК ННГУ с использованием материалов, подготовленных в рамках Приоритетного национального проекта «Образование» при поддержке корпорации Intel и Совета по грантам Президента Российской Федерации (грант № НШ-64729.2010.9). Для преподавателей и научных сотрудников, а также аспирантов и студентов высших учебных заведений.

Итерационные методы для разреженных линейных систем. Том 1 Итерационные методы для разреженных линейных систем. Том 1

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

Методы Монте-Карло для параллельных вычислений Методы Монте-Карло для параллельных вычислений

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

Модели глобальной атмосферы и Мирового океана: алгоритмы и суперкомпьютерные технологии Модели глобальной атмосферы и Мирового океана: алгоритмы и суперкомпьютерные технологии

В книге рассматривается современное состояние применения суперкомпьютеров в задачах прогноза погоды и исследованиях климата Земли. Представлены параллельные реализации и тенденции развития моделей атмосферы, океана и совместных моделей. Особое внимание уделяется опыту разработки и реализации глобальных моделей атмосферы, океана и Земной системы в Институте вычислительной математики РАН. Модель земной системы состоит из двух основных блоков: моделей гидро-термодинамики атмосферы и океана, а также может включать в себя блоки эволюции морского льда, углеродный цикл, химию атмосферы. Полнота описания основных климатообразующих процессов позволяет проводить с моделью земной системы численные эксперименты по воспроизведению современного климата, его прошлых и вероятных будущих изменений при различных предположениях. Также приводится обзор применяемых методов усвоения данных метеонаблюдений, обосновывается выбор наиболее подходящих для реализации на массивнопараллельной архитектуре алгоритмов.

Новые алгоритмы вычислительной гидродинамики для многопроцессорных вычислительных комплексов Новые алгоритмы вычислительной гидродинамики для многопроцессорных вычислительных комплексов

В настоящей монографии, предназначенной для студентов, аспирантов и научных сотрудников, собран воедино и систематизирован материал многолетней работы большой группы специалистов в области математического моделирования и вычислительной математики. Среди множества направлений и подходов, конкурирующих в современном мире, авторы выбрали сравнительно новое направление (метод «КАБАРЕ»), к развитию которого они оказались в той или иной мере причастны. Данный подход, развиваемый в МГУ имени М. В. Ломоносова, ИБРАЭ РАН, ЦАГИ и ряде других российских и зарубежных (Кембриджский университет, Лондонский университет «Квин Мэри») организаций, имеет хорошие конкурентные позиции и активно развивается. В предлагаемой монографии очень подробно описана ключевая идея метода «КАБАРЕ» в ее развитии – от простейших линейных одномерных уравнений гиперболического типа до методик решения многомерных задач гидродинамики и газовой динамики на неструктурированных сетках в сложных пространственных областях, характерных для приложений индустриальной математики. Книгу можно рассматривать в качестве ученого пособия и основы для разработки вычислительного практикума по методам решения уравнений математической физики с доминирующими процессами сеточного переноса.

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

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

Параллельные вычисления в задачах глобальной оптимизации Параллельные вычисления в задачах глобальной оптимизации

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

Параллельные вычисления на GPU. Архитектура и программная модель CUDA Параллельные вычисления на GPU. Архитектура и программная модель CUDA

Данная книга представляет собой подробное практическое руководство по разработке приложений с использованием технологии NVIDIA CUDA версии 4. В первой части последовательно излагаются основы программной модели CUDA применительно к языкам C и Fortran, сведения о типах памяти GPU и методы эффективного использования разделяемой памяти на примере некоторых вычислительных алгоритмов.

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

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

Параллельные системы баз данных Параллельные системы баз данных

Цель учебного пособия состоит в изложении основ технологий параллельных систем баз данных. Особое внимание уделяется вопросам реализации СУБД для кластерных систем. Дается классификация известных форм параллельной обработки транзакций. Приводится сравнительный анализ различных архитектур параллельных систем баз данных. Рассматриваются возможные технологические подходы к организации параллельной обработки запросов. Обсуждается итерационная модель, синхронный и асинхронный конвейеры. Излагаются методы фрагментации данных и способы организации межпроцессорных обменов. Предлагается подход к автоматическому преобразованию последовательного плана выполнения запроса в параллельный. Большое внимание уделяется вопросам моделирования параллельных систем баз данных и организации эффективной буферизации в условиях использования фрагментного параллелизма. Книга ориентирована на студентов, аспирантов и научных работников, специализирующихся в области разработки технологий параллельных систем баз данных и их применения для обработки сверхбольших объемов данных на современных многоядерных и многопроцессорных системах с кластерной архитектурой.

Практикум по методам параллельных вычислений Практикум по методам параллельных вычислений

В учебнике представлены необходимые сведения для работы на многопроцессорной вычислительной системе (кластере): даны основные понятия операционной системы GNU/Linux, перечислены правила работы с функциями библиотеки Message Passing Interface, современными компиляторами и технологией OpenMP. Большое внимание уделено практическим вопросам создания параллельных программ для вычисления кратных интегралов, проведения матричных вычислений, решения СЛАУ, численного решения систем ОДУ и уравнений в частных производных. Подробно рассмотрены основные особенности использования математической библиотеки PETSc для параллельных вычислений. Для быстрого освоения и получения практического опыта параллельного программирования в пособии содержится большое количество примеров, необходимых для пользователя, решающего задачи математического моделирования с помощью вычислительной техники. Для научных сотрудников, аспирантов, студентов, преподавателей, использующих высокопроизводительные вычислительные ресурсы в научной и учебной работе.

Современные языки и технологии параллельного программирования Современные языки и технологии параллельного программирования

В учебнике представлен широкий спектр языков и технологий, активно используемых при разработке параллельного программного обеспечения. В числе рассмотренных подходов: технологии для разработки параллельных программ для систем с общей и распределенной памятью (MPI, OpenMP), языки параллельного программирования на основе разделенного глобально адресуемого пространства (UPC, CAF, Chapel, X10) и технологии разработки параллельных программ для графических процессоров (CUDA, OpenCL). Рассмотрение такого значительного набора языков и технологий в рамках одного учебника позволяет получить полное представление о разнообразии существующих подходов в области параллельного программирования. Для широкого круга студентов, аспирантов и специалистов, желающих изучить и практически использовать параллельные компьютерные системы для решения вычислительно трудоемких задач. Рекомендовано Советом учебно-методического объединения классических университетов России по прикладной математике и информатике. Подготовка учебника была выполнена в лаборатории «Информационные технологии» (ИТЛаб) Научно-образовательного центра «СКТ-Приволжье» в рамках программы развития Нижегородского университета как Национального исследовательского университета.

Технологии параллельного программирования для процессоров новых архитектур Технологии параллельного программирования для процессоров новых архитектур

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

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

Особое внимание уделяется широко распространенному сегодня типу ускорителей — графическим процессорам, которые за последние семь лет претерпели самые существенные изменения и превратились в универсальные процессоры общего назначения. Дается обзор существующих систем разработки для ГПУ и рассматриваются их достоинства и недостатки при решении различных задач. Подробно обсуждаются наиболее актуальные в настоящий момент инструменты: графические интерфейсы и шейдерные языки (на примере OpenGL и GLSL), NVIDIA CUDA и OpenCL.

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