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

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

在上运行你的第一份作业 Amazon ParallelCluster

本教程将引导你完成在上面运行第一个 Hello World 作业 Amazon ParallelCluster。

先决条件

验证安装

首先,我们验证其安装和配置 Amazon ParallelCluster 是否正确。

$ pcluster version

这将返回的正在运行的版本 Amazon ParallelCluster。如果输出为您提供有关配置的消息,您将需要运行以下命令来配置 Amazon ParallelCluster:

$ pcluster configure

创建您的第一个集群

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

我们将您的集群称作 hello-world。

$ pcluster create hello-world

创建集群时,您会看到类似以下内容的输出:

Starting: hello-world Status: parallelcluster-hello-world - CREATE_COMPLETE MasterPublicIP = 54.148.x.x ClusterUser: ec2-user MasterPrivateIP = 192.168.x.x GangliaPrivateURL = http://192.168.x.x/ganglia/ GangliaPublicURL = http://54.148.x.x/ganglia/

消息 CREATE_COMPLETE 显示该集群已成功创建。输出还为我们提供头节点的公有 IP 地址和私有 IP 地址。我们需要此 IP 以进行登录。

登录到头节点

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

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

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

$ qhost HOSTNAME ARCH NCPU NSOC NCOR NTHR LOAD MEMTOT MEMUSE SWAPTO SWAPUS ---------------------------------------------------------------------------------------------- global - - - - - - - - - - ip-192-168-1-125 lx-amd64 2 1 2 2 0.15 3.7G 130.8M 1024.0M 0.0 ip-192-168-1-126 lx-amd64 2 1 2 2 0.15 3.7G 130.8M 1024.0M 0.0

输出显示我们的集群中有两个计算节点,两者都有 2 个线程可用。

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

注意

此示例仅适用于 Amazon ParallelCluster 2.11.4 及以下的版本。从 2.11.5 版开始, Amazon ParallelCluster 不支持使用 SGE 或 Torque 调度器。

接下来,我们将创建一个作业,该作业睡眠一小段时间,然后输出它自己的主机名。

使用以下内容创建名为 hellojob.sh 的文件。

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

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

$ qsub hellojob.sh Your job 1 ("hellojob.sh") has been submitted

现在,您可以查看您的队列并检查该作业的状态。

$ qstat job-ID prior name user state submit/start at queue slots ja-task-ID ----------------------------------------------------------------------------------------------------------------- 1 0.55500 hellojob.s ec2-user r 03/24/2015 22:23:48 all.q@ip-192-168-1-125.us-west 1

输出显示此作业目前处于运行状态。请等候 30 秒,以便作业完成,然后再次运行 qstat

$ qstat $

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

$ ls -l total 8 -rw-rw-r-- 1 ec2-user ec2-user 48 Mar 24 22:34 hellojob.sh -rw-r--r-- 1 ec2-user ec2-user 0 Mar 24 22:34 hellojob.sh.e1 -rw-r--r-- 1 ec2-user ec2-user 34 Mar 24 22:34 hellojob.sh.o1

在输出中,我们会看到作业脚本中的“e1”和“o1”文件。由于 e1 文件为空,因此没有内容输出到 stderr。如果我们查看 o1 文件,我们可以看到作业的输出。

$ cat hellojob.sh.o1 Hello World from ip-192-168-1-125

输出还显示我们的作业已在实例 ip-192-168-1-125 上成功运行。

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