Главная » Просмотр файлов » Модели параллельных вычислений и DVM технология разработки параллельных программ (2)

Модели параллельных вычислений и DVM технология разработки параллельных программ (2) (1158288)

Файл №1158288 Модели параллельных вычислений и DVM технология разработки параллельных программ (2) (Лабораторный практикум)Модели параллельных вычислений и DVM технология разработки параллельных программ (2) (1158288)2019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

- 4 - 21.9.2019

Лабораторный практикум

"Модели параллельных вычислений и DVM‑технология разработки параллельных программ"

Общее описание лабораторного практикума

Цели и задачи практикума:

Приобретение навыков разработки и отладки параллельных программ типовых вычислительных алгоритмов в модели DVM (модель параллелизма по данным и параллелизма задач).

Необходимое оборудование и ПО:

Вычислительный кластер МВС15000 (МСЦ), система DVM .

Необходимый уровень подготовки:

Для успешного выполнения практикума предполагается наличие следующих знаний:

  • Знание языков программирования Си и Фортран,

  • Предварительное ознакомление с методикой разработки и отладки программ в системе DVM [1,2].

Методические рекомендации по выполнению:

Весь материал, необходимый для выполнения практикума, содержится в лекционном курсе и методических пособиях [1,2]. Полезная дополнительная информация может быть найдена в материалах [3,4,5].

Планируемый результат:

  • Параллельные программы,

  • Результаты выполнения экспериментов по оценке производительности (таблицы и графики времени выполнения, ускорения и эффективности),

  • Выводы по полученным результатам (объяснение убывания или возрастания производительности параллельной программы при варьировании виртуальной решетки процессоров).

Распараллеливание матричных алгоритмов

Цель:

  • Получить навыки разработки новой параллельной программы в модели параллелизма по данным.

  • Оценить производительность на разном количестве процессоров и достичь максимальной производительности для определенного количества процессоров вариацией размера блока (ширины ленты) m.

Алгоритмы умножения матриц

Блочное представление

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

Пусть даны матрицы A, B и результирующая матрица C размером nn. Представим матрицы в виде блоков размера mm, где n кратно m (т.е. n= mk). Тогда операцию матричного умножения в блочном виде можно представить следующим образом:


A11 A12…A1k B11 B12…B1k C11 C12…C1k

. . .  . . . = . . . ,

Ak1 Ak2…Akk Bk1 Bk2…Bkk Ck1 Ck2…Ckk

где каждый блок Cij матрицы C определяется в соответствии с выражением

k

Cij =  Ait Btj

t=1

Алгоритм Фокса

Основные положения параллельного метода, известного как алгоритм Фокса, состоят в следующем.

Инициализация матриц A, B

C = 0

B' = B

На каждой итерации t (1  t  k ) выполняются следующие операции:

  • Блок Aijt рассылается (размножается) по блокам i-ой строки матрицы A'

A'ij = Aijt (1  j  k )

где jt = (1+t-k)mod k + 1 (mod k – остаток целочисленного деления на k)

  • Для каждого блока Cij выполняется операция

Cij = Cij + A'ij  B'ij

  • Блоки B'ij сдвигаются (пересылаются) вверх по столбцу на 1 позицию (блок) по кольцу.

Bij = B'i2j , где i2 = ( i )mod k + 1, (1  i  k )

B' = B

Пересылка по кольцу означает, что первая строка блоков пересылается в последнюю строку блоков.

Алгоритм Кеннона

Основные положения алгоритма Кеннона.

Инициализация матриц A, B

C = 0

Блок Aij смещается влево по кольцу i-ой строки на i позиций (блоков)

A'ij = Aij3 , где j3 = (i+j-1)mod k +1, (1  i  k )

Блок Bij смещается вверх по кольцу j-ого столбца на j позиций

B'ij = Bi3j , где i3 = ( i+j-1)mod k +1, (1  i  k )

На каждой итерации t (1  t  k ) выполняются следующие операции:

  • Для каждого блока Cij выполняется операция

Cij = Cij + A'ij  B'ij

  • Блоки A'ij смещается влево по кольцу i-ой строки на 1 позицию

Aij = A'ij2 , где j2 = ( j )mod k + 1

  • Блоки B'ij смещается вверх по кольцу j-ого столбца на 1 позицию

Bij = B'i2j , где i2 = ( i )mod k + 1

  • Копирование матриц

A' = A

B' = B

Ленточный алгоритм

В ленточном алгоритме матрицы разделяются по одному измерению. Матрицы разделяются на ленты шириной m (n=mk).

Разделим матрицы A и C по строкам, а матрицы B и B' разделим по столбцам.

Представим логически матрицу C в виде блоков размера mm.

Введем следующие обозначения:

Ai - i-ая лента матрицы A по строкам

B'j - j -ая лента матрицы B' по столбцам

Cij – логический блок матрицы C

Основные положения ленточного алгоритма.

Инициализация матриц A, B

C = 0

B'=B

На каждой итерации t (1  t  k ) выполняются следующие операции:

Вычисление следующих блоков матрицы C

Cij = Ai  Bj , где 1  i  k и j= (i+t-2)mod k + 1

Ленты смещаются влево по строкам на 1 позицию

Bj = B'j1 , где j1 = ( j )mod k + 1

Копирование матрицы

B' = B

m

m

M

m

p1

1

2

3

4

m

p2

4

1

2

3

m

p3

3

4

1

2

m

p4

2

3

4

1

m

Целое число t внутри каждого блока указывает номер итерации, на которой вычисляется соответствующий блок матрицы Cij.

Отображение блочных методов в модели DVM

Обычно блочные методы рассматриваются для двумерной решетки процессоров pp = p2. При этом на каждый процессор pij распределяется по одному блоку каждой матрицы, что требует кратности размера матрицы n количеству процессоров p.

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

Если k=p, то на каждый процессор будет распределен ровно 1 блок каждой матрицы.

Если k>p, то на некоторые процессоры будет распределено несколько блоков матриц. При этом, если k не кратно p, то мы получим несбалансированную загрузку процессоров.

Все эти варианты описываются следующими спецификациями на языке Fortran-DVM.

CDVM$ DISTRIBUTE A (MULT_BLOCK(m), MULT_BLOCK(m))

Спецификация распределяет матрицу А на виртуальную решетку процессоров pp (p1). При этом по каждому измерению матрица А распределяется блоками кратности m.

CDVM$ ALIGN ( i,j ) WITH A( i,j ) :: B, C, A1, B1

Спецификация указывает, что матрицы B, C, A1, B1 будут распределены в точном соответствии с распределением матрицы A.

Для ленточного метода матрицы распределяются на виртуальную линейку процессоров следующими директивами языка Fortran-DVM:

CDVM$ DISTRIBUTE A ( MULT_BLOCK(m), *)

CDVM$ ALIGN ( i,j ) WITH A( i,j ) :: C

CDVM$ ALIGN ( j,i) WITH A( i,j ) :: B, B1

Асинхронная (параллельная) пересылка блоков на языке Fortran‑DVM

Описание переменной типа «сигнал»:

CDVM$ ASYNCID TSIG

Начало цикла копирования одного или нескольких блоков:

CDVM$ ASYNCHRONOUS

A1(IL1:IR1, JL1:JL1) = A(IL:IR, JL:JR)

CDVM$ END ASYNCHRONOUS

Конец цикла копирования.

Ожидание конца копирования:

CDVM$ ASYNC_WAIT TSIG

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

Параллельная пересылка блоков на языке C-DVM описана в методике [2] (см.директиву COPY)

Планируемый результат:

  1. Параллельная программа умножения матриц.

Программа должна состоять из следующих частей:

  • Инициализация:

DO(I,0,N-1,1)

DO(J,0,N-1,1)

{

C[I][J]=0;

A[I][J]=I+J+2;

B[I][J]=I+J+2;

}

  • основной цикл вычислений,

  • вывод результатов.

Результатом является сумма элементов результирующей матрицы или массивов. Эта же сумма используется для сравнения выполнения параллельной программы и последовательной программы (функциональная отладка).

  1. Таблицы времени, ускорения и эффективности для разного количества процессоров.

  2. Файл статистики максимальной производительности для определенного количества процессоров и размер блока m, при котором достигнута эта производительность.

Литература

  1. Параллельное программирование на языке FORTRAN-DVM. Методическое пособие по практикуму для студентов 2-4 курсов. МГУ им. М.В.Ломоносова. Факультет ВMиК. Москва, 2002 г.

  2. Параллельное программирование на языке C-DVM. Методическое пособие по практикуму для студентов 2-4 курсов. МГУ им. М.В.Ломоносова. Факультет ВMиК. Москва, 2002 г.

  3. Дж. Ортега. Введение в параллельные и векторные методы решения линейных систем. Москва, «Мир», 1991.

  4. Описание языка FORTRAN-DVM. http://www.keldysh.ru/dvm

  5. Описание языка C-DVM. http://www.keldysh.ru/dvm

Характеристики

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

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

Список файлов лабораторной работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6537
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее