Организация параллельного ввода-вывода для кластеров с многоядерными процессорами (848709)
Текст из файла
Московский государственный университет имени М. В. ЛомоносоваФакультет Вычислительной Математики и Кибернетики, кафедрасистемного программированияДипломная работа"Организация параллельного ввода-вывода для кластеров смногоядерными процессорами"Выполнил:Максимец Илья Владимировичгруппа 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.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.