✅作业提交与执行流程

前文提到在 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.pswp.cn/diannao/95123.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/95123.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/95123.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Altium designer】解决报错“Access violation at address...“

问题现象如上AD9原理图工程所示报错,当我关闭这个“CMM-WEIER-VA”原理图工程以及其他不相关的原理图工程出现报错:Access violation at address 0832A5EC in module WorkspaceManager.DLL. Read of address 00000061 at 0832A5EC,任务管理器…

小杰python高级(three day)——numpy库

1.numpy数组的操作(1)数组的连接stack该函数可以实现多个数组的堆叠(连接),会创建新的轴,用于沿着新的轴连接一系列数组,所有数组必须具有相同的形状。可以增加数组的维度。假设输入的每个数组都是 n 维数组&#xff0…

视频剪辑的工作流程

准备素材 1.准备音频,视频、图片等素材 2.准备Pr创建的序列、彩条、字母、倒计时片头等功能性素材 创建项目 创建项目是诗篇剪辑的第一步,创建一个指定名称与存放位置的项目文件,用来通义管理整个视频项目创建序列 序列决定剪辑的尺寸、帧速率…

下一个排列 的 思路总结

文章目录思路分析: 倒序遍历:题目要求的是下一个排列,那么肯定数字的跳跃不能太大,所以可以比较好确定的是,遍历的顺序是倒序遍历比较方向:对于每一个数字,需要找到右边最大的比它小的数字&…

Spring Cloud-面试题(49)

摘要: 1、通俗易懂,适合小白 2、仅做面试复习用,部分来源网络,博文免费,知识无价,侵权请联系! 1. 什么是Spring Cloud框架?子项目哪几大类? Spring Cloud是一套分布式系…

资源查看-iostat命令

文章目录 系统中未安装 iostat 命令 1. 监控CPU与磁盘的基础负载 2. 诊断I/O性能瓶颈 3. 实时监控与动态采样 4. 特定设备或分区的精细化监控 5. 性能测试与基准数据生成 6. 结合其他工具进行综合调优 总结 结果输出速查表 第一部分:CPU统计信息 第二部分:设备/磁盘统计信息(…

STM32 HAL库外设编程学习笔记

STM32 HAL库外设编程 1. 概述 本文档是基于STM32 HAL库的外设编程学习笔记,主要包括以下外设的配置和使用方法: GPIO:通用输入输出接口ADC:模数转换器UART:通用异步收发器TIM:定时器I2C:内部…

DHCP服务配置与管理实战指南

DHCP 服务配置与管理笔记 一、DHCP 核心概念 1. DHCP 定义与功能 DHCP (Dynamic Host Configuration Protocol):动态主机配置协议核心功能: 自动分配 IP 地址提供子网掩码、网关、DNS 等网络参数管理 IP 地址租约周期 典型应用:ADSL拨号、企业…

WebSocket 在多线程环境下处理 Session并发

WebSocket 在多线程环境下处理 Session并发时,常见问题包括状态冲突(如 IllegalStateException)、消息乱序、连接超时等。以下是综合各技术方案的解决方案,分为单机多线程和分布式集群两类场景:🔒 一、单机…

JDBC的连接过程(超详细)

JDBC(Java Database Connectivity)是 Java 用于访问数据库的标准 API,它允许 Java 程序与各种不同类型的数据库进行交互, 其连接数据库的过程主要包含以下几个步骤:1. 导入 JDBC 驱动依赖在使用 JDBC 连接数据库之前&a…

本地WSL部署接入 whisper + ollama qwen3:14b 总结字幕校对增强版

1. 实现功能 M4-4: 校对增强版 (最终完全体) 本脚本是整个 Module 的最终形态,采用了“代码预处理 LLM校对”的终极方案: 代码预处理: 确定性地在每个语音片段后添加逗号,生成一份“标点草稿”。LLM校对: LLM 的任务被简化为“校对和修正”这…

MySQL数据库简介

1 简介 MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB公司开发,属于 Oracle 旗下产品,是当今最流行的关系型数据库管理系统之一,在 WEB应用方面,MySQL是最好的RDBMS (Relational Database Management System&#…

[Oracle] UNPIVOT 列转行

Oracle数据库中的UNPIVOT是一种用于将列转换为行的SQL操作,它允许用户将多个列的数据转换为多行的形式,以便进行更灵活的数据分析和报表生成UNPIVOT主要用于将宽表(多列)转换为长表(多行),减少表的列数,增加行数语法格式SELECT pi…

node.js 学习笔记3 HTTP

path模块 path模块主要用于操作路径。要使用path,首先需要引入path模块。require(path) path.resolve 用于拼接规范的绝对路径。 如果想拼接一个路径,有时候是使用字符串手动拼接的,但由于系统的规范不同,路径中的\和/无法统一…

Flutter Dialog、BottomSheet

属性说明title标题content内容actions按钮applicationName说明文字applicationVersion版本applicationLegalese版本基本使用class MyState extends State {AlertDialog delDialog(BuildContext context) {AlertDialog alertDialog AlertDialog(title: Text("提示"),…

《算法导论》第 19 章 - 斐波那契堆

引言斐波那契堆(Fibonacci Heap)是一种高效的可合并堆数据结构,由 Michael L. Fredman 和 Robert E. Tarjan 于 1984 年提出。它在许多优先队列操作中提供了极佳的 amortized(摊还)时间复杂度,尤其适用于需…

MySQL-日志

MySQL-日志前言一、错误日志(error log)二、慢查询日志(slow query log)三 、一般查询日志(general log)四、 事务日志重做日志(redo log)回滚日志(undo log)五、 二进制日志(bin log)/归档日志 > 数据同…

嵌入式C语言编程:策略模式、状态模式和状态机的应用

概述 在没有面向对象语法的C语言中,策略(Strategy)模式和状态(State)模式都通过“上下文 接口”组合来模拟多态。 它们在代码结构上几乎一致,但设计意图和应用场景却差异很大。 本文分三部分深入剖析&…

人工智能、机器学习、深度学习:2025技术革命的深度解析

目录 人工智能、机器学习、深度学习:技术革命的深度解析 引言 第一部分:人工智能的起源与演进 1.1 人工智能的定义 1.2 人工智能的历史 1.3 人工智能的关键概念 a.知识表示(Knowledge Representation) b.搜索算法&#xf…

【Python】常用内置模块

1.os 文件目录 import os# 创建文件夹 os.mkdir(dir) # 判断文件是否存在 os.path.exists(path) # 列出文件夹下文件列表 os.listdir(dir)""" 常用 """ # 当前文件相对路径 os.getcwd()# 当前文件绝对路径 os.path.abspath(__file__)# 当前文…