Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » 2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother)

2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother), страница 11

PDF-файл 2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother), страница 11 Суперкомпьютерное моделирование и технологии (64127): Ответы (шпаргалки) - 11 семестр (3 семестр магистратуры)2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother): Суперкомпьютерное моделирование и технологии - PDF, страница 11 (64127) - СтудИзба2020-08-25СтудИзба

Описание файла

PDF-файл из архива "2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother)", который расположен в категории "". Всё это находится в предмете "суперкомпьютерное моделирование и технологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 11 страницы из PDF

Например,in( "P", int i, FALSE );Этой функции соответствует любой кортеж, который состоит из трех элементов:значением первого элемента является "P", второй элемент может быть любым целымчислом, а третий должен иметь значение FALSE. Подходящими кортежами могут быть ("P", 5, FALSE) или ( "P", 135, FALSE) и т.п., но не ( "P", 7.2, FALSE) или ( "Proc", 5,FALSE).

Если параметру функции in соответствуют несколько кортежей, то случайнымобразом выбирается один из них. После нахождения кортеж удаляется из пространствакортежей, а неопределенным формальным элементам параметра-кортежа, содержащимсяв вызове данной функции, присваиваются соответствующие значения. В предыдущемпримере переменной i присвоится 5 или 135. Если в пространстве кортежей ни одинкортеж не соответствуют функции, то вызвавший ее процесс блокируется до тех пор, покасоответствующий кортеж в пространстве не появится.Элемент кортежа в функции in считается формальным, если перед ним стоитопределитель типа. Если используется переменная без определителя типа, то берется еезначение и элемент рассматривается как фактический параметр.

Например, во фрагментепрограммыint i = 5;in( "P", i, FALSE );функции in, в отличие от предыдущего примера, соответствует только кортеж ("P", 5,FALSE).Если переменная описана до вызова функции и ее надо использовать какформальный элемент кортежа, можно использовать ключевое слово formal или знак '?'.Например, во фрагменте программыj = 15;in( "P", formal i, j );последнюю строку можно заменить и на оператор in("P", ?i, j). В этом примере функции inбудет соответствовать, например, кортеж ("P", 6, 15), но не ("P", 6, 12). Конечно же,формальными могут быть и несколько элементов кортежа одновременно:in ( "Add_If", int i, bool b);Если после такого вызова функции в пространстве кортежей будет найден кортеж("Add_If", 100, TRUE), то переменной i присвоится значение 100, а переменной b значение TRUE.Функция READ отличается от функции in лишь тем, что выбранный кортеж неудаляется из пространства кортежей.

Все остальное точно так же, как и у функции in.Этой функцией удобно пользоваться в том случае, когда значения переменных менять ненужно, но к ним необходим параллельный доступ из нескольких процессов.Функция EVAL похожа на функцию out. Разница заключается лишь в том, чтодополнительным элементом кортежа у eval является функция пользователя.

Длявычисления значения этой функции система Linda порождает параллельный процесс, наоснове работы которого она формирует кортеж и помещает его в пространство кортежей.Например,eval ("hello", funct( z ), TRUE, 3.1415);При обработке данного вызова система создаст новый процесс для вычисления функцииfunct( z ). Когда процесс закончится и будет получено значение w = funct( z ), впространство кортежей будет добавлен кортеж ("hello", w, TRUE, 3.1415).

Функция,вызвавшая eval, не ожидает завершения порожденного параллельного процесса ипродолжает свою работу дальше. Следует отметить и то, что пользователь не может явноуправлять размещением порожденных параллельных процессов на доступных емупроцессорных устройствах - это Linda делает самостоятельно.Параллельная программа в системе Linda считается завершенной, если всепорожденные процессы завершились или все они заблокированы функциями in и read.32. MPI: общая структура. Основные отличия MPI-2 от MPI-1.Наиболее распространенной технологией программирования параллельныхкомпьютеров с распределенной памятью в настоящее время является MPI. Мы ужеговорили о том, что основным способом взаимодействия параллельных процессов в такихсистемах является передача сообщений друг другу.

Это и отражено в названии даннойтехнологии — Message Passing Interface. Стандарт MPI фиксирует интерфейс, которыйдолжны соблюдать как система программирования MPI на каждой вычислительнойсистеме, так и пользователь при создании своих программ. Современные реализации чащевсего соответствуют стандарту MPI версии 1.1. В 1997—1998 годах появился стандартMPI-2.0, значительно расширивший функциональность предыдущей версии.

Однако досих пор этот вариант MPI не получил широкого распространения. Везде далее, если иногоне оговорено, мы будем иметь дело со стандартом 1.1.MPI поддерживает работу с языками С и Fortran. В данной книге все примеры иописания всех функций будут даны с использованием языка С. Однако это совершенно неявляется принципиальным, поскольку основные идеи MPI и правила оформленияотдельных конструкций для этих языков во многом схожи.Полная версия интерфейса содержит описание более 120 функций.Интерфейс поддерживает создание параллельных программ в стиле MIMD, чтоподразумевает объединение процессов с различными исходными текстами. Однако напрактике программисты гораздо чаще используют SPMD-модель, в рамках которой длявсех параллельных процессов используется один и тот же код.

В настоящее время всебольше и больше реализаций MPI поддерживают работу с нитями.Все дополнительные объекты: имена функций, константы, предопределенные типыданных и т. п., используемые в MPI, имеют префикс MPI_. Например, функция посылкисообщения от одного процесса другому имеет имя MPi_Send. Если пользователь не будетиспользовать в программе имен с таким префиксом, то конфликтов с объектами MPIзаведомо не будет. Все описания интерфейса MPI собраны в файле mpi.h, поэтому вначале MPI-программы должна стоять директива #include <mpi.h>.MPI-программа — это множество параллельных взаимодействующих процессов.Все процессы порождаются один раз, образуя параллельную часть программы.

В ходевыполнения MPI-программы порождение дополнительных процессов или уничтожениесуществующих не допускается.Каждый процесс работает в своем адресном пространстве, никаких общихпеременных или данных в MPI нет. Основным способом взаимодействия междупроцессами является явная посылка сообщений.Для локализации взаимодействия параллельных процессов программы можносоздавать группы процессов, предоставляя им отдельную среду для общения —коммуникатор.

Состав образуемых групп произволен. Группы могут полностью входитьодна в другую, не пересекаться или пересекаться частично. При старте программы всегдасчитается, что все порожденные процессы работают в рамках всеобъемлющегокоммуникатора, имеющего предопределенное имя MPI_COMM_WORLD. Этот коммуникаторсуществует всегда и служит для взаимодействия всех процессов MPI-программы.Каждый процесс MPI-программы имеет уникальный атрибут номер процесса,который является целым неотрицательным числом.

С помощью этого атрибутапроисходит значительная часть взаимодействия процессов между собой. Ясно, что водном и том же коммуникаторе все процессы имеют различные номера. Но посколькупроцесс может одновременно входить в разные коммуникаторы, то его номер в одномкоммуникаторе может отличаться от его номера в другом. Отсюда два основных атрибутапроцесса: коммуникатор и номер в коммуникаторе.Если группа содержит п процессов, то номер любого процесса в данной группележит в пределах от 0 до п - 1. Подобная линейная нумерация не всегда адекватноотражает логическую взаимосвязь процессов приложения.

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

Сообщение — это набор данных некоторого типа. Каждое сообщение имеетнесколько атрибутов, в частности, номер процесса-отправителя, номер процессаполучателя, идентификатор сообщения и др. Одним из важных атрибутов сообщенияявляется его идентификатор или тэг. По идентификатору процесс, принимающийсообщение, например, может различить два сообщения, пришедшие к нему от одного итого же процесса. Сам идентификатор сообщения является целым неотрицательнымчислом, лежащим в диапазоне от 0 до 32 767. Для работы с атрибутами сообщенийвведена структура MPistatus, поля которой дают доступ к значениям атрибутов.На практике сообщение чаще всего является набором однотипных данных,расположенных подряд друг за другом в некотором буфере.

Такое сообщение можетсостоять, например, из двухсот целых чисел, которые пользователь разместил всоответствующем целочисленном векторе. Это типичная ситуация, на нее ориентированобольшинство функций MPI, однако такая ситуация имеет, по крайней мере, дваограничения. Во-первых, иногда необходимо составить сообщение из разнотипныхданных. Конечно же, можно отдельным сообщением послать количество вещественныхчисел, содержащихся в последующем сообщении, но это может быть и неудобно программисту, и не столь эффективно. Во-вторых, не всегда посылаемые данные занимаютнепрерывную область в памяти. Если в Fortran элементы столбцов матрицы расположеныв памяти друг за другом, то элементы строк уже идут с некоторым шагом. Чтобы послатьстроку, данные нужно сначала упаковать, передать, а затем вновь распаковать.Чтобы снять указанные ограничения, в MPI предусмотрен механизм для введенияпроизводных типов данных (derived datatypes).

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

MPI: синхронное и асинхронное взаимодействие процессов.int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int msgtag, MPI_Commcomm)buf - адрес начала буфера посылки сообщенияcount - число передаваемых элементов в сообщенииdatatype - тип передаваемых элементовdest - номер процесса-получателяmsgtag - идентификатор сообщенияcomm - идентификатор группыБлокирующая посылка сообщения с идентификатором msgtag, состоящего из countэлементов типа datatype, процессу с номером dest. Все элементы сообщения расположеныподряд в буфере buf. Значение count может быть нулем. Тип передаваемых элементовdatatype должен указываться с помощью предопределенных констант типа.

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