Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Duisembiev-Parallel-esep.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.86 Mб
Скачать

Integer incount, requests(*), outcount, indexes(*), ierr,

STATUSES(MPI_STATUS_SIZE,*)

Көрсетілген идентификаторлармен (REQUESTS) анықталған алмасудың қандай да бір асинхронды (INCOUNT) операциясы аяқталмайынша, процестің орындалуы бұғатталынып тұрады. outcount параметрі аяқталған операциялар санын, ал indexes массивінің алғашқы outcount элементтері requests массиві элементтерінің нөмірлерін олардың идентификаторларымен қамтиды. statuses массивінің алғашқы outcount элементтері аяқталған операция параметрлерін қамтиды.

Int mpi_Test(mpi_Request *request, int *flag, mpi_Status *status)

  • request - асинхронды қабылдау немесе жіберу операцияларының идентификаторы;

  • out flag —алмасу операцияларының аяқталғанының белгісі;

  • out status — хабарлама параметрлері.

Фортран тіліндегі нұсқасы:

MPI_TEST(REQUEST, FLAG, STATUS, IERR)

LOGICAL FLAG

Integer request, ierr, status(mpi_status_size)

Асинхронды MPI_Isend немесе MPI_Irecv функцияларының аяқталуын тексеру. flag параметрінде MPI_Test функциясы 1 мәнін қайтарады, егер сәйкес операция аяқталған болса, кері жағдайда 0 мәні қайтарылады (Фортран тілінде сәйкесінше .true. немесе.false.). Егер қабылдау процедурасы аяқталса, онда алынған хабарламаның ұзындығын және атрибуттарын status параметрі көмегімен анықтауға болады. Процедура орындалып болғаннан кейін REQUEST параметрінің сәйкес элементі mpi_request_null мәніне орналастырылады (устанавливается в значение mpi_request_null).

Int mpi_Testall( int count, mpi_Request *requests, int *flag, mpi_Status *statuses)

  • count - асинхронды операциялар идентификаторларының саны;

  • requests - асинхронды қабылдау немесе жіберу операцияларының идентификаторы;

  • out flag - алмасу операцияларының аяқталғанының белгісі;

  • out statuses - хабарлама параметрлері.

Фортран тіліндігі нұсқасы:

MPI_TESTALL(COUNT, REQUESTS, FLAG, STATUSES, IERR)

LOGICAL FLAG

Integer count, requests(*), statuses(mpi_status_size,*), ierr

Асинхронды COUNT операцияларының аяқталуын тексеру Егер сәйкес операциялардың барлығы аяқталған болса, онда flag параметрінде MPI_Testall функциясы 1 мәнін қайтарады. Бұл жағдайда хабарлама параметрлері statuses массивінде көрсетіледі. Егер операциялардың бірі аяқталмаса, онда 0 мәні қайтарылады (Фортран тілінде сәйкесінше .true. немесе.false.) және бұл жағдайда statuses массиві элементтерінің анықталғандығына кепілдік берілмейді.

Int mpi_Testany(int count, mpi_Request *requests, int *index, int *flag, mpi_Status *status)

  • count - асинхронды операциялар идентификаторларының саны;

  • requests - асинхронды қабылдау немесе жіберу операцияларының идентификаторы;

  • out index – аяқталған алмасу операциясының нөмірі;

  • out flag - алмасу операцияларының аяқталғанының белгісі;

  • out statuses - хабарлама параметрлері.

Фортран тіліндегі нұсқасы:

MPI_TESTANY(COUNT, REQUESTS, INDEX, FLAG, STATUS, IERR)

LOGICAL FLAG

Integer count, requests(*), index, status(mpi_status_size), ierr

Егер MPI_TESTANY функциясын шақыруға дейін асинхронды алмасу операцияларының ең болмағанда бірі аяқталса, онда flag параметрінде 1 мәні қайтарылады, кері жағдайда – 0 (Фортран тілінде сәйкесінше .true. немесе.false.). Мұнда да егер шақыруға дейін бірнеше күтілген операциялар аяқталса, онда оладың бірі кездейсоқ түрде таңдалып алынады. Процедура орындалып болғаннан кейін REQUESTS параметрінің сәйкес элементі mpi_request_null мәніне орналастырылады.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]