MPI_Request_get_status_all(3)
๐ MPI_Request_get_status_all(3) ๐
okay bestie, welcome to the MPI manual page for MPI_Request_get_status_all โ yes that's the whole name, it's giving "I have a lot of requests and I need to check them all at once" energy and honestly? iconic. ๐
Nondestructive test for the completion of all requests โจ
Like, it peeks ๐ at every request you hand it and tells you if they're all done โ and it does it without destroying anything. No cap.
๐ธ SYNOPSIS ๐ธ
int MPI_Request_get_status_all(int count, const MPI_Request array_of_requests[],
int *flag, MPI_Status *array_of_statuses)
๐ฆ INPUT PARAMETERS ๐ฆ
countโ the count, bestie. A non-negative integer. That's the vibe.array_of_requestsโ an array of requests (handle). Yes, the whole squad. ๐
๐ OUTPUT PARAMETERS ๐
flagโ the flag (logical). It's the little boolean that tells you what's up. ๐ฉarray_of_statusesโ an array of status objects (Status). Every request gets its own lil status receipt. ๐งพ
๐ฅ THREAD AND INTERRUPT SAFETY ๐ฅ
This routine is thread-safe. Translation: multiple threads can use it at the same time and you do NOT need to bring your own thread locks. She handles herself. ๐โโ๏ธ
โ ๏ธ BUT. It is not interrupt safe. The reason is typically that it uses memory allocation routines like malloc, or other non-MPICH runtime routines, and those routines are themselves not interrupt-safe. So don't come for her about interrupts, that's a whole other department. ๐ญ
๐ NOTES FOR FORTRAN ๐
Every MPI routine in Fortran has an extra argument called ierr chillin' at the end of the argument list โ the only exceptions are MPI_WTIME and MPI_WTICK. ๐
ierr is an integer and it means the exact same thing as the return value of the routine in C. And in Fortran, MPI routines are subroutines, so you invoke them with the call statement. periodt.
Also: all MPI objects (like MPI_Datatype, MPI_Comm) are of type INTEGER in Fortran. Yes, all of them. ๐
๐ญ ERRORS ๐ญ
All MPI routines (except MPI_Wtime and MPI_Wtick) return an error value โ C routines as the value of the function, and Fortran routines in the last argument. Before that value comes back to you, the current MPI error handler gets called. By default, this error handler aborts the MPI job. like, the whole thing. bye. ๐
The error handler can be changed with:
MPI_Comm_set_errhandler(for communicators)MPI_File_set_errhandler(for files)MPI_Win_set_errhandler(for RMA windows)
The MPI-1 routine MPI_Errhandler_set may be used but its use is deprecated so maybe don't, bestie. ๐
The predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error; however, MPI implementations will attempt to continue whenever possible. โจ
Here are the error classes, one by one, no skipping:
MPI_SUCCESSโ No error; MPI routine completed successfully. slay. ๐MPI_ERR_ARGโ Invalid argument. Some argument is invalid and is not identified by a specific error class (e.g.,MPI_ERR_RANK). ๐คจMPI_ERR_COUNTโ Invalid count argument. Count arguments must be non-negative; a count of zero is often valid. ๐งฎMPI_ERR_REQUESTโ InvalidMPI_Request. Either null or, in the case of aMPI_StartorMPI_Startall, not a persistent request. ๐ซMPI_ERR_OTHERโ Other error; useMPI_Error_stringto get more information about this error code. ๐
and that's the whole page, bestie!! go forth and check all your requests at once, nondestructively, like the main character you are ๐๐โจ
mwah ๐ โ this lil rewrite comes to you from the MPI manual, dated 4/10/2026, page MPI_Request_get_status_all(3). take care of her ๐ซถ
๐ฆ where this page comes from
- nixos 26.05: mpich 5.0.1
- ubuntu stonking: mpich-doc 5.0.1-9 ยท other
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms