игра брюс 2048
Главная / Программирование / Параллельное программирование с использованием технологии MPI / Тест 7

Параллельное программирование с использованием технологии MPI - тест 7

Упражнение 1:
Номер 1
Сообщение в MPI - это...

Ответ:

 (1) массив разнотипных данных, расположенных в последовательных ячейках памяти 

 (2) массив однотипных данных, расположенных в последовательных ячейках памяти 

 (3) массив данных, расположенных в параллельных ячейках памяти 


Номер 2
Какие способы пересылки разнотипных данных в MPI существуют

Ответ:

 (1) производственные типы данных 

 (2) упаковка данных 

 (3) временная буферизация 


Номер 3
Пересылка каких данных возможна в MPI

Ответ:

 (1) однотипных данных 

 (2) разнотипных данных 

 (3) данных, расположенных не в последовательных ячейках памяти 


Упражнение 2:
Номер 1
Какие типы данных создаются во время выполнения программы с помощью процедур-конструкторов на основе существующих к моменту вызова конструктора типов данных

Ответ:

 (1) коллективные 

 (2) предопределенные 

 (3) производные 


Номер 2
Назовите основные этапы создания типа данных

Ответ:

 (1) конструирование типа 

 (2) передача типа 

 (3) регистрация типа 


Номер 3
В каких операциях можно использовать производный тип после регистрации?

Ответ:

 (1) в операциях пересылки 

 (2) в коллективных операциях 

 (3) в операциях типа точка-точка 


Упражнение 3:
Номер 1
Назовите основные характеристики производственного типа данных

Ответ:

 (1) упаковка данных, расположенных не в последовательных ячейках памяти 

 (2) последовательность базовых типов данных 

 (3) набор целочисленных значений смещения элементов типа относительно начала буфера обмена 


Номер 2
В производном типе данных смещения могут быть

Ответ:

 (1) положительными 

 (2) отрицательными 

 (3) иррациональными 


Номер 3
При какой процедуре создаваемый тип данных представляет массив данных базового типа как отдельный объект

Ответ:

 (1) MPI_TYPE_CONTIGUOUS(COUNT, TYPE, NEWTYPE, IERR) INTEGER COUNT, TYPE, NEWTYPE, IERR  

 (2) MPI_TYPE_VECTOR(COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR  

 (3) MPI_GRAPH_NEIGHBORS_COUNT(COMM, RANK, NNEIGHBORS, IERR) INTEGER COMM, RANK, NNEIGHBORS, IERR  


Упражнение 4:
Номер 1
С помощью каких процедур возможно создание нового типа данных NEWTYPE

Ответ:

 (1) MPI_TYPE_CONTIGUOUS(COUNT, TYPE, NEWTYPE, IERR) INTEGER COUNT, TYPE, NEWTYPE, IERR  

 (2) MPI_TYPE_VECTOR(COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR  

 (3) MPI_GRAPH_NEIGHBORS_COUNT(COMM, RANK, NNEIGHBORS, IERR) INTEGER COMM, RANK, NNEIGHBORS, IERR  


Номер 2
В какой процедуре полученный тип данных можно считать обобщением векторного типа

Ответ:

 (1) MPI_TYPE_VECTOR(COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR  

 (2) MPI_TYPE_INDEXED(COUNT, BLOCKLENS, DISPLS, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLENS(*), DISPLS(*), TYPE, NEWTYPE, IERR  

 (3) MPI_TYPE_HVECTOR(COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR  


Номер 3
Какой тип данных 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)

Ответ:

 (1) который в дальнейшем может использоваться для пересылки пяти расположенных подряд целых чисел 

 (2) который после регистрации может быть использован для пересылки как единого целого шести элементов данных 

 (3) для описания нижнетреугольной матрицы типа double precision 


Упражнение 5:
Номер 1
Какая процедура отвечает за создание нового типа данных NEWTYPE, состоящего из COUNT блоков по BLOCKLEN элементов базового типа данных TYPE

Ответ:

 (1) MPI_TYPE_VECTOR(COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR  

 (2) MPI_TYPE_CONTIGUOUS(COUNT, TYPE, NEWTYPE, IERR) INTEGER COUNT, TYPE, NEWTYPE, IERR  

 (3) MPI_TYPE_HVECTOR(COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR  


Номер 2
В какой процедуре следующий блок начинается через STRIDE элементов базового типа данных после начала предыдущего блока

Ответ:

 (1) MPI_TYPE_VECTOR(COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR  

 (2) MPI_TYPE_CONTIGUOUS(COUNT, TYPE, NEWTYPE, IERR) INTEGER COUNT, TYPE, NEWTYPE, IERR  

 (3) MPI_TYPE_HVECTOR(COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR  


Номер 3
В какой процедуре следующий блок начинается через STRIDE байт после начала предыдущего блока

Ответ:

 (1) MPI_TYPE_VECTOR(COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR  

 (2) MPI_TYPE_CONTIGUOUS(COUNT, TYPE, NEWTYPE, IERR) INTEGER COUNT, TYPE, NEWTYPE, IERR  

 (3) MPI_TYPE_HVECTOR(COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLEN, STRIDE, TYPE, NEWTYPE, IERR  


Упражнение 6:
Номер 1
В какой процедуре I-й блок начинается через DISPLS (I) байт с начала буфера посылки

Ответ:

 (1) MPI_TYPE_INDEXED(COUNT, BLOCKLENS, DISPLS, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLENS(*), DISPLS(*), TYPE, NEWTYPE, IERR  

 (2) MPI_TYPE_STRUCT(COUNT, BLOCKLENS, DISPLS, TYPES, NEWTYPE, IERR) INTEGER COUNT, BLOCKLENS(*), DISPLS(*), TYPES(*), NEWTYPE, IERR  

 (3) MPI_TYPE_HINDEXED(COUNT, BLOCKLENS, DISPLS, TYPE, NEWTYPE, IERR) INTEGER COUNT, BLOCKLENS(*), DISPLS(*), TYPE, NEWTYPE, IERR  


Номер 2
С помощью данной процедуры возможно...

MPI_TYPE_STRUCT(COUNT, BLOCKLENS, DISPLS, TYPES, NEWTYPE, IERR) 
INTEGER COUNT, BLOCKLENS(*), DISPLS(*), TYPES(*), NEWTYPE, IERR

Ответ:

 (1) создание нового типа данных NEWTYPE, состоящего из COUNT блоков по BLOCKLENS (I) элементов базового типа данных 

 (2) создание структурного типа данных NEWTYPE из COUNT блоков по BLOCKLENS (I) элементов типа TYPES (I) 

 (3) создание нового типа данных NEWTYPE, состоящего из COUNT блоков 


Номер 3
Какие типы данных не могут быть аннулированы этой процедурой

MPI_TYPE_FREE(DATATYPE, IERR) 
INTEGER DATATYPE, IERR

Ответ:

 (1) структурированные типы данных 

 (2) производственные типы данных 

 (3) предопределенные типы данных 


Упражнение 7:
Номер 1
Какая процедура отвечает за регистрацию созданного производственного типа данных DATATYPE

Ответ:

 (1) MPI_TYPE_COMMIT(DATATYPE, IERR) INTEGER DATATYPE, IERR  

 (2) MPI_ADDRESS(LOCATION, ADDRESS, IERR) <type> LOCATION(*) INTEGER ADDRESS, IERR  

 (3) MPI_TYPE_FREE(DATATYPE, IERR) INTEGER DATATYPE, IERR  


Номер 2
С помощью какой процедуры возможно аннулировать производственного типа данных DATATYPE

Ответ:

 (1) MPI_TYPE_COMMIT(DATATYPE, IERR) INTEGER DATATYPE, IERR  

 (2) MPI_ADDRESS(LOCATION, ADDRESS, IERR) <type> LOCATION(*) INTEGER ADDRESS, IERR  

 (3) MPI_TYPE_FREE(DATATYPE, IERR) INTEGER DATATYPE, IERR  


Номер 3
С помощью какой процедуры можно определить объем памяти, занимаемого одним элементом типа данных DATATYPE

Ответ:

 (1) MPI_TYPE_SIZE(DATATYPE, SIZE, IERR) INTEGER DATATYPE, SIZE, IERR  

 (2) MPI_ADDRESS(LOCATION, ADDRESS, IERR) <type> LOCATION(*) INTEGER ADDRESS, IERR  

 (3) MPI_TYPE_FREE(DATATYPE, IERR) INTEGER DATATYPE, IERR  


Упражнение 8:
Номер 1
С помощью данной процедуры возможно определить...

MPI_ADDRESS(LOCATION, ADDRESS, IERR) 
<type> LOCATION(*) INTEGER ADDRESS, IERR

Ответ:

 (1) размер типа данных DATATYPE в байтах 

 (2) абсолютный байт-адрес размещения массива LOCATION в оперативной памяти компьютера 

 (3) зарегистрировать абсолютный байт-адрес массива 


Номер 2
В какой системной константе содержится базовый адрес

Ответ:

 (1) MPI_ADDRESS 

 (2) MPI_TYPE_COMMIT 

 (3) MPI_BOTTOM 


Номер 3
В каком языке параметр ADDRESS имеет тип MPI_Aint

Ответ:

 (1) Фортан 

 (2) Си 

 (3) Си+ 


Упражнение 9:
Номер 1
С помощью какой процедуры можно определить разницу между верхней и нижней границами элемента типа данных DATATYPE

Ответ:

 (1) MPI_TYPE_LB(DATATYPE, DISPL, IERR) INTEGER DATATYPE, DISPL, IERR  

 (2) MPI_TYPE_UB(DATATYPE, DISPL, IERR) INTEGER DATATYPE, DISPL, IERR  

 (3) MPI_TYPE_EXTENT(DATATYPE, EXTENT, IERR) INTEGER DATATYPE, EXTENT, IERR  


Номер 2
С помощью какой процедуры можно определение смещения DISPL нижней границы элемента типа данных DATATYPE

Ответ:

 (1) MPI_TYPE_LB(DATATYPE, DISPL, IERR) INTEGER DATATYPE, DISPL, IERR  

 (2) MPI_TYPE_UB(DATATYPE, DISPL, IERR) INTEGER DATATYPE, DISPL, IERR  

 (3) MPI_TYPE_EXTENT(DATATYPE, EXTENT, IERR) INTEGER DATATYPE, EXTENT, IERR  


Номер 3
С помощью какой процедуры можно определение смещения DISPL верхней границы элемента типа данных DATATYPE

Ответ:

 (1) MPI_TYPE_LB(DATATYPE, DISPL, IERR) INTEGER DATATYPE, DISPL, IERR  

 (2) MPI_TYPE_UB(DATATYPE, DISPL, IERR) INTEGER DATATYPE, DISPL, IERR  

 (3) MPI_TYPE_EXTENT(DATATYPE, EXTENT, IERR) INTEGER DATATYPE, EXTENT, IERR  


Упражнение 10:
Номер 1
Для пересылки разнородных данных можно использовать...

Ответ:

 (1) упаковку данных 

 (2) распаковку данных 

 (3) буферизация данных 


Номер 2
После выполнения данной процедуры 

MPI_PACK(INBUF, INCOUNT, DATATYPE, OUTBUF, OUTSIZE, POSITION, COMM, IERR) <type> INBUF(*), OUTBUF(*)
INTEGER INCOUNT, DATATYPE, OUTSIZE, POSITION, COMM, IERR

какой параметр увеличивается на число байт, равное размеру записи

Ответ:

 (1) POSITION 

 (2) DATATYPE 

 (3) OUTSIZE 


Номер 3
Какой тип данных используется для пересылки упакованных данных

Ответ:

 (1) MPI_PACK 

 (2) MPI_UNPACKED 

 (3) MPI_PACKED 


Упражнение 11:
Номер 1
Из какого массива происходит упаковка элементов типа DATATYPE

Ответ:

 (1) INBUF 

 (2) OUTBUF 

 (3) INCOUNT 


Номер 2
Какой размер имеет массив INBUF в данной процедуре

MPI_UNPACK(INBUF, INSIZE, POSITION, OUTBUF, OUTCOUNT, DATATYPE, COMM, IERR)
<type> INBUF(*), OUTBUF(*)
INTEGER INSIZE, POSITION, OUTCOUNT, DATATYPE, COMM, IERR


Ответ:

 (1) не менее OUTSIZE байт 

 (2) не менее COMM байт 

 (3) не менее INSIZE байт 


Номер 3
Для каких элементов можно определить необходимый объем памяти с помощью данной процедуры

MPI_PACK_SIZE(INCOUNT, DATATYPE, COMM, SIZE, IERR) 
INTEGER INCOUNT, DATATYPE, COMM, SIZE, IERR

Ответ:

 (1) INCOUNT 

 (2) OUTCOUNT 

 (3) для тех и других 


Упражнение 12:
Номер 1
С помощью какой процедуры можно упаковать INCOUNT элементы типа DATATYPE

Ответ:

 (1) MPI_PACK(INBUF, INCOUNT, DATATYPE, OUTBUF, OUTSIZE, POSITION, COMM, IERR) <type> INBUF(*), OUTBUF(*) INTEGER INCOUNT, DATATYPE, OUTSIZE, POSITION, COMM, IERR  

 (2) MPI_TYPE_EXTENT(DATATYPE, EXTENT, IERR) INTEGER DATATYPE, EXTENT, IERR  

 (3) MPI_TYPE_UB(DATATYPE, DISPL, IERR) INTEGER DATATYPE, DISPL, IERR  


Номер 2
С помощью какой процедуры можно распаковать OUTCOUNT элементы типа DATATYPE

Ответ:

 (1) MPI_TYPE_UB(DATATYPE, DISPL, IERR) INTEGER DATATYPE, DISPL, IERR  

 (2) MPI_UNPACK(INBUF, INSIZE, POSITION, OUTBUF, OUTCOUNT, DATATYPE, COMM, IERR) <type> INBUF(*), OUTBUF(*) INTEGER INSIZE, POSITION, OUTCOUNT, DATATYPE, COMM, IERR  

 (3) MPI_ADDRESS(LOCATION, ADDRESS, IERR) <type> LOCATION(*) INTEGER ADDRESS, IERR  


Номер 3
С помощью какой процедуры можно определить необходимый объем памяти для упаковки INCOUNT элементов типа DATATYPE

Ответ:

 (1) MPI_ADDRESS(LOCATION, ADDRESS, IERR) <type> LOCATION(*) INTEGER ADDRESS, IERR  

 (2) MPI_TYPE_EXTENT(DATATYPE, EXTENT, IERR) INTEGER DATATYPE, EXTENT, IERR  

 (3) MPI_PACK_SIZE(INCOUNT, DATATYPE, COMM, SIZE, IERR) INTEGER INCOUNT, DATATYPE, COMM, SIZE, IERR  




Главная / Программирование / Параллельное программирование с использованием технологии MPI / Тест 7