-
Notifications
You must be signed in to change notification settings - Fork 906
add support for request_get_status_any/all/some #13279
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
37d0a54
f636bc5
81e3492
31a0d60
fb2e098
a391063
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
.. _mpi_request_get_status_all: | ||
|
||
|
||
MPI_Request_get_status_all | ||
========================== | ||
|
||
.. include_body | ||
|
||
:ref:`MPI_Request_get_status_all` |mdash| Access information associated with a | ||
request without freeing the request. | ||
|
||
.. The following file was automatically generated | ||
.. include:: ./bindings/mpi_request_get_status_all.rst | ||
|
||
INPUT PARAMETER | ||
--------------- | ||
* ``count``: List length (non-negative integer) | ||
* ``array_of_requests``: Array of requests (array of handles). | ||
|
||
OUTPUT PARAMETERS | ||
----------------- | ||
* ``flag``: Boolean flag, same as from :ref:`MPI_Test` (logical). | ||
* ``array_of_statuses``: Array of ``MPI_Status`` objects if flag is true (array of status). | ||
* ``ierror``: Fortran only: Error status (integer). | ||
|
||
DESCRIPTION | ||
----------- | ||
|
||
:ref:`MPI_Request_get_status_all` sets ``flag = true`` if all | ||
operations associated with *active* handles in the array have completed. | ||
In this case, each status entry that corresponds to an active request | ||
is set to the status of the corresponding operation. It | ||
does not deallocate or deactivate the request; a subsequent call to | ||
test, wait, or free should be executed with each of those requests. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. any of the MPI test, wait, or free routines ... (note: all of my comments on this particular man page generally apply to all 3 of the man pages) |
||
|
||
Each status entry that corresponds to a null or inactive handle is set | ||
to empty. Otherwise, ``flag = false`` is returned and the values of the | ||
status entries are undefined. | ||
|
||
If your application does not need to examine the *status* field, you can | ||
save resources by using the predefined constant ``MPI_STATUS_IGNORE`` as a | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Did you mean |
||
special value for the ``array_of_statuses`` argument. | ||
Comment on lines
+40
to
+42
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why would you call Is it even valid to call |
||
|
||
|
||
ERRORS | ||
------ | ||
|
||
.. include:: ./ERRORS.rst |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
.. _mpi_request_get_status_any: | ||
|
||
|
||
MPI_Request_get_status_any | ||
========================== | ||
|
||
.. include_body | ||
|
||
:ref:`MPI_Request_get_status_any` |mdash| Access information associated with a | ||
request without freeing the request. | ||
|
||
.. The following file was automatically generated | ||
.. include:: ./bindings/mpi_request_get_status_any.rst | ||
|
||
INPUT PARAMETER | ||
--------------- | ||
* ``count``: List length (non-negative integer) | ||
* ``array_of_requests``: Array of requests (array of handles). | ||
|
||
OUTPUT PARAMETERS | ||
----------------- | ||
* ``index``: Index of operation that completed (integer). | ||
* ``flag``: Boolean flag, same as from :ref:`MPI_Test` (logical). | ||
* ``status``: ``MPI_Status`` object if flag is true (status). | ||
* ``ierror``: Fortran only: Error status (integer). | ||
|
||
DESCRIPTION | ||
----------- | ||
|
||
:ref:`MPI_Request_get_status_any` sets ``flag = true`` if either one | ||
of the operations associated with active handles has completed. In | ||
this case it returns in ``index`` the index of this request in the | ||
array and the status of the operation in ``status``. It does not | ||
deallocate or deactivate the request; a subsequent call to test, wait, | ||
or free should be executed with that request. | ||
|
||
If no operation completed, it returns ``flag = false`` and a value of | ||
``MPI_UNDEFINED`` in ``index``. ``status`` is undefined in this | ||
scenario. | ||
|
||
If ``array_of_requests`` contains no active handles then the call | ||
returns immediately with ``flag = true``, ``index = MPI_UNDEFINED``, | ||
and an empty status. | ||
|
||
If your application does not need to examine the *status* field, you can | ||
save resources by using the predefined constant ``MPI_STATUS_IGNORE`` as a | ||
special value for the ``status`` argument. | ||
|
||
|
||
ERRORS | ||
------ | ||
|
||
.. include:: ./ERRORS.rst |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
.. _mpi_request_get_status_some: | ||
|
||
|
||
MPI_Request_get_status_some | ||
=========================== | ||
|
||
.. include_body | ||
|
||
:ref:`MPI_Request_get_status_some` |mdash| Access information associated with a | ||
request without freeing the request. | ||
|
||
.. The following file was automatically generated | ||
.. include:: ./bindings/mpi_request_get_status_some.rst | ||
|
||
INPUT PARAMETER | ||
--------------- | ||
* ``incount``: List length (non-negative integer). | ||
* ``array_of_requests``: Array of requests (array of handles). | ||
|
||
OUTPUT PARAMETERS | ||
----------------- | ||
* ``outcount``: Number of completed requests (integer). | ||
* ``array_of_indices``: Array of indices of operations that completed (array of integers). | ||
* ``array_of_statuses``: Array of ``MPI_Status`` objects for operations that completed (array of status). | ||
* ``ierror``: Fortran only: Error status (integer). | ||
|
||
DESCRIPTION | ||
----------- | ||
|
||
:ref:`MPI_Request_get_status_some` returns in outcount the number of | ||
requests from the list ``array_of_requests`` that have completed. The | ||
first ``outcount`` locations of the array ``array_of_indices`` and | ||
``array_of_statuses`` will contain the indices of the operations | ||
within the array ``array_of_requests`` and the status of these | ||
operations respectively. The array is indexed from zero in C and from | ||
one in Fortran. It does not deallocate or deactivate the request; a | ||
subsequent call to test, wait, or free should be executed with each completed | ||
request. | ||
|
||
If no operation in ``array_of_requests`` is complete, it returns | ||
``outcount = 0``. If all operations in ``array_of_requests`` are either | ||
``MPI_REQUEST_NULL`` or inactive, ``outcount`` will be set to ``MPI_UNDEFINED``. | ||
|
||
If your application does not need to examine the *status* field, you can | ||
save resources by using the predefined constant ``MPI_STATUS_IGNORE`` as a | ||
special value for the ``array_of_statuses`` argument. | ||
|
||
|
||
ERRORS | ||
------ | ||
|
||
.. include:: ./ERRORS.rst |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -37,12 +37,16 @@ def main(): | |
subparsers_fortran = parser_fortran.add_subparsers() | ||
parser_code = subparsers_fortran.add_parser('code', help='generate binding code') | ||
parser_code.set_defaults(handler=lambda args, out: fortran.generate_code(args, out)) | ||
parser_code.add_argument('--lang', choices=('fortran', 'c'), | ||
parser_code.add_argument('--lang', choices=('fortran', 'c', 'f90'), | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @hppritcha What is the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. its implied in the check around line 297 in fortran.py but i'll make it explicit. its suppose to mean generate the "f90" aka use mpi fortran interfaces. |
||
help='language to generate (only for code subparser)') | ||
parser_code.add_argument('--fort-std', choices=('f90', 'f08'), | ||
help='fortran standard to use for fortran module generation') | ||
# Handler for generating the Fortran interface files | ||
parser_interface = subparsers_fortran.add_parser('interface', | ||
help='generate Fortran interface specifications') | ||
parser_interface.set_defaults(handler=lambda args, out: fortran.generate_interface(args, out)) | ||
parser_interface.add_argument('--fort-std', choices=('f90', 'f08'), | ||
help='fortran standard to use for fortran module generation') | ||
Comment on lines
+48
to
+49
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @hppritcha I see There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yes it is. i can look if it makes sense to put in the higher level "fortran parser". |
||
# The prototype files argument must come last and be specified for both subparsers | ||
for f_subparser in [parser_code, parser_interface]: | ||
f_subparser.add_argument('--prototype-files', nargs='+', help='prototype files to generate code for') | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're access information with all active requests in an array -- not just a request.