首页 > 其他分享 >slurm初步使用

slurm初步使用

时间:2024-02-15 10:34:13浏览次数:23  
标签:sys log -- proc slurm 初步 master 使用 os

先使用脚本.sh

 1 #!/bin/bash
 2 #SBATCH --job-name=test
 3 #SBATCH -p amd_256
 4 #SBATCH --error=log/%J.err
 5 # 作业运行的标准错误输出将写到文件log/[JOB ID].err文件中
 6 #SBATCH --output=log/%J.out
 7 # 作业运行的标准输出将写到文件log/[JOB ID].out文件中
 8 #SBATCH --time=1:00:00
 9 
10 #### 第一部分:环境配置(可选) ####
11 module load java/1.8.0_221-public3
12 # 1. 使用module指令载入所需的软件环境 #
13 # 2. 配置其他必要的环境变量 #
14 
15 #### 第二部分:获取主节点(即编号为0的slurm task)所在机器的Infiniband网卡IP地址
16 
17 NETWORK_INTERFACE=ib0
18 master_ip=$(srun --ntasks=1 --nodes=1 bash -c "ip -4 addr show $NETWORK_INTERFACE | grep -oP '(?<=inet ).*(?=/)'")
19 echo "The IP address of the master task is" $master_ip
20 random_port=$(($RANDOM + 10000))
21 
22 #### 第二部分:执行具体的程序 ####
23 ### 使用driver-script.py脚本来具体启动与运行程序,将主进程所在机器的IP地址、一个随机端口号作为启动脚本的参数
24 srun python3 driver-script.py $master_ip $random_port

然后加上.py脚本

 1 #!/usr/bin/env python3
 2 import os
 3 import sys
 4 import subprocess
 5 import time
 6 
 7 ## 第一部分:获得关键变量(本部分代码不要修改)
 8 # 主进程所在机器的IP地址
 9 master_ip = sys.argv[1]
10 # 主进程用于监听的一个随机端口号
11 master_port = int(sys.argv[2])
12 # 当前进程编号
13 proc_id = int(os.environ["SLURM_PROCID"])
14 # 本次计算参与的总进程数
15 num_proc = int(os.environ["SLURM_NTASKS"])
16 
17 ## 第二部分:启动计算所业(需要修改)
18 
19 if proc_id == 0:
20     # 启动主进程
21     print("Start the master process...")
22     # 通过os.system函数调用其他程序,启动主进程(修改这里)
23     #os.system("ls -lh") 
24     try:
25         subprocess.run(f"java -cp 1.jar org.example.TotalClient {master_port}", shell=True, stdout=sys.stdout, stderr=sys.stderr)
26     except subprocess.TimeoutExpired:
27         pass
28     print("The main process finishes.")
29 else:
30     # 启动从进程
31     time.sleep(10)  # 等待1s,等待主进程启动
32     print("Start the worker process {}...".format(proc_id))
33     # 通过os.system函数调用其他程序,启动从进程(修改这里)
34     #os.system("ls -lh")
35     subprocess.run(f"java -cp 1.jar org.example.PrimeNumberClient {master_ip} {master_port}", shell=True, stdout=sys.stdout, stderr=sys.stderr)
36     print("The worker process {} finishes.".format(proc_id))

将这两个脚本上传到平台的同一个文件夹,jar包也要放入这个文件(运用sftp parasc进行上传)

再用ssh parasc进入超算平台

进入xiaocai,输入

1 sbatch --nodes=1 --ntasks-per-node=5 文件名.sh
2 cd log
3 cat 任务名.out
4 scancel 人物名

发现没有进行多线程保护

目前可以在Server端实现gRPC的每个方法头添加上synchronized关键字(这个关键字可以保证Server端在同一时间只处理一个Client发来的请求,不会同时并行的处理多个Client发来的请求)。就是public synchronized void signClient...

标签:sys,log,--,proc,slurm,初步,master,使用,os
From: https://www.cnblogs.com/saucerdish/p/18015995

相关文章

  • 模块使用
    模块用于组织实用函数、常量和其他在React应用程序的不同部分使用的共享代码。在应用程序中使用模块可以促进干净且可维护的代码结构,从而更容易理解、测试和扩展应用程序。ES6模块系统以及webpack或Parcel等工具有助于在Web应用程序中捆绑和高效加载这些模块。......
  • cmder使用
    下载地址解压后,直接双击Cmder.exe使用设置中文......
  • Secret,configmap的定义及使用,探针
    目录Secret,configmap的定义及使用secretsecret的定义secret的使用configmap探针Secret,configmap的定义及使用其实这两者是差不多的,只要搞懂了secret,那么configmap也是很好理解的。这两个是干什么的呢?有什么作用呢?我们在创建有些容器的时候,比如mysql,你在创建的时候他就要求你给......
  • C++ Builder使用FMX多平台框架
    C++Builder使用FMX多平台框架C++Builder使用FMX多平台框架C++Builder使用FMX多平台框架......
  • 使用lanczos算法进行的预处理共轭梯度算法(Preconditioned Conjugate Gradients Metho
    构造预处理矩阵M(对称正定)下图来自:预处理共轭梯度法(1)......
  • 4.NET中使用Nacos分布式配置中心
    nuget安装:1.nacos-sdk-csharp2.nacos-sdk-csharp.AspNetCore3.nacos-sdk-csharp.Extensions.Configuration创建WebAPI项目,ConfigCenter.NacosService1 {"Logging":{"LogLevel":{"Default":"Information",......
  • 使用TimeZoneInfo代替TimeZone
    概念时间戳时间戳就是当前时间距离1970年1月1日0点0时0分0秒(转换成北京时间是1970年1月1日8点0时0分0秒)距离你要计算的时间的秒数或者毫秒数。总结:TimeZone.CurrentTimeZone.ToLocalTime(newDateTime(1970,1,1));被TimeZoneInfo.ConvertTime(newDateTime(1970,1,1),T......
  • 微信小程序页面跳转:wx.switchTab、wx.reLaunch、wx.redirectTo、wx.navigateTo、wx.na
    引言在微信小程序开发中,页面跳转是一项基础且常用的功能。本文将介绍微信小程序中五种常见的页面跳转方式,并分析它们的使用场景和区别。1.wx.switchTab(跳转主页)wx.switchTab方法用于跳转到tabBar页面,并关闭其他所有非tabBar页面,通常用于跳转到小程序的主页。特点:关闭......
  • 使用msmtp发送邮件
    最近需要在服务器上运行一些时间很长的命令,想让服务器自动通知我什么时候命令完成,通过命令结束后发送邮件给我来提醒。安装msmtp和mail#RedHat系sudodnfinstallmsmtpmailx#Debian系sudoaptinstallmsmtpmailutils配置msmtp创建或编辑.msmtprc,内容示例如:#......
  • zookeeper虚拟机使用和java api使用zookeeper案例
    zookeeper动物园管理员中间件,提供协调服务作用于分布式系统,发挥其优势,可以为大数据服务支持java,提供java和c语言的客户端api什么是分布式系统?很多台计算机组成一个整体,一个整体一致对外并且处理同一请求内部的每台计算机都可以相互通信(rest/rpc)客户端到服务端的一次请求到......