在 Amazon ParallelCluster 上运行首个作业 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

在 Amazon ParallelCluster 上运行首个作业

本教程将指导您完成在上面运行您的第一个 Hello World 作业Amazon ParallelCluster

先决条件

验证安装

首先,我们验证一下Amazon ParallelCluster已正确安装和配置,包括 Node.js 依赖项。

$ node --version v16.8.0 $ pcluster version { "version": "3.2.1" }

这将返回正在运行的 Amazon ParallelCluster 版本。

创建您的第一个集群

现在应该创建您的第一个集群了。由于本教程的工作负载不是性能密集型的,因此,我们可以使用 t2.micro 的默认实例大小。(对于生产工作负载,您需要选择最适合您的需求的实例大小。) 让我们调用你的集群hello-world.

$ pcluster create-cluster \ --cluster-name hello-world \ --cluster-configuration hello-world.yaml
注意

这些区域有:Amazon Web Services 区域大多数情况下必须指定要使用pcluster命令。如果未在AWS_DEFAULT_REGION环境变量或region[default]部分~/.aws/config文件,然后是--region参数必须在pcluster命令行。

如果输出给你一条关于配置的消息,你需要运行以下命令来配置Amazon ParallelCluster:

$ pcluster configure --config hello-world.yaml

如果pcluster create-cluster命令成功后,便可看到类似以下内容的输出:

{ "cluster": { "clusterName": "hello-world", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:xxx:stack/xxx", "region": "...", "version": "...", "clusterStatus": "CREATE_IN_PROGRESS" } }

您可以使用以下方式监控集群的创建:

$ pcluster describe-cluster --cluster-name hello-world

这些区域有:clusterStatus报告”CREATE_IN_PROGRESS“在创建集群时。这些区域有:clusterStatus转换为”CREATE_COMPLETE“成功创建集群时。输出还为我们提供了publicIpAddressprivateIpAddress我们的头节点。

登录你的头节点

使用你的 OpenSSH pem 文件登录你的头节点。

$ pcluster ssh --cluster-name hello-world -i /path/to/keyfile.pem

登录后,请运行命令 sinfo 以验证您的计算节点是否已设置和配置。

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 10 idle~ queue1-dy-queue1t2micro-[1-10]

输出显示我们的集群中有一个队列,最多有十个节点。

使用 Slurm 运行你的第一份作业

接下来,我们将创建一个作业,该作业睡眠一小段时间,然后输出它自己的主机名。使用以下内容创建名为 hellojob.sh 的文件。

#!/bin/bash sleep 30 echo "Hello World from $(hostname)"

接下来,使用 sbatch 提交作业,并验证其是否运行。

$ sbatch hellojob.sh Submitted batch job 2

现在,您可以查看您的队列并检查该作业的状态。新的 Amazon EC2 实例的配置在后台开始。您可以使用监控集群实例的状态sinfo命令。

$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 2 queue1 hellojob ec2-user CF 3:30 1 queue1-dy-queue1t2micro-1

输出显示作业已提交至queue1. 请等候 30 秒,以便作业完成,然后再次运行 squeue

$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)

现在,队列中没有作业,我们可以检查当前目录中的输出。

$ ls -l total 8 -rw-rw-r-- 1 ec2-user ec2-user 57 Sep 1 14:25 hellojob.sh -rw-rw-r-- 1 ec2-user ec2-user 43 Sep 1 14:30 slurm-2.out

在输出中,我们看到”out“file。我们可以看到我们工作的结果:

$ cat slurm-2.out Hello World from queue1-dy-queue1t2micro-1

输出还显示我们的作业已在实例 queue1-dy-queue1t2micro-1 上成功运行。

在您刚刚创建的集群中,只有主目录在集群的所有节点之间共享。

要了解有关创建和使用集群的更多信息,请参阅最佳实践.

如果您的应用程序需要共享软件、库或数据,请考虑以下选项: