are strong, release, and acquire mutually disjoint?

OpenMP 5.0 will be the next version of the OpenMP specification, which we expect will be officially released in 2018. This technical report is the latest draft of the 5.0 specs for public discussion.

are strong, release, and acquire mutually disjoint?

Postby sfsiegel » Mon Sep 03, 2018 7:27 am

Sec. 1.4.4 introduces strong, release, and acquire flushes. Are these
mutually disjoint categories? If not, it would be very helpful to
state so explicitly. E.g., "The three categories of flushes are not
mutually disjoint. A flush may be a strong flush and a release flush;
it may be a strong flush and an acquire flush; it may be a release
flush and an acquire flush; or it may be all three."

Related to the comment above, on Sec. 2.20.7, p233:

"A strong flush on the location designated by x is performed on entry
to and exit from the atomic operation, ensuring that the set of all
atomic operations in the program applied to the same location has a
total completion order. If the write, update, or capture clause is
specified and the release, acq_rel, or seq_cst clause is specified,
the flush on entry to the atomic operation is a release flush. If the
read or capture clause is specified and the acquire, acq_rel, or
seq_cst clause is specified, the flush on exit from the atomic
operation is an acquire flush."

At first I thought the first two sentences above contradicted each
other, until I realized it might be possible for a flush to be both
strong and release. If that's the correct interpretation, it might
help the reader to say something like

"If the write, update, or capture clause is specified and the release,
acq_rel, or seq_cst clause is specified, then the strong flush on
entry to the atomic operation is also a release flush."
sfsiegel
 
Posts: 9
Joined: Mon Mar 24, 2014 4:47 pm

Return to TR7 - OpenMP 5.0 Draft Discussion

Who is online

Users browsing this forum: No registered users and 1 guest