当前位置: 首页 > news >正文

aws parallelcluster 初步了解HPC和pcluster集群的创建和使用

参考资料

  • Running CFD on AWS ParallelCluster at scale 400

  • Tutorial on how to run CFD on AWS ParallelCluster 400

  • Running CFD on AWS ParallelCluster at scale 400

  • Running WRF on AWS ParallelCluster 300

  • Setup AWS ParallelCluster 3.0 with AWS Cloud9 200

  • HPC For Public Sector Customers 200

  • Slurm REST API, Accounting and Federation on AWS ParallelCluster 400

  • Running Fire Dynamics CFD Simulation on AWS ParallelCluster at scale 200

AWS ParallelCluster 是 AWS 支持的开源集群管理工具。它允许客户轻松入门,并在几分钟内更新和扩展 AWS Cloud 中的 HPC 集群环境。支持各种作业调度程序,如 AWS 批处理、 SGE、Torque和 Slurm(Amazon ParallelCluster 3. x 不支持 SGE 和 Torque 调度器),以方便作业提交

集群工具和创建

安装pcluster工具,需要依赖cdk生成cloudformation模板,因此需要预装node环境

virtualenv pvenv
source pvenv/bin/active
pip install --upgrade "aws-parallelcluster"
pcluster version
# pip install aws-parallelcluster --upgrade --user

生成集群配置

pcluster configure --config cluster-config.yaml

配置文件示例

Region: cn-north-1
Image:
  Os: ubuntu1804
HeadNode:
  InstanceType: m5.large
  Networking:
    SubnetId: subnet-027025e9d9760acdd
Scheduling:
  Scheduler: slurm
  SlurmQueues:
  - Name: queue1
    ComputeResources:
    - Name: c5large
      InstanceType: c5.large
      MinCount: 0
      MaxCount: 10
    Networking:
      SubnetIds:
      - subnet-077cf5772b9302a37

创建集群

默认情况下创建的 ParallelCluster 不启用 VPC 流日志

pcluster create-cluster --cluster-name mycluster --cluster-configuration cluster-config.yaml

删除集群

pcluster delete-cluster --cluster-name mycluster

连接集群

pcluster ssh --cluster-name mycluster -i /home/ec2-user/.ssh/cluster-key.pem

获取日志

pcluster export-cluster-logs --cluster-name mycluster --region cn-north-1 \
  --bucket bucketname --bucket-prefix logs --output-file /tmp/archive.tar.gz

集群的网络配置

pcluster对集群的网络要求比较严格

  • vpc必须开启DNS ResolutionDNS Hostnames

可能的网络配置如下

(1)单个公有子网

  • 子网启用自动分配公有ip
  • 如果实例为多网卡,则需要开启EIP,因为公有 IP 只能分配给使用单个网络接口启动的实例

(2)头节点在公有子网,计算节点在nat私有子网

  • nat需要正确配置,代理计算节点流量
  • 头节点配置同(1)

(3)使用dx连接http proxy

(4)私有子网

  • 必须配置以下终端节点

    ServiceService nameType
    Amazon CloudWatchcom.amazonaws.region-id.logsInterface
    Amazon CloudFormationccom.amazonaws.region-id.cloudformationInterface
    Amazon EC2com.amazonaws.region-id.ec2Interface
    Amazon S3com.amazonaws.region-id.s3Gateway
    Amazon DynamoDBcom.amazonaws.region-id.dynamodbGateway
    Amazon Secrets Manager(AD功能需要)com.amazonaws.region-id.secretsmanagerInterface
  • 禁用route53(默认pcluster会创建,但是r53不支持vpc endpoint)并启动ec2的dns解析(使用ec2的dns主机名称)

    Scheduling:
      ...
      SlurmSettings:
        Dns:
          DisableManagedDns: true
          UseEc2Hostnames: true
    
  • 只支持slurm调度器

最佳实践

(1)实例类型

  • 头节点协调集群的扩展逻辑,并负责将新节点连接到调度器,如果性能不足会导致集群崩溃

  • 头节点通过nfs将任务与计算节点共享,需要确保足够和网络和存储带宽

    以下目录在节点间共享

    • /home,默认的用户 home 文件夹
    • /opt/intel
    • /opt/slurm,Slurm Workload Manager 和相关文件

(2)网络性能

  • 使用置放群组,使用cluster策略实现最低的延迟和最高的每秒数据包网络性能
  • 选择支持增强联网,使用EFA类型实例
  • 保证实例具备足够的网络带宽

(3)共享存储

  • 使用fsx或efs等外部存储,避免数据损失,便于集群迁移
  • 使用 custom bootstrap actions 来定制节点,而非使用自定义ami

(4)集群监控

  • 使用sar收集日志
  • 使用node exporter收集指标

slurm相关资料

  • Slurm作业调度系统使用指南-USTC超算中心

  • Slurm资源管理与作业调度系统安装配置

  • 北京大学国际数学中心微型工作站slurm使用参考

  • slurm配置

(1)JobRequeue

控制要重新排队的批作业的默认值。manager可能重新启动作业,例如,在计划停机之后、从节点故障恢复或者在被更高优先级的作业抢占时

This option controls the default ability for batch jobs to be requeued. Jobs may be requeued explicitly by a system administrator, after node failure, or upon preemption by a higher priority job

作业抢占的报错

slurmstepd: error: *** JOB 63830645 ON p08r06n17 CANCELLED AT 2020-08-18T21:40:52 DUE TO PREEMPTION ***

对于pcluster来说,任务失败会自动重新排队

(2)backfill

https://hpc.nmsu.edu/discovery/slurm/backfill-and-checkpoints/

当作业在回填分区中暂停时,当具有较高优先级的作业完成执行时,它将立即重新启动并从头开始计算

IBM的LSF对backfill解释的还比较清楚,但是不知道和slurm有什么区别

https://www.ibm.com/docs/en/spectrum-lsf/10.1.0?topic=jobs-backfill-scheduling

Introducing new backfill-based scheduler for SLURM resource manager

相关文章:

  • wordpress开通支付宝微信/西安网站制作
  • 广州市疫情防控最新通知/seo少女
  • 一般做网站是在什么网站找素材/免费网站推广2023
  • wordpress 自带的日历/手机怎么制作网站
  • 北京市建设工程信息网招标/长沙正规seo优化价格
  • 武汉网站建设 汉街/房地产销售技巧和话术
  • vue-element-admin新版v4.0的登录改造步骤及零星问题解决
  • 2022.12 青少年机器人技术等级考试理论综合试卷(三级)
  • 【开发自己的CAD】第四课:了解所有的实体类添加到图纸
  • 前端开发:Webpack的使用总结
  • 【互联网大厂机试真题 - 华为】日志限流
  • 【魅力开源】第5集:通过Odoo实现将EXCEL表费用明细,快速导入到ERP总账系统生成凭证
  • steam搬砖项目,信息差赚钱,内含全部讲解
  • Nacos的学习
  • Java面试题每日10问(12)
  • 【论文精读】Scaling distributed machine learning with the parameter server
  • Java SPI的介绍、JDBC中SPI的应用、自己实现一个SPI应用
  • [NSSRound#6 Team]Web学习