Главная /
Параллельное программирование с использованием технологии MPI
Параллельное программирование с использованием технологии MPI - ответы на тесты Интуит
Технология MPI является основным средством программирования для кластерных систем и компьютеров с распределенной памятью, но может применяться также и на вычислительных системах других типов.
Список вопросов:
- # Наиболее распространенной технологией программирования для параллельных ПК с рапределенной памятью является...
- # При компиляции программы на языке Фортран90 прилинковать библиотечные модули можно с помощью скрипта...
- # Какие объекты, используемые в MPI, имеют префикс MPI_?
- # Назовите основной способ взаимодействия параллельных процессов
- # При использовании какого языка являются существенным в названиях функций регистр символов?
- # В каком файле собираются все описания интерфейса MPI?
- # Технология MPI - это...
- # Каким образом записывается название функций MPI на языке Си?
- # Каким образом записывается название констант MPI на языке Си?
- # Интерфейс, зафиксированный стандартом MPI, должен соблюдаться...
- # Почему в начале MPI-программы должна стоять директива include 'mpif.h'?
- # Отметьте основной способ взаимодействия между процессами в MPI:
- # Какая версия стандарта MPI получила широкое распространение?
- # Что не допускается в ходе выполнения MPI-программы в версиях до MPI 2.0
- # В какой версии стандарта MPI появилась возможность уничтожение существующих процессов?
- # В каком году появилась версия 2.0 стандарта MPI?
- # Все процессы в MPI порождаются...
- # Каждый процесс MPI-программы имеет...
- # С какими языками поддерживает работу MPI?
- # Отдельная среда для общения группы процессов называется...
- # Группы параллельных процессов программы могут...
- # Какое количество описаний и функций содержит полная версия интерфейса MPI?
- # Назовите тип коммуникатора в языке Фортран
- # Какой коммуникатор служит для взаимодействия всех запущенных процессов MPI-программы
- # В каком стиле поддерживает интерфейс MPI создание параллельных программ?
- # какое значение возвращается в случае успешного выполнения процедур MPI?
- # В каком файле перечислены предопределенные значения, соответствующие различным ошибочным ситуациям?
- # В рамках какой модели для всех параллельных процессов используется один и тот же код?
- # Какая из предложенных моделей подразумевает объединение процессов с различными исходными данными?
- # Какой коммуникатор содержит только один текущий процесс?
- # MPI является...
- # Каким образом при компиляции программы можно прилинковать соответствующие библиотечные модули?
- # При компиляции программы на языке Си++ прилинковать библиотечные модули можно с помощью скрипта...
- # Опция компилятора "-o name" позволяет задать...
- # Какая команда используется для запуска выполнимого файла на требуемом количестве процессоров?
- # В зависимости от системы результат выполнения программы всеми запущенными процессами может...
- # Данный процесс служит для... MPI_INIT(IERR) INTEGER IERR
- # Инициализация параллельной части программы выполняется с помощью...
- # Инициализация для параллельной части выполняется только один раз...
- # Все, кроме одной процедуры MPI могут быть вызваны только после вызова...
- # Завершение параллельной части приложения выполняется с помощью...
- # Данный процесс служит для... MPI_FINALIZE(IERR) INTEGER IERR
- # Из каких аргументов командной строки программы система может извлекать и передавать в параллельные процессы параметры запуска программы?
- # К моменту вызова какой процедуры каждым процессом программы все действия должны быть завершены?
- # В каком языке функции MPI_Init передаются указатели на аргументы командной строки программы argv и argc?
- # На каком языке написана данная MPI-программа? program example1 include 'mpif.h' integer ierr print *, 'Before MPI_INIT' call MPI_INIT(ierr) print *, 'Parallel section' call MPI_FINALIZE(ierr) print *, 'After MPI_FINALIZE' end
- # 'Before MPI_INIT' может печатать...
- # Каков порядок вывода строк с разных процессов
- # Какая из перечисленных процедур может быть вызвана до вызова MPI_INIT
- # Какое значение процедура MPI_INITIALIZED возвращает в аргументе FLAG, если вызвана из параллельной части?
- # В каком случае процедура MPI_INITIALIZED возвращает в аргументе FLAG .TRUE.?
- # В каком аргументе процедура возвращает число параллельных процессов в коммуникаторе COMM?
- # Какая из предложенных процедур возвращает число параллельных процессов в коммуникаторе COMM
- # Сколько раз будет выводится строка, соответствующая вызову процедуры print в данном примере? program example2 include 'mpif.h' integer ierr, size, rank call MPI_INIT(ierr) call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr) print *, 'process ', rank, ‘, size ', size call MPI_FINALIZE(ierr) end
- # В каком аргументе процедура MPI_COMM_RANK (COMM, RANK, IERR) возвращает номер процесса в коммуникаторе COMM?
- # Какая из предложенных процедур возвращает номер процесса в коммуникаторе COMM
- # В каком диапазоне находится значение, возвращаемое процедурой MPI_COMM_RANK через переменную RANK
- # Какая из функций возвращает на вызвавшем процессе астрономическое время в секундах, прошедшее с некоторого момента в прошлом?
- # Какая функция возвращает результат своей работы явным образом?
- # какая функция возвращает результат своей работы через параметры?
- # В каком случае разность возвращаемых значений покажет время работы определенного участка?
- # Какая функция возвращает разрешение таймера на вызвавшем процессе в секундах?
- # По значению какого параметра можно определить синхронизированы или нет таймеры разных процессов
- # Какая функция возвращает на вызвавшем процессе астрономическое время в секундах, прошедшее с некоторого момента в прошлом
- # С помощью какой процедуры можно определить, на какие физические процессоры были спланированы процессы MPI-приложения
- # Какое количество символов в имени возвращается в данной процедуре в переменной LEN MPI_GET_PROCESSOR_NAME(NAME, LEN, IERR) CHARACTER*(*) NAME INTEGER LEN, IERR
- # Какой атрибут является уникальным для каждого процесса MPI-программы в каждой группе, в которую он входит?
- # Назовите основные атрибуты процесса
- # В каких пределах лежит номер любого процесса в определенной группе, если группа содержит n процессов?
- # Какие атрибуты можно отнести к сообщению?
- # При работе с атрибутами сообщений массив (структура) дает доступ...
- # Какие средства должны содержать программы, написанные с использованием коммуникационной технологии MPI?
- # С помощью чего осуществляется взаимодействие запущенных процессов между собой в MPI?
- # В каком случае блокировка может гарантировать корректность повторного использования всех параметров после возврата из процедуры?
- # Операции, предназначенные для взаимодействия всех процессов некоторого коммуникатора, называются...
- # Коллективные операции предназначены...
- # Какие процессы обязательно участвуют в операциях типа точка-точка?
- # Операции предназначенные для взаимодействия двух процессов программы называются...
- # Операции типа точка-точка предназначены...
- # В каких операциях участвуют процессы отправления и получения сообщения?
- # Какой из процессов операции типа точка-точка должен вызвать одну из процедур и явно указать номер в некотором коммуникаторе
- # Какой из процессов операции типа точка-точка должен вызвать одну из процедур с указанием того же коммутатора
- # Важно ли для процесса-получателя знание точного номера процесса-отправителя в данном коммуникаторе?
- # К каким операциям относятся процедуры с блокировкой и без блокировки?
- # Процедуры с синхронизацией приостанавливают работу процесса...
- # Использование каких процедур может привести к возникновению тупиковых ситуаций?
- # Каким образом должен указываться тип передаваемых элементов?
- # В каком файле перечислен полный список предопределенных имен типов данных?
- # Какое значение используется при пересылке сообщений для несуществующих процессов?
- # С каким кодом завершения завершаются операции с несуществующим процессом?
- # Как называется модификация процедуры передачи сообщения с синхронизацией?
- # Как называется модификация процедуры передачи сообщения по готовности?
- # При какой процедуре возможно повторное использование буфера посылки?
- # Выполнение какой процедуры не зависит от соответствующего вызова процедуры приема сообщения?
- # Какой процедурой можно пользоваться, если процесс-получатель уже инициировал прием сообщения?
- # Какая константа используется в определении размера массива, выделяемого для буферизации?
- # В каком аргументе указывается адрес освобождаемого массива?
- # Каким образом определяется размер необходимого буфера при передачи сообщения?
- # В каком случае может возникнуть ошибка переполнения в буфере BUF?
- # С помощью какой процедуры можно узнать точное число элементов в принимаемом сообщении?
- # Какую предопределенную константу можно использовать при приеме сообщения с любым идентификатором?
- # Какое будет принято сообщение при одновременном использовании констант MPI_ANY_SOURCE и MPI_ANY_TAG
- # Какие константы являются индексом по массиву status?
- # С помощью какой константы можно получить доступ к идентификатору сообщения?
- # Для какой константы характерна несимметричность операций посылки и приема сообщений
- # Какая процедура необходима для определения размера области памяти,выделяемой для хранения принимаемого сообщения?
- # Возврат из процедур какой группы происходит сразу после вызова без какой-либо остановки работы процессов
- # Какой параметр в данной процедуре используется для идентификации конкретной неблокирующей операции MPI_ISEND(BUF, COUNT, DATATYPE, DEST, MSGTAG, COMM, REQUEST, IERR) <type> BUF(*) INTEGER COUNT, DATATYPE, DEST, MSGTAG, COMM, REQUEST, IERR
- # С помощью какого варианта процедуры MPI_ISEND возможна неблокирующая передача с буферизацией
- # С помощью каких процедур можно определить окончание процесса MPI_IRECV(BUF, COUNT, DATATYPE, SOURCE, MSGTAG, COMM, REQUEST, IERR) <type> BUF(*) INTEGER COUNT, DATATYPE, SOURCE, MSGTAG, COMM, REQUEST, IERR
- # С помощью какой процедуры возможно ожидание завершения одной из COUNT асинхронных операций, ассоциированных с идентификаторами REQUESTS
- # С помощью какого процесса возможна проверка завершенности асинхронной операции MPI_ISEND ИЛИ MPI_IRECV, ассоциированной с идентификатором REQUEST
- # С помощью какого варианта процедуры MPI_SEND_INIT возможно формирование отложенного запроса на передачу сообщения по готовности
- # Какая процедура позволяет инициализировать COUNT отложенных запросов на выполнение операции приёма данных?
- # В каком случае используется данная процедура MPI_REQUEST_FREE(REQUEST, IERR) INTEGER REQUEST, IERR
- # Назовите способы разрешения тупиковых ситуаций
- # Каких коллективных операций в MPI не существует?
- # Могут ли использоваться в коллективных операциях те же коммуникаторы, использовавшиеся для операций точка-точка?
- # В MPI сообщения, вызванные коллективными операциями, не могут...
- # Возможна ли синхронизация процессов с помощью коллективных операций?
- # С помощью какой коллективной процедуры возможна синхронизация процессов
- # Какой атрибут не используется в коллективных операциях?
- # Какая из перечисленных процедур используется для барьерной синхронизации процессов?
- # Для чего используется процедура MPI_BARRIER (COMM, IERR) INTEGER COMM, IERR
- # Какая из предложенных процедур является коллективной?
- # С помощьюкакой процедуры использование отложенных запросов позволяет инициализировать посылку данных только один раз?
- # С помощью какой процедуры можно проиллюстрировать действие процедуры MPI_BCAST?
- # С помощью какой процедуры можно проиллюстрировать действие процедуры MPI_GATHER?
- # Какие значения в данной процедуре должны быть одинаковыми у всех процессов? MPI_BCAST(BUF, COUNT, DATATYPE, ROOT, COMM, IERR) <type>BUF(*) INTEGER COUNT, DATATYPE, ROOT, COMM, IERR
- # Каким образом собирающий процесс сохраняет данные в буфере RBUF?
- # Значения каких параметров должны быть одинаковыми у всех процессов?
- # Каким массивом задается порядок расположения данных в результирующем буфере RBUF?
- # Какой массив содержит количество элементов, передаваемых от каждого процесса?
- # В каком массиве индекс равен рангу посылающего процесса, размер массива равен числу процессов в коммуникаторе COMM?
- # Какая из перечисленных процедур является обратной по своему действию MPI_SCATTER
- # Какая из перечисленных схем иллюстрирует действие процедуры MPI_SCATTER?
- # Какому процессу соответствует данная схема [Большая Картинка]
- # С помощью какой процедуры возможна рассылка каждым процессом коммуникатора COMM различных порций данных всем другим процессам
- # С помощью какой процедуры можно задать свою функцию для выполнения глобальной операции
- # какая схема моделирования операции глобального суммирования по эффективности сравнивается с коллективной операцией MPI_REDUCE
- # С помощью каких констант можно задать логические "И", "ИЛИ", исключающее "ИЛИ"
- # С помощью каких констант возможно определение максимального и минимального значения
- # С помощью каких констант возможно вычисление глобальной суммы
- # С помощью какого процесса возможно задать интерфейс пользовательской функции для создания глобальной операции
- # Какой функцией будет вычисляться создание пользовательской глобальной операции OP
- # Какая процедура отвечает за уничтожение пользовательской глобальной операции
- # Из какого параметра данной процедуры берется первый аргумент FUNCTION FUNC(INVEC(*), INOUTVEC(*), LEN, TYPE) <type> INVEC(LEN), INOUTVEC(LEN) INTEGER LEN, TYPE
- # Какой из параметров данной процедуры задает количество элементов входного и выходного массивов FUNCTION FUNC(INVEC(*), INOUTVEC(*), LEN, TYPE) <type> INVEC(LEN), INOUTVEC(LEN) INTEGER LEN, TYPE
- # Какой из параметров данной процедуры задает тип входных и выходных данных FUNCTION FUNC(INVEC(*), INOUTVEC(*), LEN, TYPE) <type> INVEC(LEN), INOUTVEC(LEN) INTEGER LEN, TYPE
- # Какая функция в данном процессе вычисляет поэлементную сумму по модулю 5 векторов целочисленных аргументов MPI_OP_FREE. program example15 include 'mpif.h' integer ierr, rank, i, n parameter (n = 1 000) integer a(n), b(n) integer op external smod5 call MPI_INIT(ierr) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr) do i = 1, n a(i) = i + rank end do print *, 'process ', rank, ' a(1) =', a(1) call MPI_OP_CREATE(smod5, .TRUE., op, ierr) call MPI_REDUCE(a, b, n, MPI_INTEGER, op, 0, & MPI_COMM_WORLD, ierr) call MPI_OP_FREE(op, ierr) if(rank .eq. 0) print *, ' b(1) =', b(1) call MPI_FINALIZE(ierr) end integer function smod5(in, inout, l, type) integer l, type integer in(l), inout(l), i do i = 1, l inout(i) = mod(in(i)+inout(i), 5) end do return end
- # В вызове какой процедуры функция smod5 объявляется в качестве глобальной процедуры op MPI_OP_FREE. program example15 include 'mpif.h' integer ierr, rank, i, n parameter (n = 1 000) integer a(n), b(n) integer op external smod5 call MPI_INIT(ierr) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr) do i = 1, n a(i) = i + rank end do print *, 'process ', rank, ' a(1) =', a(1) call MPI_OP_CREATE(smod5, .TRUE., op, ierr) call MPI_REDUCE(a, b, n, MPI_INTEGER, op, 0, & MPI_COMM_WORLD, ierr) call MPI_OP_FREE(op, ierr) if(rank .eq. 0) print *, ' b(1) =', b(1) call MPI_FINALIZE(ierr) end integer function smod5(in, inout, l, type) integer l, type integer in(l), inout(l), i do i = 1, l inout(i) = mod(in(i)+inout(i), 5) end do return end
- # С помощью вызова какой процедуры удаляется функция smod5 MPI_OP_FREE. program example15 include 'mpif.h' integer ierr, rank, i, n parameter (n = 1 000) integer a(n), b(n) integer op external smod5 call MPI_INIT(ierr) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr) do i = 1, n a(i) = i + rank end do print *, 'process ', rank, ' a(1) =', a(1) call MPI_OP_CREATE(smod5, .TRUE., op, ierr) call MPI_REDUCE(a, b, n, MPI_INTEGER, op, 0, & MPI_COMM_WORLD, ierr) call MPI_OP_FREE(op, ierr) if(rank .eq. 0) print *, ' b(1) =', b(1) call MPI_FINALIZE(ierr) end integer function smod5(in, inout, l, type) integer l, type integer in(l), inout(l), i do i = 1, l inout(i) = mod(in(i)+inout(i), 5) end do return end
- # Какие задачи можно решить при помощи создания независимого коммуникатора
- # Упорядоченное множество процессов называется
- # Как называется целое число, сопоставленное каждому процессу в группе
- # Какой коммуникатор обозначает пустую группу, не содержащую ни одного процесса
- # Какой коммуникатор обозначает значение, используемое для ошибочной группы
- # С каким коммуникатором связана базовая группа, из которой создаются все остальные группы процессов
- # Новые группы можно создавать на основе...
- # Какие новые группы могут использоваться в операциях обмена
- # Любой процесс может производить операции...
- # С помощью какой процедуры возможно получение группы GROUP, соответствующей коммуникатору COMM
- # При помощи какого вызова можно получить группу, соответствующую коммуникатору MPI_COMM_WORLD
- # Какие процедуры определяют операции над группами процессов, как над множествами
- # С помощью какой процедуры можно задать новый порядок процессов в группе
- # В каком случае в данном процессе будет создана пустая группа MPI_GROUP_EMPTY MPI_GROUP_INCL(GROUP, N, RANKS, NEWGROUP, IERR) INTEGER GROUP, N, RANKS(*), NEWGROUP, IERR
- # Какая группа будет создана в данном процессе при N=0 MPI_GROUP_INCL(GROUP, N, RANKS, NEWGROUP, IERR) INTEGER GROUP, N, RANKS(*), NEWGROUP, IERR
- # С помощью данной процедуры возможно... MPI_GROUP_EXCL(GROUP, N, RANKS, NEWGROUP, IERR) INTEGER GROUP, N, RANKS(*), NEWGROUP, IERR
- # В каком случае в данном процессе будет создана группа, идентичная старой группе MPI_GROUP_EXCL(GROUP, N, RANKS, NEWGROUP, IERR) INTEGER GROUP, N, RANKS(*), NEWGROUP, IERR
- # Какая группа будет создана в данном процессе при N=0 MPI_GROUP_EXCL(GROUP, N, RANKS, NEWGROUP, IERR) INTEGER GROUP, N, RANKS(*), NEWGROUP, IERR
- # С помощью какой процедуры происходит создание группы NEWGROUP из пересечения групп GROUP 1 и GROUP 2
- # С помощью какой процедуры происходит создание группы NEWGROUP ИЗ объединения групп GROUP 1 и GROUP 2
- # С помощью какой процедуры происходит создание группы NEWGROUP ИЗ разности групп GROUP 1 и GROUP 2
- # В какой процедуре полученная группа содержит все процессы группы GROUP 1, входящие также в группу GROUP2 и упорядоченные, как в первой группе
- # В какой процедуре полученная группа содержит все процессы группы GROUP l в прежнем порядке, за которыми следуют процессы группы GROUP 2, не вошедшие в группу GROUP 1, также в прежнем порядке
- # В какой процедуре полученная группа содержит все элементы группы GROUP 1, не входящие в группу GROUP 2 и упорядоченные, как в первой группе
- # С помощью какой процедуры можно сравнить группы GROUP1 и GROUP2
- # Если группы GROUP1 и GROUP2 полностью совпадают, то какое значение возвращается МРI_GROUP_COMPARE(GROUP1, GROUP2, RESULT, IERR) INTEGER GROUP1, GROUP2, RESULT, IERR
- # Если группы GROUP1 и GROUP2 отличаются рангами процессов, то какое значение возвращается МРI_GROUP_COMPARE(GROUP1, GROUP2, RESULT, IERR) INTEGER GROUP1, GROUP2, RESULT, IERR
- # После выполнения данной процедуры какое значение принимает переменная GROUP МРI_GROUP_FREE(GROUP, IERR) INTEGER GROUP, IERR
- # Какие коммуникаторы создаются сразу после вызова процедуры MPI_INIT
- # Создание коммуникатора является
- # Какой коммуникатор объединяет все процессы приложения
- # Какое значение используется для ошибочного коммуникатора
- # Какой коммуникатор включает только вызвавшие процессы
- # С помощью какой процедуры возможно Создание нового коммуникатора NEWCOMM с той же группой процессов и атрибутами, что и у коммуникатора сомм
- # С помощью какой процедуры возможно создание нового коммуникатора NEWCOMM
- # Какую процедуру можно использовать для перенумерации процессов
- # Топология - это...
- # В MPI топологии с физической топологией коммуникационной сети...
- # Топология используется для...
- # С помощью чего топология используется системой для оптимизации распределения процессов по физическим процессорам используемого параллельного компьютера?
- # Какие типы топологии предусмотрены в MPI?
- # Какая топология является прямоугольной решеткой произвольной размерности?
- # С помощью какой процедуры можно определитьтип топологии, связанной с коммуникатором COMM
- # Какое значение параметра TYPE в данной процедуре будет для декартовой типологии MPI_TOPO_TEST(COMM, TYPE, IERR) INTEGER COMM, TYPE, IERR
- # Какое значение параметра TYPE в данной процедуре будет, если с коммуникатором COMM не связана никакая типология MPI_TOPO_TEST(COMM, TYPE, IERR) INTEGER COMM, TYPE, IERR
- # С помощью какого параметра в данном процессе задается размерность получаемой декартовой решетки MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER, COMM_CART,IERR) INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERR LOGICAL PERIODS(*), REORDER
- # С помощью какого логического массива можно определить, является ли решетка периодической вдоль каждого измерения MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER, COMM_CART,IERR) INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERR LOGICAL PERIODS(*), REORDER
- # С помощью какого логического параметра можно определить, что системе разрешено менять порядок нумерации процессов MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER, COMM_CART,IERR) INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERR LOGICAL PERIODS(*), REORDER
- # В каком случае в данной процедуре некоторые процессы не будут принимать участие в создаваемой топологии MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER, COMM_CART,IERR) INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERR LOGICAL PERIODS(*), REORDER
- # В каком случае в данном процессе вызов будет ошибочен MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER, COMM_CART,IERR) INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERR LOGICAL PERIODS(*), REORDER
- # Какая из предложенных процедур не требует межпроцессорного взаимодействия
- # В каком случае будет рассчитано значение DIMS(I) данной процедурой MPI_DIMS_CREATE(NNODES, NDIMS, DIMS, IERR) INTEGER NNODES, NDIMS, DIMS(*), IERR
- # Каким образом будут упорядочены выходные значения DIMS, переопределенные данной процедурой MPI_DIMS_CREATE(NNODES, NDIMS, DIMS, IERR) INTEGER NNODES, NDIMS, DIMS(*), IERR
- # Какие значения элементов массива DIMS в данной процедуре будут ошибочны MPI_DIMS_CREATE(NNODES, NDIMS, DIMS, IERR) INTEGER NNODES, NDIMS, DIMS(*), IERR
- # С помощью какой процедуры можно определить декартовые координаты процесса по его рангу
- # С помощью какой процедуры можно определить ранг процесса по его декартовым координатам
- # С помощью какой процедуры возможно расщепление коммуникатора на подгруппы, соответствующие декартовым подрешеткам меньшей размерности
- # В какой из процедур отсчет координат по каждому измерению начинается с нуля
- # В каком случае в данной процедуре координаты вне допустимых интервалов будут пересчитываться MPI_CART_RANK(COMM, COORDS, RANK, IERR) INTEGER COMM, COORDS(*), RANK, IERR
- # В каком случае процедура MPI_DIMS_CREATE будет ошибочна
- # В каком параметре данной процедуры возвращается количество процессов для каждого измерения MPI_CART_GET(COMM, MAXDIMS, DIMS, PERIODS, COORDS, IERR) INTEGER COMM, MAXDIMS, DIMS(*), COORDS(*), IERR LOGICAL PERIODS(*)
- # В каком параметре отображаются номера принимающего процесса в декартовой топологии данного процесса MPI_CART_SHIFT(COMM, DIRECTION, DISP, SOURCE, DEST, IERR) INTEGER COMM, DIRECTION, DISP, SOURCE, DEST, IERR
- # В каком случае полученное значение MPI_PROC_NULL означает выход за границы диапазона
- # Какой массив в данной процедуре содержит список номеров процессов-соседей всех вершин MPI_GRAPH_CREATE(COMM, NNODES, INDEX, EDGES, REORDER, COMM_GRAPH, IERR) INTEGER COMM, NNODES, INDEX(*), EDGES(*), COMM_GRAPH, IERR LOGICAL REORDER
- # С помощью какого параметра задается число вершин графа MPI_GRAPH_CREATE(COMM, NNODES, INDEX, EDGES, REORDER, COMM_GRAPH, IERR) INTEGER COMM, NNODES, INDEX(*), EDGES(*), COMM_GRAPH, IERR LOGICAL REORDER
- # С помощью какой процедуры можно определить число вершин и число ребер графовой топологии, связанной с коммутатором
- # С помощью какого процесса можно определить ранги непосредственных соседей процесса с рангом RANK в графовой топологии, связанной с коммуникатором сомм
- # Данная процедура отвечает за... MPI_GRAPH_NEIGHBORS_COUNT(COMM, RANK, NNEIGHBORS, IERR) INTEGER COMM, RANK, NNEIGHBORS, IERR
- # Какие параметры задают ограничения на размеры соответсвующих массивов
- # С помощью какой процедуры в массивах INDEX и EDGES возвращается описание графовой топологии в том виде, как она задается при создании топологии
- # С помощью вызова какой процедуры можно определить ранги процессов-соседей
- # С помощью какой процедуры можно определить количество своих непосредственных соседей в рамках данной топологии
- # Сообщение в MPI - это...
- # Какие способы пересылки разнотипных данных в MPI существуют
- # Пересылка каких данных возможна в MPI
- # Какие типы данных создаются во время выполнения программы с помощью процедур-конструкторов на основе существующих к моменту вызова конструктора типов данных
- # Назовите основные этапы создания типа данных
- # В каких операциях можно использовать производный тип после регистрации?
- # Назовите основные характеристики производственного типа данных
- # В производном типе данных смещения могут быть
- # При какой процедуре создаваемый тип данных представляет массив данных базового типа как отдельный объект
- # С помощью каких процедур возможно создание нового типа данных NEWTYPE
- # В какой процедуре полученный тип данных можно считать обобщением векторного типа
- # Какой тип данных newtype задается в данном примере do i = 1, n blocklens (i) = n-i + 1 displs(i) = n*(i-1)+i-1 end do call MPI_TYPE_INDEXED(n, blocklens, displs, MPI_DOUBLE_PRECISION, newtype, ierr)
- # Какая процедура отвечает за создание нового типа данных NEWTYPE, состоящего из COUNT блоков по BLOCKLEN элементов базового типа данных TYPE
- # В какой процедуре следующий блок начинается через STRIDE элементов базового типа данных после начала предыдущего блока
- # В какой процедуре следующий блок начинается через STRIDE байт после начала предыдущего блока
- # В какой процедуре I-й блок начинается через DISPLS (I) байт с начала буфера посылки
- # С помощью данной процедуры возможно... MPI_TYPE_STRUCT(COUNT, BLOCKLENS, DISPLS, TYPES, NEWTYPE, IERR) INTEGER COUNT, BLOCKLENS(*), DISPLS(*), TYPES(*), NEWTYPE, IERR
- # Какие типы данных не могут быть аннулированы этой процедурой MPI_TYPE_FREE(DATATYPE, IERR) INTEGER DATATYPE, IERR
- # Какая процедура отвечает за регистрацию созданного производственного типа данных DATATYPE
- # С помощью какой процедуры возможно аннулировать производственного типа данных DATATYPE
- # С помощью какой процедуры можно определить объем памяти, занимаемого одним элементом типа данных DATATYPE
- # С помощью данной процедуры возможно определить... MPI_ADDRESS(LOCATION, ADDRESS, IERR) <type> LOCATION(*) INTEGER ADDRESS, IERR
- # В какой системной константе содержится базовый адрес
- # В каком языке параметр ADDRESS имеет тип MPI_Aint
- # С помощью какой процедуры можно определить разницу между верхней и нижней границами элемента типа данных DATATYPE
- # С помощью какой процедуры можно определение смещения DISPL нижней границы элемента типа данных DATATYPE
- # С помощью какой процедуры можно определение смещения DISPL верхней границы элемента типа данных DATATYPE
- # Для пересылки разнородных данных можно использовать...
- # После выполнения данной процедуры MPI_PACK(INBUF, INCOUNT, DATATYPE, OUTBUF, OUTSIZE, POSITION, COMM, IERR) <type> INBUF(*), OUTBUF(*) INTEGER INCOUNT, DATATYPE, OUTSIZE, POSITION, COMM, IERR какой параметр увеличивается на число байт, равное размеру записи
- # Какой тип данных используется для пересылки упакованных данных
- # Из какого массива происходит упаковка элементов типа DATATYPE
- # Какой размер имеет массив INBUF в данной процедуре MPI_UNPACK(INBUF, INSIZE, POSITION, OUTBUF, OUTCOUNT, DATATYPE, COMM, IERR) <type> INBUF(*), OUTBUF(*) INTEGER INSIZE, POSITION, OUTCOUNT, DATATYPE, COMM, IERR
- # Для каких элементов можно определить необходимый объем памяти с помощью данной процедуры MPI_PACK_SIZE(INCOUNT, DATATYPE, COMM, SIZE, IERR) INTEGER INCOUNT, DATATYPE, COMM, SIZE, IERR
- # С помощью какой процедуры можно упаковать INCOUNT элементы типа DATATYPE
- # С помощью какой процедуры можно распаковать OUTCOUNT элементы типа DATATYPE
- # С помощью какой процедуры можно определить необходимый объем памяти для упаковки INCOUNT элементов типа DATATYPE