Организация параллельного ввода-вывода для кластеров с многоядерными процессорами
Описание файла
PDF-файл из архива "Организация параллельного ввода-вывода для кластеров с многоядерными процессорами", который расположен в категории "". Всё это находится в предмете "дипломы и вкр" из 12 семестр (4 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Московский государственный университет имени М. В. ЛомоносоваФакультет Вычислительной Математики и Кибернетики, кафедрасистемного программированияДипломная работа"Организация параллельного ввода-вывода для кластеров смногоядерными процессорами"Выполнил:Максимец Илья Владимировичгруппа 528Научный руководитель:профессор д.ф.-м.н.Крюков Виктор АлексеевичМосква2014Оглавление1.
Аннотация . . . . . . . . . . . . . . . . . . . . . . . . .2. Введение . . . . . . . . . . . . . . . . . . . . . . . . . .2.1. Потребность в параллельном вводе-выводе . . .2.2. DVM . . . . . . . . . . . . . . . . . . . . . . . .3. Постановка задачи . . . . . . .
. . . . . . . . . . . . .4. Обзор предметной области . . . . . . . . . . . . . . . .4.1. Параллельные файловые системы . . . . . . . .4.2. MPI . . . . . . . . . . . . . . . . . . . . . . . . .4.3. OpenMP . . . . . . . . . . . . . . . . . . . . . .4.4. Выводы о состоянии дел в предметной области5. Исследование и построение решения .
. . . . . . . . .6. Описание практической части . . . . . . . . . . . . . .6.1. Система тестов . . . . . . . . . . . . . . . . . . .6.2. DVM-система . . . . . . . . . . . . . . . . . . . .7. Заключение . . . . . . . . . . . . . . . . . . . . . . . .Приложение А. Исходный код тестов . . . . . . . . . .
.Литература . . . . . . . . . . . . . . . . . . . . . . . . . .....................................................................233467789101117171821223121. АннотацияОрганизация ввода-вывода является важным этапом разработки параллельных программ. Данная работа посвящена исследованию производительности различных подходов к организации ввода-вывода, а также их практической реализации.
Проведены исследования несколькихметодов на разных вычислительных кластерах и релизованы наиболеепроизводительные из них.32. Введение2.1. Потребность в параллельном вводе-выводеМощность процессоров, объём оперативной памяти и объёмы дисковых накопителей в современных компьютерах продолжают стремительноувеличиваться. Чего нельзя сказать о скорости чтения и записи данныхна жёсткие диски. В связи с этим, узким местом в работе большого числавычислительных задач становится именно процесс ввода-вывода. Задачи, в которых он играет важную роль, зачастую, не могут получить значительного ускорения за счёт распараллеливания вычислений.
Обменыможно разделить на следующие группы:∙ Явные операторы ввода-вывода, которые необходимы для ввода начальных данных и вывода окончательных результатов.∙ Контрольные точки. Для задач с большим временем выполнениянеобходимо периодически запоминать состояние задачи. Если выполнение задачи прервано по каким-либо причинам, то ее выполнение можно продолжить с последнего запомненного состояния.∙ Временные шаги. Для задач с моделируемым временем необходимо через некоторые промежутки времени запоминать текущее состояние некоторых массивов.
Эти данные могут использоваться,например, в подсистемах визуализации.∙ Вычисления с массивами на внешней памяти. Если некоторые массивы не помещаются в оперативной памяти (рабочие внешние массивы), то организуется следующий процесс выполнения:– Внешние массивы размещаются на файлах (дисках).– Для каждого внешнего массива в оперативной памяти распределяется буфер (или несколько буферов).– Использование и модернизация внешнего массива осуществляется порциями, равными размеру буфера. Очередная порциясчитывается в буфер, обрабатывается и записывается на диск(если необходимо).Все эти обмены осуществляются и в последовательной программе,выполняемой на одном процессоре. Для параллельной системы с распределенной памятью оптимальное управление обменами значительноусложняется по следующим причинам:4∙ распределенная оперативная память,∙ распределенная внешняя память,∙ множество различных файловых систем параллельного вводавывода со своими библиотеками поддержки.Таблица 1: Объёмы обрабатываемых данных в некоторых классах задачвысокопроизводительных вычислений (в терабайтах)ПриложениеЧтение и гене- Постобработка, Анализрация данных создание контрольныхточек20-20020-200202022АстрофизикаРождениесверхновойМоделирование 2климатаКосмология5Плавление1000211110.5Поэтому управление параллельным вводом-выводом является серьезной проблемой, как с точки зрения эффективности, так и с точкизрения мобильности параллельной программы.2.2.
DVMDVM-система предназначена для создания переносимых и эффективных вычислительных приложений на языках C-DVM и Fortran-DVMдля многопроцессорных компьютеров с общей и распределенной памятью, включая и гибридные системы, в узлах которых вместе с универсальными многоядерными процессорами используются в качестве ускорителей и графические процессоры. C-DVM и Fortran-DVM представляют собой стандартные языки Фортран и Си, расширенные директивамиотображения программы на параллельную машину, оформленными в виде специальных комментариев. Среди таких директив:∙ распределение данных между процессорами;5∙ распределение витков цикла между процессорами;∙ спецификация параллельно выполняющихся секций программы(параллельных задач) и отображение их на процессоры;∙ организация эффективного доступа к удаленным (расположеннымна других процессорах) данным;∙ организация эффективного выполнения редукционных операций –глобальных операций с расположенными на различных процессорах данными (таких, как их суммирование или нахождение минимального значения).В настоящее время в DVM-системе весь ввод-вывод осуществляется через один специально выделенный процессор с рассылкой соответствующим процессорам вводимой или сбором с них выводимой информации.Увеличивающийся разрыв между скоростью процессоров и скоростьюдисков, а также отсутствие параллельного ввода-вывода в языках DVMсистемы начинает проявляться все острее.63.
Постановка задачиЗадача состоит в разработке средств параллельного ввода-выводав DVM-программах, обеспечивающих эффективное использование возможностей современных кластеров с многоядерными процессорами засчет:∙ параллельных обменов разных процессов и нитей с одним илинесколькими файлами;∙ использования коллективных операций, позволяющих преобразовать неоптимальные последовательности операций каждого процесса в единую более удобную для файловой системы последовательность;∙ совмещения операций ввода-вывода с вычислениями;∙ cжатия (упаковки) информации.Для этого необходимо провести исследования эффективности различныхсхем организации параллельного ввода-вывода:∙ N процессов пишут в один файл;∙ N процессов пишут в N файлов;∙ N процессов отсылают данные M процессам, которые пишут в Mфайлов;∙ N процессов отсылают данные M процессам, которые пишут в одинфайл.74. Обзор предметной области4.1.
Параллельные файловые системыПараллельные файловые системы широко используются на суперкомпьютерах по всему миру. К ним предъявляются следующие основныетребования:∙ Соответствие стандарту файловой системы POSIX. При невыполнении этого условия система рискует получить лишь очень ограниченную область возможного применения.∙ Масштабируемость (Возможность наращивания объёмов и производительности).∙ Независимая работа вычислительных узлов на операциях чтенияи записи с различными файлами, а также неперекрывающимисярегионами общего файла.∙ Обеспечение репликации, целостности и восстанавливаемости данных.Главный принцип параллельных файловых систем – распределениеданных и метаданных между носителями для обеспечения раздельного/независимого доступа к ним.
Из этого принципа и основных требований вытекают некоторые особенности работы:∙ Большой по сравнению с файловыми системами общего назначенияразмер блока ( ≥ 64kB )∙ Операции над метаданными (например, fstat()) медленные по сравнению с операциями чтения/записи∙ Специальный API для прямого доступаВсё это должна учитывать система ввода-вывода для современного кластера. Примеры параллельных файловых систем:∙ GPFS (IBM)∙ Lustre (GNU GPL)84.2.
MPIВ модели MPI параллельная программа представляет собой множество процессов, каждый из которых имеет собственное локальное адресное пространство. Взаимодействие процессов (обмен данными и синхронизация) осуществляется посредством передачи сообщений. MPI представляет программисту набор функций MPI-IO.Для осуществления ввода-вывода в MPI-IO предусмотрены 3 группыфункций (по типу позиционирования в файле):∙ Функции, работающие с указанием точного смещения в файле, передаваемого в качестве параметра. Примером такой функции является MPI_File_write_at.∙ Функции, работающие с индивидуальными файловыми указателями. Для каждого MPI-процесса текущее смещение в файлеувеличивается на размер блока после выполнения операции чтения/записи.
Примером такой функции является MPI_File_write.∙ Функции, работающие с общим файловым указателем. MPI поддерживает общее для всех процессов смещение, которое меняется после завершения каждой операции ввода-вывода любого MPIпроцесса. Примером такой функции является MPI_File_write_shared.Все функции ввода-вывода в MPI-IO можно разделить на блокирующие (завершаются после выполнения соответствующей операции вводавывода) и неблокирующие (позволяют совместить вычисления и вводвывод), а также индивидуальные и коллективные (выполняемые всемиMPI-процессами). Одним из достоинств MPI-IO является возможностьработы с представлением файлов (fille views) – описанием способа отображения частей файла в логическое представление файла в MPI.