如果Chapel程序不使用locales(*),因此只有一个语言环境,程序将使用执行机器上的所有处理器/核心(如果是这样,可能是通过使用内核线程)。
(*)Chapel中使用的语言环境是一个有点不幸的选择,因为在大多数操作系统中使用术语locale来表示语言和变体。
答案 0 :(得分:2)
是的,默认情况下,Chapel程序将尝试使用执行机器上的所有可用内核。对于单一语言环境和多语言环境编译都是如此。
请参阅Executing Chapel Programs,其中介绍了两种可以控制此行为的设置:dataParTasksPerLocale和CHPL_RT_NUM_THREADS_PER_LOCALE。
关于单词“locale”的选择,它与单词“locality”有关,它通常用于分布式并行编程的上下文中(尝试搜索“optimize locality”)。在某些方面,Chapel语言环境是它自己的概念,需要它自己的术语(类似“节点”的东西不适合)。