[Cplex] Cplex: suggested topics for discussion on the next teleconf.
jyasskin at google.com
Wed Jun 19 19:43:04 CEST 2013
On Wed, Jun 19, 2013 at 7:57 AM, Herb Sutter <hsutter at microsoft.com> wrote:
> *[adding 4 folks to the To: line who are working on parallel
> “executors”/schedulers in WG21/SG1, but I’m not sure if they’re on this
> list – they may have relevant comments about the possibility of
> standardizing a cross-language scheduling layer at the C level]*
(0: your email's quoting is so confusing.)
> As Hans wrote:****
> I fully agree with the need for a common parallel runtime across
> languages. One could go even further and ask for a common runtime across
> applications, allowing applications to adapt their degree of parallelism to
> the current system load.****
> Yes. IMO the three problems we’re solving in the mainstream industry, in
> necessary order, are: (A) Make it possible to even express parallelism
> reliably. We’ve all been working on enabling that, and we’re partway there.
> Only once (A) is in place do you get to the second-order problems, which
> arise only after people can and do express parallelism: (B1) Make it
> possible for multiple libraries in the same application to use parallelism
> internally without conflicting/oversubscribing/etc. = common intra-app
> scheduler. (B2) Ditto across multiple applications, driving the scheduling
> into the OS (or equivalent inter-app/intra-machine scheduler).****
> ** **
> It would be immensely valuable to standardize (B).****
Establishing a common scheduling runtime is quite hard, since you have to
cover both CPU-bound tasks that should be limited to 1-per-core, and
IO-bound tasks that need many more scheduled at once. What existing
examples of this do we have to learn from? Google's internal attempt has
not been very successful, IMO. Are people happy with Microsoft's system of
TaskCreationOptions passed to the global TaskScheduler? Are people happy
with Grand Central Dispatch's global queue options? By "happy with", I
mean, do they use these to control all concurrency in their systems, or do
many of them create other threads manually?
> Yes. I would love to see us undertake to first do (2) and enable
> different forms of (1) as library and language extensions, then see if we
> can standardize (1). As someone noted, there is work on (2) being done in
> WG21/SG1 right now with Google’s (and collaborators’) “executors” proposal.
> Should I see if those folks can join this group if they aren’t on it
> already? (CC’ing three of the people on that effort.)****
Google's "executors" get a lot of mileage by assuming that users with
different constraints can instantiate different executors. That assumption
conflicts with the idea that we'll have one scheduling library to
coordinate across multiple processes. If we get a shared scheduling
library, we'd likely wrap it in a set of executors, but it shouldn't itself
be an executor: it needs too many options.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Cplex