-
Notifications
You must be signed in to change notification settings - Fork 42
Memory Spaces #567
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?
Memory Spaces #567
Conversation
add shmem_space_malloc and shmem_space_free
…e-agnostic. - Added spaces description to programming model overview. - Added a spaces intro.
…rify default alias vs multiple enabled spaces; legacy allocs are SHMEM_TEAM_WORLD-collective - Added content/shmem_space_calloc.tex and included in main_spec.tex - Aligned spaces intro with env vars: SHMEM_<DEVICE>_SYMMETRIC_SIZE, SHMEM_ENABLE_<DEVICE>, SHMEM_DEFAULT_SPACE - Clarified SHMEM_SPACE_DEFAULT is a single alias; multiple spaces may be enabled concurrently - Focused teams intro on SHMEM_TEAM_<DEVICE>; moved space details to spaces_intro.tex - Scoped underscore wrapping to \ENVVAR{} only to fix env-var wrapping
Remove TODO from content/programming_model_overview.tex
define accessibility and operational properties of those objects. Allocations | ||
within a space are collective and symmetric across the \acp{PE} for which the | ||
space is available. Collective and communication operations operate on data | ||
resident in one or more spaces as permitted by the implementation |
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.
Missing a period.
\item g or G multiplies by \(2^{30}\) (gibibytes) | ||
\item t or T multiplies by \(2^{40}\) (tebibytes) | ||
\end{itemize} | ||
For example, string \enquote{20m} is equivalent to the integer value |
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.
Add this back in!!!
implementation-defined and must be at least as large as the integer | ||
ceiling of the product of the numeric prefix and the scaling factor. | ||
The allowed character suffixes are as in \ENVVAR{SHMEM\_SYMMETRIC\_SIZE}. | ||
Device tokens are implementation-defined. |
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.
Need a clear definition for "device tokens".
@@ -0,0 +1,100 @@ | |||
The \openshmem spaces facility introduces named symmetric heaps associated with | |||
particular memory domains, referred to as \emph{spaces}. The set of supported | |||
domains and any associated tokens are implementation-defined. |
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.
Clearly define "tokens".
symmetric data objects in these heaps. | ||
|
||
The symmetric memory allocation routines differ from the private heap | ||
In addition to the traditional (legacy) symmetric heap used by |
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.
I don't think we use the term "legacy" elsewhere in the spec, e.g. to refer to operations that use the default context. Unless they are being deprecated, I would suggest that we don't introduce this term.
|
||
\subsubsection*{Default Space and Backward Compatibility} | ||
|
||
Implementations may provide a default space that legacy allocation routines use |
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.
Do we really mean "may" here or do we want a stronger "must" requirement?
Implementations may provide a default space that legacy allocation routines use | ||
for backward compatibility. Legacy allocation routines are collective | ||
operations over \LibHandleRef{SHMEM\_TEAM\_WORLD}. When a default space is | ||
provided, the traditional \FUNC{shmem\_malloc} and \FUNC{shmem\_calloc} |
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.
Please strike usage of "traditional" and "legacy".
indicate that the handle does not reference a valid memory space. Applications | ||
can use an equality comparison to test whether a given space handle references | ||
a valid memory space. See Section~\ref{subsec:library_handles} for predefined | ||
handles and Section~\ref{sec:memory_management} for allocation interfaces. |
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.
Double check that memory_management is the correct section.
No description provided.