Russel Winder
Russel Winder

Reputation: 3804

Chapel, locales, and multicore multiprocessor machines

If a Chapel program does not use locales (*) so there is just one locale, will a program use all the processors/cores on the machine of execution (if so presumably by using kernel threads).

(*) Locales as used in Chapel is a somewhat unfortunate choice given the use of the term locale to mean language and variant in most operating systems.

Upvotes: 2

Views: 230

Answers (1)

mppf
mppf

Reputation: 1845

Yes, by default a Chapel program will try to use all cores available on the machines of execution. That's true both for single locale and multi-locale compilation.

See Executing Chapel Programs which describes two settings that can control this behavior: dataParTasksPerLocale and CHPL_RT_NUM_THREADS_PER_LOCALE.

Regarding the choice of the word "locale", it is related to the word "locality" which is commonly used in the context of distributed parallel programming (try searching for "optimizing locality"). In some ways a Chapel locale is its own concept and needs its own term (something like "node" would not be suitable).

Upvotes: 2

Related Questions