Главная » Просмотр файлов » А.И.Илюшин, М.А.Оленин, С.А.Васильев - Решение проблемы параллельных вычислений на основе понятий «пространство-время»

А.И.Илюшин, М.А.Оленин, С.А.Васильев - Решение проблемы параллельных вычислений на основе понятий «пространство-время» (1185570), страница 5

Файл №1185570 А.И.Илюшин, М.А.Оленин, С.А.Васильев - Решение проблемы параллельных вычислений на основе понятий «пространство-время» (А.И.Илюшин, М.А.Оленин, С.А.Васильев - Решение проблемы параллельных вычислений на основе понятий «пространство-время».pdf) 5 страницаА.И.Илюшин, М.А.Оленин, С.А.Васильев - Решение проблемы параллельных вычислений на основе понятий «пространство-время» (1185570) страница 52020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

A conversation with John Hennessy and David Patterson. Queue 4, 10 (Dec.2005/Jan. 2006), 14–22.[2] Krste Asanovic, Rastislav Bodik, James Demmel, Tony Keaveny, Kurt Keutzer, JohnKubiatowicz, Nelson Morgan, David Patterson, Koushik Sen, John Wawrzynek, David Wessel,Katherine Yelick, A view of the parallel computing landscape, Communications of the ACMVolume 52, Number 10 (2009), Pages 56-67[3] Илюшин А.И., Колмаков А.А., Меньшов И.С., Построение параллельнойвычислительной модели путем композиции вычислительных объектов,[4] Causality Representation and Cancellation Mechanism in Time Warp SimulationsMalolan Chetlur and Philip A.

WilseyExperimental Computing LaboratoryDept. of ECECS, PO Box 210030, Cincinnati, OH 45221-0030[5] http://math.csu.ru/~rusear/DipKurs/ParMetUmnMatr.html[6] I. Menshov, Y. Nakamura, Hybrid Explicit-Implicit, Unconditionally Stable Scheme forUnsteady Compressible Flows, AIAA Journal, Vol. 42, No. 3, pp. 551-559, 2004.[7] ost.kiam.ruПриложение 1. Результаты счета двух примеров.Расчеты производились на МВС rsc4.kiam.ru, состоящей из 64 узлов, на каждом из которыхимеется по 2 процессора.Пример 1. Умножение матриц.В примере умножения матриц перемножались матрицы одинакового размера 1024х1024,заполненные случайными числами с плавающей точкой. Матрицы делились на различноечисло частей, в соответствие с алгоритмом ленточного деления матриц [5].

Результатырасчетов представлены в таблице:Кол-во процессоров1248163264время1377,28 c689,39 c344,81 c172,62 c87,48 c50,72 с31,86 сПример 2. Расчет обтекания конуса.Эффективность100 %99 %99 %99 %98 %84 %68 %18В примере использования комплекса программ M2DGD проводилось сравнение 2-хразличных параллельных реализаций: с автоматизацией построения связей и синхронизацией(OST), и с ручным построением связей и синхронизацией (MPI).Приложение 2. Пример последовательности действий посозданию параллельной программной системы.Рассмотрим последовательность шагов, которую должен выполнить прикладнойпрограммист для создания прикладной системы, предназначенной для запуска в среде OST.Шаг 1.

В первую очередь прикладным программистом выбирается классы топологии,которые будут использоваться в системе для задания связей между параллельноэволюционирующими частями. Выбор производится либо из реализованных в системе OSTклассов наиболее часто используемых топологий, либо описывается новый пользовательскийкласс топологии.Приведем пример класса топологии в случае определения топологии с помощью функцииописания окрестности.# Класс с заданной функцией описания окрестности для топологии кольцаclass applied_ring_topology(ost.Topology.Abstract):# Конструктор класса19def __init__(self, N):self.N = N# Функция описания окрестности точки в пространствеdef neighborhood(self, p):# self - аналог this в c++# p - набор(массив) координат, рассматриваемой точки# В переменную p_left поместим набор координат соседа слеваif p[0] != 0: # Если p[0] не равен 0, то сосед на 1 меньшеp_left = [p[0] - 1]else: # иначе замыкание через кольцоp_left = [N - 1]# В переменную p_right поместим набор координат соседа слеваif p[0] != N - 1: # Если p[0] не равен N - 1, то сосед на 1 большеp_right = [p[0] + 1]else: # иначе замыкание через кольцоp_right = [0]# Возвратим описание окрестности# Синоним "left" соотвествует соседу слева# Синоним "right" соотвествует соседу справаreturn { "left": p_left,"right": p_right}Шаг 2.

Следующий шаг при создании прикладной программы – это описание классовприкладных объектов, которые будут использоваться при создании частей распределеннойприкладной системы. Стоит напомнить, что в описании такого класса используется понятиеокрестности, задаваемое конкретным классом топологии.# Общая структура класса прикладного объектаclass applied_object(ost.Object.Abstract):# Класс прикладного объекта# Класс содержит в себе функции, составляющие интерфейс объектаdef fun_1(self, ...):# Содержимое функции# ...def fun_N(self, ...):# Содержимое функции# Функция, задающая интерфейс описываемого объекта с его окружением# в виде списка формальных соседей.# При вызове создает синонимы и интерфейсы для каждого соседаdef init_topology(self):# Задаем интерфейс и синоним для формального 1-го соседаself.init_neighbor(i1, Class_interface_i1, "synonym_i1")# Задаем интерфейс и синоним для формального 2-го соседа20self.init_neighbor(i2, Class_interface_i2, "synonym_i2")...# Задаем интерфейс и синоним для формального К-го соседаself.init_neighbor(iK, Class_interface_iK, "synonym_iK")# А так же функцию, которая запускает вычисления# Функция проводящая вычисленияdef run(self):# self - аналог this в c++# Обычно в run используется цикл по итерациям алгоритмаfor iteration in xrange(0, M):# Для обращения к соседям можно использовать список(массив)# self.topology.neighbors# Обращение к i-ому соседу по fun_j-ой функцииself.topology.neighbors[i].link.fun_j()# При наличии синонимов использование проще# Обращение к соседу слева по fun_j-ой функцииself.left.fun_j()# Для синхронизации используются продвижения по времени# В переменной self.time хранится текущее время объекта# Для продвижение на шаг time_step делается запрос к монитору OST# возврат из которого произойдет только после продвиженияself.setXYZT(self.time + time_step)# Объекты могут менять свое положение в пространстве# Получение актуального массива координат текущего объектаcoord = self.topology.get_coordinates()# Монитор OST изменяет координаты# только вместе с продвижением по времениself.setXYZT(self.time + time_step, coord)# После окончания вычислений завершаем вычисленияself.setFinish()Шаг 3.

Последний шаг при создании прикладной системы – это создание программыинициализации. В данной программе создается файл объектов, в который прикладнойпрограммист помещает все необходимое для функционирования модели в параллельнойсреде. В программе поочередно создаются прикладные объекты на основе классов,описанных в шаге 2, которые связываются в единую модель с помощью классов топологийиз шага 1. Помимо множества прикладных объектов, в файл объектов при необходимостипомещаются файлы с исходными кодами, библиотеками и начальными данными.21#Пример программы инициализации# Начинаем инициализацию модели# Создаем объект инициализации.# Сохранять будем в файл modelname.modobj_init = ost.Core.Init("modelname.mod")# Зададим класс глобальной топологии# В данном случае кольцо с 10 элементамиobj_init.topology = applied_ring_topology (N = 10)# Дальше проводится цикл, в котором создаются объекты модели# В данном примере создаются 10 объектов, для кольцаfor index in xrange(0,10):# Создание объекта типа applied_objectapp_object = obj_init.create_object( applied_object )# Далее объект заполняется необходимыми данными# При необходимости можно задать локальную топологию окрестности объекта# В данном примере мы описываем окрестность, состоящую из элементов P1,…,Pkapp_object.topology = ost.topology.Neighborhood([P1,…,Pk])# Помещаем объект в точку пространства объектов# Точка имеет координату indexobj_init.topology.set(app_object, index)# Добавление файла с программным кодом объекта# С помощью аналогичных конструкций можно добавить и другие данныеobj_init.addSorceFile("applied_objects.py")# Сохранение модели в файлеobj_init.save()Итого.

После запуска программы инициализации создается файл объектов, который можетбыть помещен в среду OST для параллельного выполнения на МВС..

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

Список файлов книги

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