Skip to content

Conversation

michael-beebe
Copy link

No description provided.

lstewart and others added 14 commits August 11, 2025 11:22
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
Copy link
Author

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
Copy link
Author

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.
Copy link
Author

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.
Copy link
Author

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
Copy link
Collaborator

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
Copy link
Collaborator

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}
Copy link
Collaborator

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.
Copy link
Author

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.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants