Файл: Дипломный проект Калинин Е.А. 10.05.11 (финал).doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.12.2024

Просмотров: 4278

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Содержание

Глава 1. Обзор литературы и постановка задачи 8

1.4 Модели программирования 41

6.4.10 Мероприятия и средства по защите окружающей среды 103

Введение

Глава 1. Обзор литературы и постановка задачи

1.1 Высокопроизводительные вычисления

1.2 Архитектура суперкомпьютеров.

1.2.1 Коммуникационные среды.

1.2.2 Топология соединительной сети суперкомпьютеров

1.2.3 Обзор коммуникационных сред

1.3. Программное обеспечение

1.3.1 Классификация ос

1.3.2Компиляторы

1.3.3 Компилятор gnu Compiler Collection

1.3.6 Библиотеки для программирования параллельных вычислений.

1.3.7 Библиотеки программирования вMpi,cudAиshmem.

1.4 Модели программирования

1.4.1 Модель передачи сообщенийMpi

1.4.2 ТехнологияOpenMp

1.4.3 Технология: shmem.

1.5 Постановка задачи.

Глава 2. Разработка Алгоритма тестирования

2.1 Алгоритм теста латентности и коммуникационной производительности.

2.2. Блок схема алгоритма

Глава 3. Разработка программного обеспечения

3.1 Описание и состав суперкомпьютера «эск-е»

3.2 Функциональная схема коммуникационной среды.

3.3 Основная конфигурацияPci

3.4 Текст программы

3.4.1 Объяснение значений параметров тестового по.

Глава 4. Экспериментальные исследования

Глава 5. Организационно – экономическая часть.

5.1. Технико-экономическое обоснование объекта проектирования.

5.2. Состав конструкторской группы и их должностные оклады.

5.3. Перечень этапов опытно-конструкторских работ при разработке программного обеспечения.

5.4. Расчёт сметы затрат на окр при разработке программного обеспечения.

5.5. Вывод

Глава 6. Безопасность и экологичность проектных решений

6.1. Цель и решаемые задачи

6.2. Опасные и вредные факторы при работе с пэвм

6.3. Характеристика объекта исследования

6.4. Мероприятия по безопасности труда и сохранению работоспособности.

6.4.1. Обеспечение требований эргономики и технической эстетики

6.4.1.1. Планировка помещения и размещение оборудования

6.4.1.2. Эргономические решения по организации рабочего места пользователя пэвм

6.4.1.3. Цветовое оформление помещения

6.4.2. Обеспечение оптимальных параметров воздуха рабочих зон

6.4.2.1. Нормирование параметров микроклимата

6.4.2.2. Нормирование уровней вредных химических веществ

6.4.2.3. Нормирование уровней аэроионизации

6.4.3. Создание рационального освещения

6.4.4 Защита от шума

6.4.5 Обеспечение режимов труда и отдыха

6.4.6. Обеспечение электробезопасности

6.4.7. Защита от статического электричества

6.4.8. Обеспечение допустимых уровней электромагнитных полей

6.4.9 Обеспечение пожаробезопасности

6.4.9.1 Обеспечение безопасной эвакуации персонала

6.4.9.2 Средства извещения и сигнализации о пожаре.

6.4.9.3 Способы и средства тушения пожара

Пути снижения выбросов и токсичности: стимулом к сокращению объёмов предполагается заинтересованность в сокращении расхода топлива.

6.4.10.1 Утилизация компьютеров и оргтехники

6.5. Инженерные расчеты

6.5.1. Расчет эвакуационного выхода.

Заключение

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

  • Возможность использования в языках Фортран, Си, Си++;

  • Предоставление возможностей для совмещения обменов сообщениями и вычислений;

  • Предоставление режимов передачи сообщений, позволяющих избежать излишнего копирования информации для буферизации;

  • Широкий набор коллективных операций (например, широковещательная рассылка информации, сбор информации с разных процессоров), допускающих гораздо более эффективную реализацию, чем использование соответствующей последовательности пересылок точка-точка;

  • Широкий набор редукционных операций (например, суммирование расположенных на разных процессорах данных, или нахождение их максимальных или минимальных значений), не только упрощающих работу программиста, но и допускающих гораздо более эффективную реализацию, чем это может сделать прикладной программист, не имеющий информации о характеристиках коммуникационной системы;

  • Удобные средства именования адресатов сообщений, упрощающие разработку стандартных программ или разделение программы на функциональные блоки;

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

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


1.4.2 ТехнологияOpenMp

OpenMP (Open Multi-Processing) — открытый стандарт для распараллеливания программ на языках Си, Си++ и Фортран. Описывает совокупность директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью.

OpenMP реализует параллельные вычисления с помощью многопоточности, в которой «главный» (master) поток создает набор подчиненных (slave) потоков и задача распределяется между ними. Предполагается, что потоки выполняются параллельно на машине с несколькими процессорами (количество процессоров не обязательно должно быть больше или равно количеству потоков).

1.4.3 Технология: shmem.

Shmem (Shared Memory – разделяемая память) – как и MPI, представляет собой библиотеку функций, вызываемых из ветви параллельной программы. Эта технология гораздо меньше известна и распространена, чем MPI. Тем не менее, она в течение многих лет служила низкоуровневой базой систем параллельного программирования. В частности, реализация MPI для этих машин построена на базе shmem. Впоследствии была выполнена реализация shmem для кластерной сети. Эту технологию можно считать такой же «классической» среди технологий односторонних обменов, как MPI – среди технологий двусторонних обменов. В отличие от MPI, shmem принципиально рассчитана на полностью гомогенные многопроцессорные вычислители. Предполагается не только общность системы команд и, тем самым, машинного представления чисел во всех узлах вычислителя, но и одинаковая на всех узлах операционная система, а также один и тот же исполняемый файл ветви параллельной программы во всех процессах. Программа, использующая shmem, может быть написана на Фортране или Си.

1.5 Постановка задачи.

Анализ литературы позволяет сделать вывод об актуальности темы «Разработка тестового программного обеспечения коммутационной среды PCI-Express суперкомпьютера ЭКС-Е».

Таким образом, можно сформулировать задачу данного проекта.

Постановка задачи:

  1. Разработать алгоритм программы тестирования;

  2. Разработать программное обеспечение для кластера;

  3. Провести экспериментальные исследования, подтверждающие работоспособность разработанных средств ПО и соответствие их требованиям технического задания.


Глава 2. Разработка Алгоритма тестирования

Алгори́тм, от имени учёного аль-Хорезми — точный набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное время. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Это связано с тем, что работа каких-то инструкций алгоритма может быть зависима от других инструкций или результатов их работы. Таким образом, некоторые инструкции должны выполняться строго после завершения работы инструкций, от которых они зависят. Независимые инструкции или инструкции, ставшие независимыми из-за завершения работы инструкций, от которых они зависят, могут выполняться в произвольном порядке, параллельно или одновременно, если это позволяют используемые процессор и операционная система.

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

Виды Алгоритмов

Рекурсивные алгоритмы (алгоритмы, вызывающие сами себя до тех пор, пока не будет достигнуто некоторое условие возвращения)

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


2.1 Алгоритм теста латентности и коммуникационной производительности.

Назначение теста TRANSFER состоит в том, чтобы измерять пиковые характеристики обмена данными между двумя узлами - латентность и пропускную способность.

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

Основными характеристиками быстродействия сети являются латентность (latency) и пропускная способность (bandwidth).

Под пропускной способностью R сети будем понимать количество информации, передаваемой между узлами сети в единицу времени (байт в секунду). Очевидно, что реальная пропускная способность снижается программным обеспечением за счет передачи разного рода служебной информации.

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

Различают следующие виды пропускной способности сети:

пропускная способность однонаправленных пересылок ("точка-точка", uni-directional bandwidth), равная максимальной скорости, с которой процесс на одном узле может передавать данные другому процессу на другом узле.

пропускная способность двунаправленных пересылок (bi-directional bandwidth), равная максимальной скорости, с которой два процесса могут одновременно обмениваться данными по сети.

Значения пропускной способности будем выражать в мегабайтах в секунду (MB/sec), значения латентности - в микросекундах (usec = 10-6 sec).

Время T(L), необходимое на передачу сообщения длины L, можно определить следующим образом: T(L)=s+L/R, где s - латентность, а R - пропускная способность.

Как связаны эффективность пересылок и эффективность параллельных программ?

Для приложений с тонкой параллельной структурой (fine-grained parallelism), какими, как правило, являются вычислительные программы, крайне важны малые величины латентности; тогда как для приложений, использующих большие объемы пересылок (а это, как правило, коммерческие приложения БД), более важно максимальное увеличение пропускной способности.


Методика измерения пропускной способности

Для измерения пропускной способности "точка-точка" используется следующая методика. Процесс с номером 0 посылает процессу с номером 1 сообщение длины L байт. Процесс 1, приняв сообщение от процесса 0, посылает ему ответное сообщение той же длины. Используются блокирующие (blocking) вызовы shmem (shmem _Send, shmem _Recv). Эти действия повторяются N раз с целью минимизировать погрешность за счет усреднения. Процесс 0 измеряет время T, затраченное на все эти обмены. Пропускная способность R определяется по формуле R=2NL/T.

Пропускная способность двунаправленных обменов определяется по той же формуле. В этом случае используются неблокирующие (non-blocking) вызовы shmem (shmem _Isend, shmem _Irecv). При этом производится измерение времени, затраченного процессом 0 на передачу сообщения процессу 1 и прием ответа от него, при условии, что процессы начинают передачу информации одновременно после точки синхронизации.

Латентность измеряется как время, необходимое на передачу сигнала, или сообщения нулевой длины. При этом, для снижения влияния погрешности и низкого разрешения системного таймера, важно повторить операцию посылки сигнала и получения ответа большое число N раз. Таким образом, если время на N итераций пересылки сообщений нулевой длины туда и обратно составило T сек., то латентность измеряется как s=T/(2N).

Тест реализован в виде нескольких файлов на языке Си. Основной модуль (оболочка теста) содержится в файле test_shell.c, необходимые определения и прототипы функций находятся в заголовочном файле transfer.h. а в файлах transf1.c,transf2.c, ... transf5.c содержатся тестовые процедуры с именем transfer_test_operation(), которые соответствуют различным способам организации обменов между двумя процессорами. Например, transf1.c содержит процедуру однонаправленных обменов с помощью блокирующих вызовов shmem _Send/ shmem _Recv, transf2.c - процедуру двунаправленных обменов с использованием shmem_Sendrecv, transf3.c - процедуру двунаправленных обменов с использованием неблокирующих вызовов shmem _Isend/ shmem _Irecv.

Перед измерением производительности в каждом случае производится однократный запуск тестовой процедуры для проверки корректности пересылок.

Правило для сборки теста с помощью утилиты make описано в файле Makefile. После успешной сборки создаются исполняемые файлы transf1, transf2, ... transf5.

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