В книге излагаются методы решения задач с помощью статистического моделирования. Рассматриваемые алгоритмы предназначены для использования в параллельных вычислениях на компьютерных комплексах различной архитектуры. Последовательно излагаются методы получения независимых потоков псевдослучайных чисел и случайных векторов с заданным законом распределения, методы приближенного вычисления интегралов высокой размерности и численного решения некоторых классов дифференциальных уравнений в обыкновенных и частных производных, методы имитационного моделирования.
Книга ориентирована на студентов, знакомящихся с элементами вычислительной математики и параллельного программирования, а также на исследователей, применяющих численное моделирование для решения прикладных задач.
Данная работа посвящена проблематике анализа сложных многоэкстремальных моделей принятия решений, которая является традиционной для научной школы проф. Р. Г. Стронгина, имеющей мировое признание в этой области. Работа содержит необходимый теоретический аппарат для конструирования и анализа параллельных методов, основанный на информационно-статистическом подходе к построению методов оптимизации, характеристической теории сходимости и эффективности методов поиска экстремума и методологии редукции сложности исследуемых моделей. Приводится описание вычислительных схем методов оптимизации, их теоретическое обоснование и примеры практического применения. Дается краткая характеристика программных средств, реализующих в виде законченных программных систем предложенные методы поиска глобально-оптимальных решений и нашедших свое применение при решении сложных прикладных задач и в учебном процессе как среда выполнения лабораторных работ и исследований. Книга предназначена для широкого круга студентов, аспирантов и специалистов, желающих изучить и практически использовать параллельные методы глобальной оптимизации для решения вычислительно трудоемких прикладных задач. Данная монография рекомендована Ученым советом факультета вычислительной математики и кибернетики (ВМК) Нижегородского государственного университета имени Н. И. Лобачевского для использования в учебном процессе. Подготовка монографии была выполнена в рамках реализации проекта комиссии Президента РФ по модернизации и технологическому развитию экономики России «Создание системы подготовки высококвалифицированных кадров в области суперкомпьютерных технологий и специализированного программного обеспечения».
В век развития многоядерной процессорной архитектуры тема параллельного программирования для инженеров и проектировщиков компьютерных систем становится очень важной. Книга «Принципы параллельного программирования», написанная известными учеными-исследователями Кэлвином Лином (кафедра информатики Техасского университета, г. Остин) и Лоуренсом Снайдером (кафедра информатики и вычислительной техники университета Вашингтона, г. Сиэтл), посвящена основополагающим принципам параллельных вычислений.
В книге дается объяснение различным явлениям и приводятся примеры случаев, когда эти явления способствуют успеху параллельного программирования, либо, наоборот, создают определенные сложности.
Издание предназначено для студентов-специалистов старших курсов университетов, для студентов, обучающихся по магистерским программам, а также для профессионалов, желающих освоить параллельное программирование.
В книге содержится ценная достоверная информация, которая останется актуальной, несмотря на эволюцию аппаратного и программного обеспечения.
Предисловие: В.А. Садовничий
В учебном пособии представлен опыт создания параллельной программной MPI-платформы и графической среды для разработки параллельных численных моделей на сетках общего вида. Технологический комплекс INMOST (Integrated Numerical Modeling and Object-oriented Supercomputing Technologies) – инструментарий для суперкомпьютерного моделирования, характеризуемый максимальной общностью поддерживаемых расчетных сеток, гибкостью и экономичностью структуры распределенных данных, кросплатформенностью, а также графической средой для интерактивного пользовательского интерфейса.
Данное учебное пособие будет полезно разработчикам СИА, инженерам и математикам-вычислителям, деятельность которых связана с суперкомпьютерным моделированием: всем тем, кто непосредственно создает параллельные приложения или использует параллельные численные модели.
В учебном пособии подробно рассматриваются четыре задачи, привлекающие внимание исследователей на протяжении последних десятилетий: разложение больших составных чисел на множители, дискретное логарифмирование в мультипликативной группе вычетов по простому модулю, решение больших разреженных систем линейных уравнений над конечными полями, вычисление ранга эллиптических кривых, определенных над полем рациональных чисел.
Наиболее быстрые алгоритмы решения первых двух задач основаны на так называемом алгоритме решета числового поля, сводящем их к решению больших разреженных систем линейных уравнений над конечными полями. Системы эти настолько велики, что к ним не применимы обычные алгоритмы решения. Используются специальные блочные итерационные алгоритмы.
Эта область прикладной теории чисел активно развивается во всем мире в связи с приложениями в криптографии. Из-за отсутствия нижних оценок сложности решения этих теоретико-числовых задач, единственным способом проверки надежности используемых криптографических алгоритмов служит их практическая проверка с использованием самых совершенных алгоритмов и наиболее мощной вычислительной техники.
В учебнике описываются методы и инструментальные средства для разработки, отладки и профилировки параллельных программ, ориентированных на работу в системах с общей памятью. Рассматриваются программные пакеты Intel Thread Checker, Intel Thread Profiler, Intel Threading Building Blocks. Дается вводная информация по пакету Intel Parallel Studio и библиотеке Intel MKL. Демонстрируется весь цикл работ, включая создание последовательной реализации в качестве базы для сравнения, подготовку параллельной версии, ее отладку, профилировку и оптимизацию. Изучение проводится на модельных задачах, не требующих наличия специфических знаний из конкретных предметных областей. Подразумевается знакомство читателя с основами программирования (базовый язык – С/С++), некоторые задачи требуют сведений из высшей математики (задача Дирихле).
Учебник разработан в лаборатории «Информационные технологии» (ITLab) факультета ВМК ННГУ с использованием материалов, подготовленных в рамках Приоритетного национального проекта «Образование» при поддержке корпорации Intel и Совета по грантам Президента Российской Федерации (грант № НШ-64729.2010.9).
Для преподавателей и научных сотрудников, а также аспирантов и студентов высших учебных заведений.
В книге представлены лекции, прочитанные автором в различных учебных заведениях, институтах и на научных конференциях. Все они посвящены вопросам эффективного решения задач на вычислительных системах параллельной архитектуры. Особое внимание уделяется изучению информационной структуры алгоритмов и ее влиянию на разработку эффективно реализуемых программ. Обсуждаются особенности математического образования по отношению к требованиям параллельных вычислений.
Для студентов, аспирантов и научных работников, специализирующихся в области исследования структуры алгоритмов, решения больших задач и создания программного обеспечения для параллельных вычислительных систем.
Настоящий учебник направлен на представление обзора технологий программирования и эффективного использования различных типов параллельных архитектур, включая современные графические процессоры, ускорители ClearSpeed и процессоры Cell BE.
В данном учебнике излагаются основные вопросы использования ускорителей. Дается обзор различных архитектурных решений и соответствующих средств разработки, а также исследуется эффективность данных решений на примере задачи моделирования динамики системы N точечных масс.
Особое внимание уделяется широко распространенному сегодня типу ускорителей — графическим процессорам, которые за последние семь лет претерпели самые существенные изменения и превратились в универсальные процессоры общего назначения. Дается обзор существующих систем разработки для ГПУ и рассматриваются их достоинства и недостатки при решении различных задач. Подробно обсуждаются наиболее актуальные в настоящий момент инструменты: графические интерфейсы и шейдерные языки (на примере OpenGL и GLSL), NVIDIA CUDA и OpenCL.
Получаемый в результате изучения данного пособия набор знаний и умений является достаточным для того, чтобы читатель смог самостоятельно адаптировать и реализовать свой алгоритм для того или иного ускорителя, обеспечив эффективное решение задачи.