热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Slurm作业管理系统常用命令和教程

Slurm(SimpleLinuxUtilityforResourceManagement)是开源的、具有容错性和高度可扩展大型和小型Linux集群资源




Slurm ( Simple Linux Utility for Resource Management )是开源的、具有容错性和高度可扩展大型和小型 Linux集群资源管理和作业调度系统。超级计算系统可利用 Slurm 进行资源和作业管理,以避免相互干扰,提高运行效率。所有需运行的作业无论是用于程序调试还是业务计算均必须通过交互式并行 srun、批处理式 sbatch 或分配式 salloc 等命令提交,提交后可以利用相关命令查询作业状态等。

同时北鲲云超算平台也是使用的Slurm作业管理系统,熟悉slurm作业管理系统的同学可以快速上手北鲲云进行计算,不熟悉的也没关系,一是可以学,我们有完整的教程以及技术支持服务,另外就是平台还提供模板提交方式,无需it基础也可以快速进行计算。直接按照模板提示提交作业即可。多种软件覆盖多个行业,欢迎来试一试。

一. 常用命令​



sinfo       #查看分区状态
squeue      #查看队列中的作业
scontrol    #查看作业详细信息
scancel     #取消已经提交的作业
sbatch      #批处理式提交作业
salloc      #分配式运行作业


  1. 查看分区状态​


sinfo

CPU分区命名规则为c-核心数-每核心内存大小,如c-8-4:表示单节点规格为8核,每核心有4G内存,即节点规格为8核32G。

GPU分区命名规则为g-卡号-每节点卡数,如g-v100-2:表示有两张显卡型号为tesla v100的gpu节点。
在这里插入图片描述


  1. 查看作业队列​


squeue



JOBID:作业号

ST:状态 (R:运行中;CF:配置中;PD:排队中)。
在这里插入图片描述


  1. 查看所有作业详细信息​


scontrol show jobs

在这里插入图片描述


  1. 取消作业号为20的作业​


scancel 20

二. 提交作业的方式​


  1. 使用sbatch批处理模式提交作业​

sbatch命令可以提交任务至一个或多个计算节点,实现并行计算。

sbatch命令的一些常用选项:

在这里插入图片描述

参考运行程序:demo.sh



#!/bin/bashsleep 6000

提交示例:

使用2个4核心节点启动8个并行任务。



sbatch -N 2 -p c-4-1 -n 8 -c 1 demo.sh

1个4核心节点启动4个并行任务。



sbatch -N 1 -p c-4-1 -n 4 -c 1 demo.sh

1个4核心节点启动4个并行任务。



sbatch -p c-4-1 -n 4 demo.sh

1个4核心节点启动1个并行任务, 该任务使用4个cpu核心。



sbatch -p c-4-1 -n 1 -c 4 demo.sh

2个4核心节点启动2个并行任务, 每个任务使用4个cpu核心。



sbatch -p c-4-1 -n 2 -c 4 demo.sh


  1. 使用salloc分配模式提交作业​

salloc命令可以用来分配节点,用户可以在获取分配的计算节点后,ssh进入直接运行相关计算程序,主要用来调式程序执行。

使用步骤(案例):

Step1. salloc申请计算节点;



salloc -N 1 -p c-8-2 &

Step2. ssh登录到分配的计算节点;



ssh c-8-2-worker0001

Step3. 调试或运行程序;



./demo.sh

Step4. 结束程序运行后释放分配的节点;



scancel 17

在这里插入图片描述







推荐阅读
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 如何利用Java 5 Executor框架高效构建和管理线程池
    Java 5 引入了 Executor 框架,为开发人员提供了一种高效管理和构建线程池的方法。该框架通过将任务提交与任务执行分离,简化了多线程编程的复杂性。利用 Executor 框架,开发人员可以更灵活地控制线程的创建、分配和管理,从而提高服务器端应用的性能和响应能力。此外,该框架还提供了多种线程池实现,如固定线程池、缓存线程池和单线程池,以适应不同的应用场景和需求。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 手指触控|Android电容屏幕驱动调试指南
    手指触控|Android电容屏幕驱动调试指南 ... [详细]
  • 1. 设置用户密码:使用 `slappasswd` 工具生成加密密码,确保账户安全。具体步骤如下:输入命令 `slappasswd -s NewPassword`,系统将提示重新输入新密码,并生成加密后的哈希值 {SSHA}xxxxxxxxxxxxxxxxx。2. 编写配置文件:编辑 `vildapus` 配置文件,添加必要的用户账户信息,以确保新用户能够顺利登录系统。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 在项目开发过程中,掌握一些关键的Linux命令至关重要。例如,使用 `Ctrl+C` 可以立即终止当前正在执行的命令;通过 `ps -ef | grep ias` 可以查看特定服务的进程信息,包括进程ID(PID)和JVM参数(如内存分配和远程连接端口);而 `netstat -apn | more` 则用于显示网络连接状态,帮助开发者监控和调试网络服务。这些命令不仅提高了开发效率,还能有效解决运行时的各种问题。 ... [详细]
  • 在Linux系统中,为了提高安全性,可以通过设置命令执行超时和用户超时注销来防止因用户长时间未操作而带来的安全隐患。具体而言,可以通过编辑 `/etc/profile` 文件,添加或修改相关参数,确保用户在指定时间内无操作后自动注销。此外,还可以利用 `timeout` 命令来限制特定命令的执行时间,进一步增强系统的稳定性和安全性。 ... [详细]
  • Java集合框架特性详解与开发实践笔记
    Java集合框架特性详解与开发实践笔记 ... [详细]
  • 深入解析Netty:基础理论与IO模型概述
    深入解析Netty:基础理论与IO模型概述 ... [详细]
  • Linux 信号处理全面解析(第六篇)
    本文深入探讨了信号及其来源。信号本质上是对中断机制的软件层面模拟,从原理上看,进程接收到信号与处理器接收到中断请求类似。信号具有异步特性,能够在进程执行过程中随时触发,从而中断当前操作并执行相应的处理程序。文章详细分析了信号的生成、传递和处理机制,并讨论了常见的信号类型及其应用场景。此外,还介绍了如何在 Linux 系统中使用信号进行进程间通信和错误处理,为开发者提供了实用的技术指导。 ... [详细]
  • Java服务问题快速定位与解决策略全面指南 ... [详细]
  • 在Linux系统中,目录结构遵循文件系统层次标准(FHS),确保了系统的组织性和可维护性。其中,`/bin`目录是FHS要求必须存在的目录之一,主要存放了在单用户维护模式下仍可执行的基本命令和工具。这些命令不仅对root用户可用,普通用户也能使用,以确保系统在最小化运行状态下仍能进行基本的操作和管理。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
author-avatar
超级无敌智慧星在路上
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有