[Cplex] Keywords, compliance, and a parallel UNCOL.

Matthew Markland markland at cray.com
Fri Jun 28 23:33:24 CEST 2013

I'm just going to plunge in here; my experience in the standardization process is limited so my comments may be naïve. There are a number of issues here I wanted to get out for discussion.

I realize that the group is focused on C, but if C++ buy-in is wanted, from discussions I've seen, I'm pretty sure that keywords are not going work out. Would there be any interest in moving towards something similar to the C++ attribute syntax? For example:

[[spawn]] for(int i = 0; i < 32; i++) {...

I suppose an implementation could even support multiple versions of spawn:


My compliance question goes along with the syntax. Assuming these features go into the standard, should they be marked optional for compliance? Is there any feeling that vendors would choose not to adopt a standard if it requires these constructs? If they aren't required, I'm thinking keywords again might not be the best implementation. An implementation could be free to ignore attributes they don't support.

Finally, the UNCOL comment:  I don't disagree with the idea that a common scheduling substrate/runtime is needed, but I'm worried about falling into the trap of trying to create the impossible. Given the different requirements we've already seen voiced between "regular" and "HPC" users desires for control, I'm concerned that there would be the need for too many knobs to try to support all these different visions of parallelism. So, is the focus here just on a common substrate that works with the Cilk and OpenMP models, or is it define a substrate upon which someone could build their own vision of parallelism which would then compose with C, OpenMP, Cilk, etc?

As a follow on to the above, is the focus here going to be simply shared memory parallelism or will spawn be allowed to off-load work to an accelerator? Data movement becomes critical if that is allowed, and would probably add to the complexity of this base runtime.


Matthew Markland
Cray, Inc.
Compiler Front-End and Libraries
C/C++ Front-End
markland at cray.com 651-605-9186

More information about the Cplex mailing list