

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 多个队列的配置
<a name="configuration-of-multiple-queues-v3"></a>

在 AWS ParallelCluster 版本 3 中，您可以通过将设置为`slurm`并在配置文件[`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)中为指定多个队列来配置多个队列。[`Scheduler`](Scheduling-v3.md#yaml-Scheduling-Scheduler)在此模式下，不同的实例类型共存于配置文件的 [`ComputeResources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources) 部分中指定的计算节点中。具有不同实例类型的 [`ComputeResources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources) 会根据 [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues) 的需要纵向扩展或缩减。

当工作负载共享相同的底层基础架构和资源（例如共享存储、网络或登录节点）时，单个集群中的多个*队列*通常优先于多个集群。如果工作负载具有相似的计算、存储和网络需求，则在单个集群中使用多个队列会更高效，因为它允许资源共享并避免不必要的重复。这种方法简化了管理，减少了开销，同时还能实现高效的作业调度和资源分配。另一方面，当工作负载之间存在很强的安全、数据或操作隔离要求时，应使用多个*集群*。例如，如果您需要使用不同的计划、更新周期或访问策略独立管理和操作工作负载，则多个集群更合适。


**集群队列和计算资源配额**  

| 资源 | 限额 | 
| --- | --- | 
|  [`Slurm queues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)  |  每个集群 50 个队列  | 
|  [`Compute resources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources)  |  每个队列 50 个计算资源 每个集群 50 个计算资源  | 

**节点数**

队列的 [`ComputeResources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources) 中的每个计算资源都必须具有唯一的 [`Name`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Name)、[`InstanceType`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-InstanceType)、[`MinCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MinCount) 和 [`MaxCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MaxCount)。[`MinCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MinCount) 和 [`MaxCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MaxCount) 具有默认值，用于定义队列的 [`ComputeResources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources) 中的计算资源的实例范围。您也可以为 [`MinCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MinCount) 和 [`MaxCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MaxCount) 指定自己的值。[`ComputeResources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources) 中的每个计算资源均由编号为 1 到 [`MinCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MinCount) 值的静态节点和编号为 [`MinCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MinCount) 值到 [`MaxCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MaxCount) 值的动态节点组成。

**示例配置**

下面是集群配置文件的 [Scheduling](Scheduling-v3.md) 部分的示例。在此配置中，有两个名为 `queue1` 和 `queue2` 的队列，每个队列的 [`ComputeResources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources) 都指定了 [`MaxCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MaxCount)。

```
Scheduling:
  Scheduler: slurm
  SlurmQueues:
  - Name: queue1
    ComputeResources:
    - InstanceType: c5.xlarge
      MaxCount: 5
      Name: c5xlarge
    - InstanceType: c4.xlarge
      MaxCount: 5
      Name: c4xlarge
  - Name: queue2
    ComputeResources:
    - InstanceType: c5.xlarge
      MaxCount: 5
      Name: c5xlarge
```

**主机名**

启动到计算实例集中的实例是动态分配的。将为每个节点生成主机名。默认情况下， AWS ParallelCluster 将使用以下格式的主机名：

 `$HOSTNAME=$QUEUE-$STATDYN-$COMPUTE_RESOURCE-$NODENUM` 
+ `$QUEUE` 是队列的名称。例如，如果 [`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues) 部分中的条目将 [`Name`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Name) 设置为“`queue-name`”，则“`$QUEUE`”为“`queue-name`”。
+  对于静态节点，`$STATDYN` 为 `st`，对于动态节点则为 `dy`。
+  `$COMPUTE_RESOURCE` 是与此节点对应的 [`ComputeResources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources) 计算资源的 [`Name`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Name)。
+  `$NODENUM` 是节点的编号。对于静态节点，`$NODENUM` 介于一 (1) 和 [`MinCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MinCount) 的值之间，对于动态节点，则介于一 (1) 和 [`MaxCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MaxCount)-[`MinCount`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-MinCount) 之间。

根据上面的示例配置文件，`queue1` 和计算资源 `c5xlarge` 的给定节点的主机名为：`queue1-dy-c5xlarge-1`。

主机名和完全限定域名 (FQDN) 都是使用 Amazon Route 53 托管区创建的。FQDN 是 `$HOSTNAME.$CLUSTERNAME.pcluster`，其中 `$CLUSTERNAME` 是集群的名称。

请注意，Slurm 节点名称也将使用相同的格式。

 用户可以选择使用为计算节点提供支持的实例的默认 Amazon EC2 主机名，而不是使用的默认主机名格式 AWS ParallelCluster。这可通过将 [`UseEc2Hostnames`](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-Dns-UseEc2Hostnames) 参数设置为 true 来完成。但是，Slurm节点名称将继续使用默认 AWS ParallelCluster 格式。