What is the use of status of MPI_Isend obtained using MPI_Wait?
Case: 1. What is the use of status obtained using MPI_Wait()
if(rank==0)
MPI_Isend(&buffer0, count, MPI_INT, 1, 0, MPI_COMM_WORLD, &request0);
if(rank==1)
MPI_Recv(&buffer1, count, MPI_INT, 0, 0, MPI_COMM_WORLD);
if(rank==0)
MPI_Wait(&request0, &status);
// Can i use status here to do something?
MPI_Finalize();
Case:2. Use of status is clear here (Just added for comparison)
if(rank==0)
MPI_Ssend(&buffer0, count, MPI_INT, 1, 0, MPI_COMM_WORLD);
if(rank==1)
MPI_Irecv(&buffer1, count, MPI_INT, 0, 0, MPI_COMM_WORLD, &request1);
if(rank==1)
MPI_Wait(&request1, &status);
printf("The source is %d", status.MPI_SOURCE);
MPI_Finalize();
c mpi intel-mpi
add a comment |
Case: 1. What is the use of status obtained using MPI_Wait()
if(rank==0)
MPI_Isend(&buffer0, count, MPI_INT, 1, 0, MPI_COMM_WORLD, &request0);
if(rank==1)
MPI_Recv(&buffer1, count, MPI_INT, 0, 0, MPI_COMM_WORLD);
if(rank==0)
MPI_Wait(&request0, &status);
// Can i use status here to do something?
MPI_Finalize();
Case:2. Use of status is clear here (Just added for comparison)
if(rank==0)
MPI_Ssend(&buffer0, count, MPI_INT, 1, 0, MPI_COMM_WORLD);
if(rank==1)
MPI_Irecv(&buffer1, count, MPI_INT, 0, 0, MPI_COMM_WORLD, &request1);
if(rank==1)
MPI_Wait(&request1, &status);
printf("The source is %d", status.MPI_SOURCE);
MPI_Finalize();
c mpi intel-mpi
add a comment |
Case: 1. What is the use of status obtained using MPI_Wait()
if(rank==0)
MPI_Isend(&buffer0, count, MPI_INT, 1, 0, MPI_COMM_WORLD, &request0);
if(rank==1)
MPI_Recv(&buffer1, count, MPI_INT, 0, 0, MPI_COMM_WORLD);
if(rank==0)
MPI_Wait(&request0, &status);
// Can i use status here to do something?
MPI_Finalize();
Case:2. Use of status is clear here (Just added for comparison)
if(rank==0)
MPI_Ssend(&buffer0, count, MPI_INT, 1, 0, MPI_COMM_WORLD);
if(rank==1)
MPI_Irecv(&buffer1, count, MPI_INT, 0, 0, MPI_COMM_WORLD, &request1);
if(rank==1)
MPI_Wait(&request1, &status);
printf("The source is %d", status.MPI_SOURCE);
MPI_Finalize();
c mpi intel-mpi
Case: 1. What is the use of status obtained using MPI_Wait()
if(rank==0)
MPI_Isend(&buffer0, count, MPI_INT, 1, 0, MPI_COMM_WORLD, &request0);
if(rank==1)
MPI_Recv(&buffer1, count, MPI_INT, 0, 0, MPI_COMM_WORLD);
if(rank==0)
MPI_Wait(&request0, &status);
// Can i use status here to do something?
MPI_Finalize();
Case:2. Use of status is clear here (Just added for comparison)
if(rank==0)
MPI_Ssend(&buffer0, count, MPI_INT, 1, 0, MPI_COMM_WORLD);
if(rank==1)
MPI_Irecv(&buffer1, count, MPI_INT, 0, 0, MPI_COMM_WORLD, &request1);
if(rank==1)
MPI_Wait(&request1, &status);
printf("The source is %d", status.MPI_SOURCE);
MPI_Finalize();
c mpi intel-mpi
c mpi intel-mpi
edited Jan 19 at 10:28
Black Heart
asked Jan 19 at 9:24
Black HeartBlack Heart
124119
124119
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Generally MPI_Status
is used to get the the following properties for received messages.
- rank of the sender, (
status.MPI_SOURCE
) particularly relevant whenMPI_ANY_SOURCE
was used. - tag of the message, (
status.MPI_TAG
) particularly relevant whenMPI_ANY_TAG
was used - element-count that was sent, which may differ from posted receive buffer, using
MPI_Get_count
.
For send messages, you can use the status to test for MPI_Test_cancelled
. Further, for functions that return multiple status, such as MPI_Waitall
, in the case of errors, you can use status[i].MPI_ERROR
. The main wait function will return MPI_ERR_IN_STATUS
in this case.
If you do not need any of those, you may pass MPI_STATUS_IGNORE
instead of a MPI_Status*
.
Can you please check Case:1 once more? I'm talking about the status in MPI_Wait(&request0, &status); This MPI_Wait was used to check out MPI_Isend.
– Black Heart
Jan 19 at 10:43
1
Sorry I wasn't clear. I updated the answer.
– Zulan
Jan 19 at 11:02
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54265687%2fwhat-is-the-use-of-status-of-mpi-isend-obtained-using-mpi-wait%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Generally MPI_Status
is used to get the the following properties for received messages.
- rank of the sender, (
status.MPI_SOURCE
) particularly relevant whenMPI_ANY_SOURCE
was used. - tag of the message, (
status.MPI_TAG
) particularly relevant whenMPI_ANY_TAG
was used - element-count that was sent, which may differ from posted receive buffer, using
MPI_Get_count
.
For send messages, you can use the status to test for MPI_Test_cancelled
. Further, for functions that return multiple status, such as MPI_Waitall
, in the case of errors, you can use status[i].MPI_ERROR
. The main wait function will return MPI_ERR_IN_STATUS
in this case.
If you do not need any of those, you may pass MPI_STATUS_IGNORE
instead of a MPI_Status*
.
Can you please check Case:1 once more? I'm talking about the status in MPI_Wait(&request0, &status); This MPI_Wait was used to check out MPI_Isend.
– Black Heart
Jan 19 at 10:43
1
Sorry I wasn't clear. I updated the answer.
– Zulan
Jan 19 at 11:02
add a comment |
Generally MPI_Status
is used to get the the following properties for received messages.
- rank of the sender, (
status.MPI_SOURCE
) particularly relevant whenMPI_ANY_SOURCE
was used. - tag of the message, (
status.MPI_TAG
) particularly relevant whenMPI_ANY_TAG
was used - element-count that was sent, which may differ from posted receive buffer, using
MPI_Get_count
.
For send messages, you can use the status to test for MPI_Test_cancelled
. Further, for functions that return multiple status, such as MPI_Waitall
, in the case of errors, you can use status[i].MPI_ERROR
. The main wait function will return MPI_ERR_IN_STATUS
in this case.
If you do not need any of those, you may pass MPI_STATUS_IGNORE
instead of a MPI_Status*
.
Can you please check Case:1 once more? I'm talking about the status in MPI_Wait(&request0, &status); This MPI_Wait was used to check out MPI_Isend.
– Black Heart
Jan 19 at 10:43
1
Sorry I wasn't clear. I updated the answer.
– Zulan
Jan 19 at 11:02
add a comment |
Generally MPI_Status
is used to get the the following properties for received messages.
- rank of the sender, (
status.MPI_SOURCE
) particularly relevant whenMPI_ANY_SOURCE
was used. - tag of the message, (
status.MPI_TAG
) particularly relevant whenMPI_ANY_TAG
was used - element-count that was sent, which may differ from posted receive buffer, using
MPI_Get_count
.
For send messages, you can use the status to test for MPI_Test_cancelled
. Further, for functions that return multiple status, such as MPI_Waitall
, in the case of errors, you can use status[i].MPI_ERROR
. The main wait function will return MPI_ERR_IN_STATUS
in this case.
If you do not need any of those, you may pass MPI_STATUS_IGNORE
instead of a MPI_Status*
.
Generally MPI_Status
is used to get the the following properties for received messages.
- rank of the sender, (
status.MPI_SOURCE
) particularly relevant whenMPI_ANY_SOURCE
was used. - tag of the message, (
status.MPI_TAG
) particularly relevant whenMPI_ANY_TAG
was used - element-count that was sent, which may differ from posted receive buffer, using
MPI_Get_count
.
For send messages, you can use the status to test for MPI_Test_cancelled
. Further, for functions that return multiple status, such as MPI_Waitall
, in the case of errors, you can use status[i].MPI_ERROR
. The main wait function will return MPI_ERR_IN_STATUS
in this case.
If you do not need any of those, you may pass MPI_STATUS_IGNORE
instead of a MPI_Status*
.
edited Jan 19 at 11:02
answered Jan 19 at 10:36
ZulanZulan
15.5k63070
15.5k63070
Can you please check Case:1 once more? I'm talking about the status in MPI_Wait(&request0, &status); This MPI_Wait was used to check out MPI_Isend.
– Black Heart
Jan 19 at 10:43
1
Sorry I wasn't clear. I updated the answer.
– Zulan
Jan 19 at 11:02
add a comment |
Can you please check Case:1 once more? I'm talking about the status in MPI_Wait(&request0, &status); This MPI_Wait was used to check out MPI_Isend.
– Black Heart
Jan 19 at 10:43
1
Sorry I wasn't clear. I updated the answer.
– Zulan
Jan 19 at 11:02
Can you please check Case:1 once more? I'm talking about the status in MPI_Wait(&request0, &status); This MPI_Wait was used to check out MPI_Isend.
– Black Heart
Jan 19 at 10:43
Can you please check Case:1 once more? I'm talking about the status in MPI_Wait(&request0, &status); This MPI_Wait was used to check out MPI_Isend.
– Black Heart
Jan 19 at 10:43
1
1
Sorry I wasn't clear. I updated the answer.
– Zulan
Jan 19 at 11:02
Sorry I wasn't clear. I updated the answer.
– Zulan
Jan 19 at 11:02
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54265687%2fwhat-is-the-use-of-status-of-mpi-isend-obtained-using-mpi-wait%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown