Chapel、语言环境和多核多处理器机器

Chapel, locales, and multicore multiprocessor machines

如果 Chapel 程序不使用语言环境 (*),因此只有一种语言环境,那么程序是否会在执行机器上使用所有 processors/cores(如果是,大概是通过使用内核线程)。

(*) Chapel 中使用的语言环境是一个有点不幸的选择,因为在大多数操作系统中使用术语语言环境来表示语言和变体。

是的,默认情况下,Chapel 程序将尝试使用执行机器上可用的所有内核。对于单语言环境和多语言环境编译都是如此。

请参阅 Executing Chapel Programs,其中描述了可以控制此行为的两个设置:dataParTasksPerLocale 和 CHPL_RT_NUM_THREADS_PER_LOCALE。

关于"locale"这个词的选择,它与分布式并行编程上下文中常用的"locality"这个词有关(尝试搜索"optimizing locality")。在某些方面,Chapel locale 是它自己的概念并且需要它自己的术语(像 "node" 这样的东西是不合适的)。