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