在基于 Unix 的批处理系统中工作

Simcenter STAR-CCM+ 可帮助与多个批处理系统进行交互。-batchsystem <system> 命令行参数自动检测批处理系统分配的资源,并将其转发到 Simcenter STAR-CCM+,即设备文件/主机、进程数和每个节点进程数。

为了对 Simcenter STAR-CCM+ 执行进行精细控制,可以使用自定义作业脚本。当使用更复杂的或自定义并行配置或必须在 Simcenter STAR-CCM+ 之前或之后运行其他程序时,此方法非常有用。由于有多种批处理系统和针对这些系统的可行配置,因此要构建的特定提交脚本的详细信息超出了本节的范围。请参考群集和批处理系统的文档,如果有必要,请咨询系统管理员,以确定要转发至 Simcenter STAR-CCM+ 命令行的具体属性。

一般准则

下面给出的注释是简单实施每个群集计划系统的一般准则。另请参考群集和批处理系统的文档。

资源分配

建议始终分配完整节点并使用所有已分配的资源。某些群集允许多个作业共享一个节点,但在运行 Simcenter STAR-CCM+ 时不建议这样做。进程分布不均匀会引起不平衡,进而导致群集资源的使用效率低下,并可能导致作业运行不必要的过长时间因子。在提交作业时分配适量的资源并使用 Simcenter STAR-CCM+-batchsystem <system> 命令行参数来处理分配。不需要手动控制进程数或进程分布(主机列表/设备文件)。

订阅不足

在某些情况下,在每个节点上运行的进程比可用进程少,这样十分有利。当模拟在每次进程中需要大量内存或使用 GPGPU 支持运行模拟时(请参见 GPGPU 计算),可能出现这种情况。在这种情况下,将作业提交到批处理系统时,可以减少每个节点的任务/进程数。

使用命令行和提交脚本选项

作业通常可以通过提交脚本中定义的参数提交,也可以直接在命令行上提交。在命令行中重新定义时,可以覆盖提交脚本中给定的提交设置。提交脚本的另一个首选项是群集提交中的可重复性。

有关提交脚本的注释

提交脚本通常分为两部分:

  1. 作业的提交指令。这些行通常由一个井号 ('#') 表示,后跟作业提交前缀(例如 SBATCH、BSUB、PDS、$)。请求提交时,将解析此信息。但是,在此传递期间未定义与作业相关的环境变量。
  2. 当作业变为活动状态时,文件将作为启动群集上应用程序的脚本来执行。此时,将定义与作业相关的环境变量。提交指令被视为注释,不使用。

提交指令先于脚本中的任何可执行命令。在脚本中达到第一个非注释非空格行后,批处理文件提交停止处理进一步提交指令。这具有以下含义:

  1. 所有提交指令都应收集到没有空格的单个块中。
  2. 在提交指令和执行脚本之间必须有一个空行。这对于任何前面带有井号标记的注释特别重要,否则这些注释可能被解释为提交指令。确保不会发生这种情况的一种方法是在每个注释掉的行之前加上双井号 ('##')。

Walltime

估算模拟的运行时可能很棘手,尤其是在运行新模型或使用不同的求解器时。确保为模拟分配足够的完成时间,但应记住,具有较长请求运行时的作业可能需要更长的时间才能计划。