Podcast
Questions and Answers
Какой из следующих функций позволяет создавать подкоммуникацию в MPI?
Какой из следующих функций позволяет создавать подкоммуникацию в MPI?
Какой аргумент необходим для функции MPI_Type_create_struct?
Какой аргумент необходим для функции MPI_Type_create_struct?
Как можно проверить, какой тип топологии имеет коммуникатор?
Как можно проверить, какой тип топологии имеет коммуникатор?
Какую информацию возвращает функция MPI_Graph_get?
Какую информацию возвращает функция MPI_Graph_get?
Signup and view all the answers
Что делает функция MPI_Cart_get?
Что делает функция MPI_Cart_get?
Signup and view all the answers
Какой тип данных используется для работы с адресами в MPI?
Какой тип данных используется для работы с адресами в MPI?
Signup and view all the answers
Какую функцию нужно использовать для определения количества соседей в графе?
Какую функцию нужно использовать для определения количества соседей в графе?
Signup and view all the answers
Какой из этих вариантов является правильным для создания одномерного массива в MPI?
Какой из этих вариантов является правильным для создания одномерного массива в MPI?
Signup and view all the answers
Какой аргумент требуется для функции MPI_Sendrecv?
Какой аргумент требуется для функции MPI_Sendrecv?
Signup and view all the answers
В какой функции используется 'recvcounts[]' как аргумент?
В какой функции используется 'recvcounts[]' как аргумент?
Signup and view all the answers
Что делает функция MPI_Reduce?
Что делает функция MPI_Reduce?
Signup and view all the answers
Какой аргумент необходим для функции MPI_Alltoallw?
Какой аргумент необходим для функции MPI_Alltoallw?
Signup and view all the answers
Какой из следующих аргументов не требуется для функции MPI_Alltoall?
Какой из следующих аргументов не требуется для функции MPI_Alltoall?
Signup and view all the answers
Что делает функция MPI_Igatherv?
Что делает функция MPI_Igatherv?
Signup and view all the answers
Какова основная цель функции MPI_Scatterv?
Какова основная цель функции MPI_Scatterv?
Signup and view all the answers
Какая из этих функций объединяет данные и передает результат всем процессам?
Какая из этих функций объединяет данные и передает результат всем процессам?
Signup and view all the answers
Какова роль аргумента 'root' в функциях MPI?
Какова роль аргумента 'root' в функциях MPI?
Signup and view all the answers
Что происходит, если использовать MPI_Reduce_scatter?
Что происходит, если использовать MPI_Reduce_scatter?
Signup and view all the answers
Какой аргумент необходим для функции MPI_Scan?
Какой аргумент необходим для функции MPI_Scan?
Signup and view all the answers
Что делает функция MPI_Allgather?
Что делает функция MPI_Allgather?
Signup and view all the answers
Какой аргумент нужен для указания типа сообщений в функции MPI_Iscatterv?
Какой аргумент нужен для указания типа сообщений в функции MPI_Iscatterv?
Signup and view all the answers
Какое значение может принимать аргумент 'reorder' в функции MPI_Cart_create?
Какое значение может принимать аргумент 'reorder' в функции MPI_Cart_create?
Signup and view all the answers
Какое значение возвращает функция MPI_Cart_rank?
Какое значение возвращает функция MPI_Cart_rank?
Signup and view all the answers
Какой оператор используется в функции MPI_Reduce_scatter для определения операции редукции?
Какой оператор используется в функции MPI_Reduce_scatter для определения операции редукции?
Signup and view all the answers
Study Notes
Lecture 3
- MPI_Send function syntax:
int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
- MPI_Recv function syntax:
int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)
- Status variable contains information about received messages (excluding COUNT)
-
status.MPI_SOURCE
,status.MPI_TAG
,status.MPI_ERROR
- COUNT is obtained using
int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count)
-
MPI_Probe
checks if a message is available for receiving:int MPI_Probe (int source, int tag, MPI_Comm comm, MPI_Status *status)
Lecture 4
- Non-blocking communication functions use
MPI_Request *request
as the last argument -
MPI_Issend
function syntax:int MPI_Issend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)
-
MPI_Wait
function waits for a request to complete:int MPI_Wait(MPI_Request *request, MPI_Status *status)
-
MPI_Waitany
waits for any request to complete:int MPI_Waitany(int count, MPI_Request array_of_requests [], int *index, MPI_Status *status)
-
MPI_Waitsome
waits for some requests to complete:int MPI_Waitsome (int incount, MPI_Request array_of_requests [], int *outcount, int array_of_indices(), MPI_Status array_of_statuses[])
-
MPI_Waitall
waits for all requests to complete:int MPI_Waitall(int count, MPI_Request array_of_requests [], MPI_Status array_of_statuses[])
-
MPI_Test
tests if a request is complete without blocking:int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status)
Lecture 5
-
MPI_Barrier
synchronizes all processes in a communicator:int MPI_Barrier (MPI_Comm comm)
-
MPI_Wtime
returns the time elapsed since the MPI process started:double MPI_Wtime()
-
MPI_Abort
terminates the MPI process:int MPI_Abort(MPI_Comm comm, int errorcode)
-
MPI_Bcast
broadcasts data from one process to all other processes in a communicator:int MPI_Bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
-
MPI_Scatter
scatters data from one process to multiple processes:int MPI_Scatter (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
-
MPI_Gather
gathers data from multiple processes to one process:int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
Lecture 6
-
MPI_Sendrecv
combines send and receive operations:int MPI_Sendrecv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status)
-
MPI_Sendrecv_replace
exchanges data and replaces it with received data:int MPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, int dest, int sendtag, int source, int recvtag, MPI_Comm comm, MPI_Status *status)
-
MPI_Allgather
gathers data from all processes to all processes:int MPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
-
MPI_Reduce
reduces data from all processes to one process:int MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
-
MPI_Op_create
creates a user-defined operation:int MPI_Op_create(MPI_User_function *func, int commute, MPI_Op *op)
-
MPI_Allreduce
reduces data from all processes to all processes:int MPI_Allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Lecture 7
-
MPI_Scatterv
scatters data with varying element counts to different processes:int MPI_Scatterv (const void *sendbuf, const int sendcounts[], const int displs[], MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
-
MPI_Gatherv
gathers data with varying element counts from different processes to one process:int MPI_Gatherv (const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts(), const int displs[], MPI_Datatype recvtype, int root, MPI_Comm comm)
-
MPI_Allgatherv
gathers data with varying element counts from all processes to all processes:int MPI_Allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, const int recvcounts(), const int displs(), MPI_Datatype recvtype, MPI_Comm comm)
-
MPI_Alltoallv
performs all-to-all communication with potentially differing element counts:int MPI_Alltoallv (const void *sendbuf, const int sendcounts(), const int sdispls[], MPI_Datatype sendtype, void *recvbuf, const int recvcounts(), const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm)
-
MPI_Reduce_scatter
reduces data collectively among processes:int MPI_Reduce_scatter (const void *sendbuf, void *recvbuf, const int recvcounts[], MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Lecture 8
-
MPI_Iscatterv
,MPI_Igatherv
,MPI_Iallgatherv
,MPI_Ialltoallv
,MPI_Ialltoallw
,MPI_Ireduce_scatter
are non-blocking versions of the scatter, gather, all-gather, all-to-all functions
Lecture 9
-
MPI_Cart_create
creates a Cartesian topology:int MPI_Cart_create(MPI_Comm comm_old, int ndims, const int dims(), const int periods(), int reorder, MPI_Comm *comm_cart)
-
MPI_Cart_coords
,MPI_Cart_rank
,MPI_Cart_shift
functions related to Cartesian topologies -
MPI_Cart_sub
creates a subcommunicator from a Cartesian communicator:int MPI_Cart_sub(MPI_Comm comm, const int remain_dims[], MPI_Comm *comm_new)
-
MPI_Topo_test
test for topology type:int MPI_Topo_test(MPI_Comm comm, int *topo_type)
Lecture 10
-
MPI_Graph_create
: creates graph topology:int MPI_Graph_create(MPI_Comm comm_old, int nnodes, const int index(), const int edges [], int reorder, MPI_Comm *comm_graph)
-
MPI_Graph_get
,MPI_Graphdims_get
,MPI_Graph_neighbors_count
,MPI_Graph_neighbors
functions related to graph topologies
Lecture 11
-
MPI_Type_contiguous
,MPI_Type_vector
,MPI_Type_create_struct
,MPI_Type_create_subarray
create derived datatypes -
MPI_Type_commit
,MPI_Type_free
manage derived datatypes -
MPI_Get_address
gets address of memory location:int MPI_Get_address(void *location, MPI_Aint *address)
-
MPI_Type_size
,MPI_Type_get_extent
,MPI_Type_create_resized
functions related to datatype manipulation
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Эта викторина охватывает синтаксис функций MPI_Send и MPI_Recv, а также использование переменной статуса для получения информации о полученных сообщениях. Она также исследует функции неблокирующей коммуникации, такие как MPI_Issend и MPI_Wait. Проверьте свои знания о распределенных вычислениях и MPI.