Thank you @gmegan for all your work on the Teams draft!
I was reading the "Error Handling" section and the following stood out to me:
OpenSHMEM implementations for high performance production environments may do minimal internal error checking for performance reasons. [...]
In "Environment Variables", the specification doesn't say much about what the SHMEM_DEBUG environment variable does. Do we consider it relevant here? If so, do we want to more fully define the effects of setting SHMEM_DEBUG to particular values? For example, SHMEM_DEBUG=0 could mean "don't perform safety checks at the SHMEM level" (e.g., Is this a valid PE? Is this a valid symmetric address?), while setting SHMEM_DEBUG to a nonzero value could request such checks. Note that failing those checks might still be fatal, but could result in an OpenSHMEM-level error message vs. an error at a lower layer of the runtime (which is often more cryptic). Also, I don't think SHMEM_DEBUG should affect the error checking for conditions explicitly specified as checked by a particular routine.
Thank you @gmegan for all your work on the Teams draft!
I was reading the "Error Handling" section and the following stood out to me:
In "Environment Variables", the specification doesn't say much about what the
SHMEM_DEBUG
environment variable does. Do we consider it relevant here? If so, do we want to more fully define the effects of settingSHMEM_DEBUG
to particular values? For example,SHMEM_DEBUG=0
could mean "don't perform safety checks at the SHMEM level" (e.g., Is this a valid PE? Is this a valid symmetric address?), while settingSHMEM_DEBUG
to a nonzero value could request such checks. Note that failing those checks might still be fatal, but could result in an OpenSHMEM-level error message vs. an error at a lower layer of the runtime (which is often more cryptic). Also, I don't thinkSHMEM_DEBUG
should affect the error checking for conditions explicitly specified as checked by a particular routine.