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

做调度作业提交过程简单介绍一下

✅作业提交与执行流程

前文提到在 Linux 的 HPC 或超算环境中,可以只在共享存储上安装一次应用程序,然后所有计算节点通过挂载共享目录来访问和执行这些程序,那么作业提交及执行过程是怎么样的流程呢?

结构说明:

  • 第一行是用户提交作业的入口;
  • 第二行是调度系统客户端,用户通过它与调度系统交互;
  • 第三行是调度系统管理端,负责调度和资源分配;
  • 第四行是两个计算节点,由调度系统分配作业;
  • 最后一行是共享存储系统,位于计算节点之间,统一提供程序和存储结果。

流程图的前两个,提交作业的机器和调度系统客户端的机器可以是同一台,也可以是不同的机器。

  • 如果是同一台机器:最简单,用户直接在这台机器上运行 sbatch 等命令;
  • 如果是不同的机器:提交作业的机器必须能通过某种方式调用调度系统客户端(比如通过 SSH、API、远程命令等);

如果是两台机器,且提交作业的机器是 Windows 系统:

  • 不能直接运行 Slurm 客户端命令,因为 Slurm 客户端工具(如 sbatchsqueue)是为 Linux/Unix 系统设计的;

  • 解决方案包括:

    方案 A:通过 SSH 登录到 Linux 客户端机器

    方案 B:通过 Web 界面(如 Slurm-web)或 REST API 提交

    • Windows 用户使用 SSH 工具(如 PuTTY、MobaXterm、WSL)登录到一台安装了 Slurm 客户端的 Linux 机器;
    • 在那台 Linux 机器上运行 sbatch 提交作业;
    • Windows 用户通过浏览器访问 Slurm-web;
    • Slurm-web 后端部署在 Linux 上,负责调用 Slurm 客户端或 REST API;
    • 用户无需直接接触 Linux 命令行;

Slurm-web登录页面如下所示:

提交方式提交端系统要求是否需要 Slurm 客户端说明
本地命令行提交Linux✅ 是用户直接运行 sbatch
远程 SSH 提交任意(含 Windows)✅ 是登录到 Linux 客户端机器
Web 页面提交(如 Slurm-web)任意(含 Windows)❌ 否(用户端)
✅ 是(服务端)
服务端调用 Slurm 客户端或 API
REST API 提交任意❌ 否直接通过 HTTP 请求与调度系统交互

✅ Slurm Web 界面(如 slurm-web)的作业提交机制

1. Slurm-web 是一个 Web 服务端程序

它通常部署在一台服务器上,提供一个 Web 页面供用户提交作业、查看队列、监控状态等。

2. 它如何提交作业?
  • 方式一:调用 Slurm 命令行客户端(如 sbatchsqueue

    • Slurm-web 的后端服务通常会在服务器上执行这些命令行工具。
    • 本质上,它是通过系统调用或 Python 的 subprocess 模块等方式,间接使用 Slurm 的客户端工具。
    • 所以,这种方式 依赖于调度系统客户端的存在

这种方式的前提是:

  • Slurm 客户端工具必须已经安装在运行 Slurm-web 的服务器上;
  • 该服务器必须有权限访问调度系统管理端(比如通过网络或本地 socket);
  • 用户身份可能通过 Web 登录系统映射到实际提交作业的 Linux 用户,或者使用统一的身份认证机制。
  • 方式二:调用 Slurm 的 API(如 Slurm REST API)

    • Slurm 提供了 REST API(如 Slurmrestd),允许通过 HTTP 请求提交作业、查询状态等。
    • 如果 Slurm-web 使用的是 REST API,那么它可以不依赖本地命令行客户端,而是通过网络直接与调度系统管理端通信。
    • 在这种情况下,REST API 本身就相当于一个“客户端接口”,只是以 HTTP 的形式存在。
提交方式是否依赖调度系统客户端说明
调用 sbatch 等命令✅ 是需要本地安装 Slurm 客户端工具
调用 Slurm REST API❌ 否(但需要 API 服务)通过 HTTP 与 Slurm 管理端通信

http://www.lryc.cn/news/617704.html

相关文章:

  • Spring Cloud Gateway 路由与过滤器实战:转发请求并添加自定义请求头(最新版本)
  • 如何安装 Git (windows/mac/linux)
  • 【数据可视化-85】海底捞门店数据分析与可视化:Python + pyecharts打造炫酷暗黑主题大屏
  • Java数据库编程之【JDBC数据库例程】【ResultSet作为表格的数据源】【七】
  • NY185NY190美光固态闪存NY193NY195
  • cf--思维训练
  • 【C++语法】输出的设置 iomanip 与 std::ios 中的流操纵符
  • Dashboard.vue 组件分析
  • 基于 Axios 的 HTTP 请求封装文件解析
  • 【Redis的安装与配置】
  • ESP32将DHT11温湿度传感器采集的数据上传到XAMPP的MySQL数据库
  • loading效果实现原理
  • 【JAVA】使用系统音频设置播放音频
  • 在线代码比对工具
  • Selenium元素定位不到原因以及怎么办?
  • 机器学习 TF-IDF提取关键词,从原理到实践的文本特征提取利器​
  • Effective C++ 条款36: 绝不重新定义继承而来的非虚函数
  • Excel 连接阿里云 RDS MySQL
  • 开闭原则代码示例
  • Pytest项目_day11(fixture、conftest)
  • js数组reduce高阶应用
  • B 树与 B + 树解析与实现
  • 可商用的 AI 图片生成工具推荐(2025 最新整理)
  • Kubernetes部署apisix的理论与最佳实践(一)
  • 专题:2025人形机器人与服务机器人技术及市场报告|附130+份报告PDF汇总下载
  • docker安装Engine stopped
  • 内置redis使用方法
  • Python 高阶函数:filter、map、reduce 详解
  • 【软考架构】主流数据持久化技术框架
  • Spring Boot Excel数据导入数据库实现详解