To: J3 J3/19-140 From: Bill Long Subject: Reply for paper 19-109 Date: 2019-February-11 I Introduction -------------- Paper 19-109 proposes a scheme for synchronizing execution of a code section that is normally executed asynchronously, by employing syntax to affect the concept of full and empty bits for variables. An execution thread that attempts to reference a variable that is "empty" would stall until a different thread defined the variable, changing its state to "full". Similarly for trying to define a variable that is "full". The main use case is to provide the ability to have cross-iteration dependencies in a DO CONCURRENT construct, the iterations of which normally execute asynchronously. II. Discussion -------------- The attempt to circumvent the most basic and useful concept of DO CONCURRENT (independence of iteration execution) seems dubious, and likely to confuse programmers. Schemes to implement full and empty memory bits in hardware have been employed in the past, mainly as a mechanism for hiding memory access latency. These systems have been remarkably unsuccessful. It is very likely that a software-only implementation would have serious performance problems. The amount of changes to the standard and implementations seem to significantly exceed any benefit that might accrue from this feature. III. Recommendation ------------------- Subgroup recommends no action for the proposed feature in 19-109.