Skip to content
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

MPI window attribute types #283

Closed
mpiforumbot opened this issue Jul 24, 2016 · 13 comments
Closed

MPI window attribute types #283

mpiforumbot opened this issue Jul 24, 2016 · 13 comments

Comments

@mpiforumbot
Copy link
Collaborator

mpiforumbot commented Jul 24, 2016

Originally by jdinan on 2011-07-05 12:22:34 -0500


In Section 11.2.5 of the ticket #270 text, pointer types are needed for the C in/output arguments to MPI_Win_get/set_attr for all window attributes. This is a clarification to the MPI-2 standard, not an artifact of the MPI-3 RMA proposal.

Original (ticket #270) text:

In C, calls to MPI_Win_get_attr(win, MPI_WIN_BASE, &base, &ag),
MPI_Win_get_attr(win, MPI_WIN_SIZE, &size, &ag),
MPI_Win_get_attr(win, MPI_WIN_DISP_UNIT, &disp_unit, &ag), 
MPI_Win_get_attr(win, MPI_WIN_CREATE_FLAVOR, &create_kind, &ag), and 
MPI_Win_get_attr(win, MPI_WIN_MODEL, &memory_model, &ag) will return in
base a pointer to the start of the window win, and will return in size,
disp_unit, create_kind, and memory_model pointers to the size,
displacement unit of the window, the kind of routine used to create the
window, and the memory model, respectively. And similarly, in C++
(binding deprecated, see Section 15.2).

The following text should be appended to the paragraph above, page 9, line 41:

A detailed listing of the type of the pointer in the attribute value
argument to MPI_Win_get_attr and MPI_Win_set_attr is shown in 
Table~\ref{table:c-attr-types}.

The following table and caption (refernced in the above paragraph) should also be added:

||# Attribute ||# C Type ||
|| MPI_WIN_BASE || void * ||
|| MPI_WIN_SIZE || MPI_Aint * ||
|| MPI_WIN_DISP_UNIT || int * ||
|| MPI_WIN_CREATE_FLAVOR || int * ||
|| MPI_WIN_MODEL || int * ||

Caption: C types of attribute value argument to MPI_Win_get_attr
and MPI_Win_set_attr.

@mpiforumbot
Copy link
Collaborator Author

Originally by gropp on 2011-12-13 10:48:24 -0600


Do any current MPI implementations do something different from this? These values are the "natural" ones there's a good chance that this is established practice.

@mpiforumbot
Copy link
Collaborator Author

Originally by jdinan on 2011-12-13 11:22:44 -0600


Each of these values is defined somewhere in the standard, but it's challenging to locate them all. That said, I wouldn't be surprised if an application or implementation has gotten it wrong. For example, the 2.2 standard, page 509, line 12 defines how MPI_WIN_BASE is handled:

"... in Fortran, MPI_WIN_GET_ATTR(win, MPI_WIN_BASE, val, ag, ierror) will return in val the base address of the window, converted to an integer. In C, MPI_Win_get_attr(win, MPI_WIN_BASE, &p, &ag) will return in p a pointer to the window base, cast to (void *)."

@mpiforumbot
Copy link
Collaborator Author

Originally by jdinan on 2012-01-12 11:32:34 -0600


This should have been read at the January meeting in California. Scheduling it for the next meeting.

Replying to jdinan:

@mpiforumbot
Copy link
Collaborator Author

Originally by jdinan on 2012-03-05 14:44:16 -0600


This ticket has been withdrawn as a separate proposal and will be incorporated into MPI 3.0 by the chapter committee.

@mpiforumbot
Copy link
Collaborator Author

Originally by jdinan on 2012-07-03 11:13:59 -0500


Reopening this as a "passed" (ticket 0) ticket so we don't lose it.

@mpiforumbot
Copy link
Collaborator Author

Originally by htor on 2012-07-03 23:02:06 -0500


This ticket is a bit unclear. What are the proposed changes and how shall they be implemented?

@mpiforumbot
Copy link
Collaborator Author

Originally by jdinan on 2012-07-05 09:28:19 -0500


I updated the comments to make the new changes a little more clear. This ticket adds a sentence to the window attributes paragraph and the corresponding table, which clarifies the actual type of the void* argument to get/set attr.

This would have been an MPI 2.2 errata, but I was able to find all of these types scattered throughout the standard. So, we decided to handle this as a ticket 0 clarification.

@mpiforumbot
Copy link
Collaborator Author

Originally by htor on 2012-07-05 12:44:17 -0500


This is also committed in approved/one-sided now. Please check!

Torsten

@mpiforumbot
Copy link
Collaborator Author

Originally by hubertritzdorf on 2012-07-15 09:32:47 -0500


Reviewed in mpi-report-r1244.pdf

@mpiforumbot
Copy link
Collaborator Author

Originally by potluri on 2012-07-16 11:21:44 -0500


reviewed in mpi-report-r1300.pdf

@mpiforumbot
Copy link
Collaborator Author

Originally by jsquyres on 2012-07-18 10:42:36 -0500


Appears to be fully committed. Moving to "Waiting for PDF reviews".

@mpiforumbot
Copy link
Collaborator Author

Originally by jdinan on 2012-09-24 04:18:44 -0500


This change was included in MPI 3.0.

@mpiforumbot
Copy link
Collaborator Author

Originally by RolfRabenseifner on 2013-01-07 11:41:48 -0600


Since Sep. 21, 2012, this ticket is included in MPI-3.0 and the pdf is checked according to https://svn.mpi-forum.org/svn/mpi-forum-docs/trunk/meetings/2012-07-jul/mpi3-tickets.xlsx

Therefore, I set the priority to "Ticket complete".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant