openshmem-org / specification

OpenSHMEM Application Programming Interface
http://www.openshmem.org
51 stars 41 forks source link

Clarify progress of nonblocking operations #500

Open jdinan opened 1 year ago

jdinan commented 1 year ago

OpenSHMEM 1.5, Section 4.1 specifies the progress requirements with respect to remote PEs. However, the progress requirements with respect to the local PE are underspecified. This is especially important with regard to nonblocking operations, where it's unclear whether asynchronous progress is a hard requirement. For example, a nonblocking put-with-signal operation may not map to a single operation at the network level and require that the signal operation be issued only after the put has completed.

Related to #456

jdinan commented 1 year ago

Here's an example that illustrates the issue. Does this example deadlock?

PE 0:
1. Nonblocking put with signal -> PE 1
2. Wait on socket
PE 1:
1. shmem_wait_until(signal)
2. Send on socket