[root@master testMPI]# sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
debug* up infinite 2 idle node[1-2]
#解释
partition 表示分区名、avail 表示分区状态(up 可用,down 不可用),timelimit 表示分区可供最大运行时长,nodes 表示节点数,state 表示节点运行状态,nodelist 表示分区包含的节点列表。
# 常用参数
--help # 显示sinfo命令的使用帮助信息;
-d # 查看集群中没有响应的节点;
-i <seconds> # 每隔相应的秒数,对输出的分区节点信息进行刷新
-n <name_list> # 显示指定节点的信息,如果指定多个节点的话用逗号隔开;
-N # 按每个节点一行的格式来显示信息;
-p # <partition> 显示指定分区的信息,如果指定多个分区的话用逗号隔开;
-r # 只显示响应的节点;
-R # 显示节点不正常工作的原因
state解释
| idle | 节点空闲,可接受作业 |
|---|---|
| alloacted | 该节点已经分配作业且所有核心用满,在作业释放前不能再被分配作业 |
| mix | 使用部分核心,仍可以被分配作业 |
| drain | 对应节点已经下线 |
| drng | 节点已下线但仍有作业在运行 |
批处理是slurm作业调度系统中最经常使用的作业形式之一(另一个是交互式作业)。
#!/bin/bash
#SBATCH -J test # 作业名为 test,也可用--job-name
#SBATCH -o test.out # 屏幕上的输出文件重定向到 test.out,也可用--output
#SBATCH -e test.error # 指定作业标准错误输出文件的名称为test.error
#SBATCH -p gpu # 作业提交的分区为 gpu
#SBATCH --qos=debug # 作业使用的 QoS 为 debug
#SBATCH -N 1 # 作业申请 1 个节点
#SBATCH -n 1 # 作业申请1个进程 --ntasks
#SBATCH --ntasks-per-node=1 # 单节点启动的进程数为 1
#SBATCH --cpus-per-task=4 # 单任务使用的 CPU 核心数为 4
#SBATCH -t 1:00:00 # 任务运行的最长时间为 1 小时 --time
#SBATCH --gres=gpu:1 # 单个节点使用 1 块 GPU 卡
#SBATCh -w node1 # 指定运行作业的节点是 node1,若不填写系统自动分配节点
#SBATCh -x node2 # 指定不使用node2节点运行作业 --exclude
#SBATCh –-exclusive # 指定作业独占计算节点
# 设置运行环境,使用module 管理不同模块
module load gcc/4.8.5 # 添加 gcc/4.8.5 模块
module load mpi/mpich-3.2-x86_64 # mpi/mpich-3.2-x86_64
# 输入要执行的命令,例如 结合srun 等
srun ./test.mpi # 执行命令
JOBID表示任务ID 编号,PARTITION表示作业所在队列(分区),NAME表示任务名称,USER为用户,ST为作业状态,TIME 为已运行时间,NODES 表示占用节点数,NODELIST(REASON)为任务运行的节点列表或者原因说明。另外,状态列中R-Runing(正在运行),PD-PenDing(资源不足,排队中),CG-COMPLETING(作业正在完成中),CA-CANCELLED(作业被人为取消),CD-COMPLETED(作业运行完成),F-FAILED作业运行失败,NF-NODE_FAIL节点问题导致作业运行失败,PR作业被抢占,S作业被挂起,TO作业超时被杀。
[root@master testMPI]# squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
# 参数示例
squeue -l: 以长列表显示更多信息。
squeue -u username: 仅显示属于用户 username 的任务。
squeue -t state: 仅显示处于 state 状态的任务。
squeue -n job_name:仅显示名称为job_name的作业
squeue -p partition :仅显示partition分区的任务。
squeue -jobs job_id :仅显示作业id为job_id的作业
scancel jobid: 删除 jobid 的作业。
scancel -u username: 删除 username 的全部作业。
scancel -s state: 删除处于 state 状态的作业。
scancel -p partition :仅显示partition分区的任务。
scontrol show partition partition_name :详细显示partition_name分区的信息
scontrol show node node_name :详细显示node_name节点信息
scontrol show job job_id :详细显示job_id作业的信息
输出内容会包括,作业号,作业名,分区,计费账户,申请的CPU数量,状态,结束代码
[root@master testMPI]# sacct
JobID JobName Partition Account AllocCPUS State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------
109 test_omp debug root 4 COMPLETED 0:0
109.batch batch root 4 COMPLETED 0:0
109.0 hello.omp root 4 COMPLETED 0:0
110 test_omp debug 4 FAILED 1:0
110.batch batch 4 FAILED 1:0
# 参数解释
-b, --brief:显示简要信息,主要包含:作业号jobid、状态status和退出码exitcode。
-c, --completion:显示作业完成信息而非记账信息。
-e, --helpformat:显示当采用 --format指定格式化输出的可用格式。
-E end_time, --endtime=end_time:显示在end_time时间之前(不限作业状态)的作业。
-i, --nnodes=N:显示在特定节点数上运行的作业。
-j job(step) , --jobs=job(.step):限制特定作业号(步)的信息,作业号(步)可以以,分隔。
-l, --long:显示详细信息。
-N node_list, --nodelist=node_list:显示运行在特定节点的作业记账信息。
-R reason_list, -reason=reason_list:显示由于XX原因没有被调度的作业记账信息。
-s state_list, -state=state_list:显示state_list(以,分隔)状态的作业记账信息。
-S, --starttime:显示特定时间之后开始运行的作业记账信息,有效时间格式参见
主要负责管理账号,用户,集群分区等资源
# 管理账户
sacctmgr show account # 查询账户信息
sacctmgr add account new_account # 添加账户信息
sacctmgr modify account new_account set Parent=slurmtest01 # 修改账户信息
sacctmgr delete account new_account # 删除账户信息
# 管理QOS
sacctmgr show qos # 查询QOS
sacctmgr add qos new_qos # 添加QOS
sacctmgr modify qos new_qos set MaxJobsPerUser=4 # 修改QOS,如用户使用核心数,作业数
sacctmgr delete qos new_qos # 删除QOS
# 用户管理
sacctmgr show user (withassoc) # 查询用户
sacctmgr add user testslurm # 添加用户
sacctmgr update user testslurm set QOS=new_qos # 修改用户信息
sacctmgr delete user testslurm # 删除用户信息
1、分区partition
可以看作为一些节点的集合,是为了实现某一类功能而整合起来的一套计算资源的配置,每个分区都有自己的限制。每个分区配置不同,使用限制也不相同。设置分区的目的是为了使得作业在更适合的配置下运行,避免不必要的资源浪费。另外分区中有个使用时长限制,当分区中的作业在超过使用时长的时候还没结束,将会被自动杀死作业。
2、QOS理解
QoS(Quality ofService)和分区不同,它表示服务质量,它更多刻画了作业的属性而非节点的属性。不同任务的特性不同,指定 QoS 可以使得资源更好分配。
QOS有对应的优先级,资源限制,最大运行时间,最大作业数以及最大提交数目。
system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手
文章目录一、项目场景二、基本模块原理与调试方法分析——信源部分:三、信号处理部分和显示部分:四、基本的通信链路搭建:四、特殊模块:interpretedMATLABfunction:五、总结和坑点提醒一、项目场景 最近一个任务是使用simulink搭建一个MIMO串扰消除的链路,并用实际收到的数据进行测试,在搭建的过程中也遇到了不少的问题(当然这比vivado里面的debug好不知道多少倍)。准备趁着这个机会,先以一个很基本的通信链路对simulink基础和相关的debug方法进行总结。 在本篇中,主要记录simulink的基本原理和基本的SISO通信传输链路(QPSK方式),计划在下篇记
【动态规划】一、背包问题1.背包问题总结1)动规四部曲:2)递推公式总结:3)遍历顺序总结:2.01背包1)二维dp数组代码实现2)一维dp数组代码实现3.完全背包代码实现4.多重背包代码实现一、背包问题1.背包问题总结暴力的解法是指数级别的时间复杂度。进而才需要动态规划的解法来进行优化!背包问题是动态规划(DynamicPlanning)里的非常重要的一部分,关于几种常见的背包,其关系如下:在解决背包问题的时候,我们通常都是按照如下五部来逐步分析,把这五部都搞透了,算是对动规来理解深入了。1)动规四部曲:(1)确定dp数组及其下标的含义(2)确定递推公式(3)dp数组的初始化(4)确定遍历顺
1,Camera基本工作原理答案:光线通过镜头Lens进入摄像头内部,然后经过IRFilter过滤红外光,最后到达sensor(传感器),senor分为按照材质可以分为CMOS和CCD两种,可以将光学信号转换为电信号,再通过内部的ADC电路转换为数字信号,然后传输给DSP(如果有的话,如果没有则以DVP的方式传送数据到基带芯片baseband,此时的数据格式RawData,后面有讲进行加工)加工处理,转换成RGB、YUV等格式输出。数据流是如何从sensor到APP的?上述描述结束后,在ISP处理后面的阶段,数据会进行分流,分为capture,preview,video等以供后续动作使用。例如
📢博客主页:https://blog.csdn.net/dxt19980308📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由肩匣与橘编写,首发于CSDN🙉📢生活依旧是美好而又温柔的,你也是✨目录🔴线性表1.1顺序表1.1.1顺序表定义1.1.2顺序表基本操作1.2单链表1.2.1单链表节点定义1.2.2单链表基本操作1.3双链表1.3.1双链表节点定义1.3.2双链表基本操作1.4静态链表🟠栈和队列2.1栈2.1.1顺序栈2.1.2链式栈2.2队列2.2.1顺序队列2.2.2链式队列2.3应用🟡串3.1串的定义与实现3.2串的模式匹配🟢树与二叉树4.1二叉树4.1.1二叉树的概念4.1.2
目录MyBatisPlusMP特点MP框架结构MP使用准备导入依赖springboot整合mybatisplus配置文件定义好实体类User后编辑mapper接口@Mapper与@MapperScan("包名")区别MP基本操作新增操作删除操作通过id删除用户通过map作为条件删除通过多个id实现删除更新用户通过id进行用户更新查询用户 根据id查询用户根据多个id查询用户根据map集合作为条件查询用户通用Service接口一些操作 查询总记录数批量添加数据MP常用注解雪花算法前言垂直分表水平分表条件构造器继承结构使用条件构造器实现查询操作查询所有用户根据构造器查询主键字段集合根据条件构造器查
本文总结了在以太坊智能合约中使用Solidity在合约内创建合约以及引用其他合约的方法,包括了如何使用mochai进行测试的方法。在这之前先明白一个比较:Contract{}相当于面向对象语言的类当部署后获得到address后,address相当于对象,address0x.......本身就类似指针地址然后我们讨论下Solidity代码中对合约类,合约对象的操作。Solidity首先区分下三种写法:import'ContractB.sol';ConractBB=newConractB(arg1,arg2...);ContractBB=ContractB(Baddress);functionse
智慧医院不良事件精细化管理平台——微信小程序总结一、实现的功能二、项目收获三、总结(经历分享)一、实现的功能到目前为止,微信小程序开发,到此就算是结束了,其中实现了不少功能,如下:1.1角色与权限(后端同学实现的,写这个方便介绍后面的功能)平台可以配置不同的用户角色并授予其不同的操作权限。每个用户在使用平台时都需要指定一个角色。1.2可视范围——根据角色绑定的权限菜单全体职工可以查看自己上报的事件(待审核、已通过、被驳回)。质控人员可以查看所有的事件(待审核、待评价、已通过、已驳回、已评价)。职能人员可以查看自己/自己部门负责的事件(待整改、待评价、已评价)。各科室医务人员可以查看本科室相关的
gitclonehttp:www.git.com.cn........ 克隆git项目gitbranch 查看分支gitbranch-r查看远程分支gitpushorigin--delete分支名 删除远程分支tmpgitcheckout切换分支gitcheckout-b切换并创建分支gitcheckout-b分支名origin/分支名(如果远程分支已存在最好用此命令,在创建分支时会把远程分支最新代码一并拉下来,不会把原分支代码带过来)gitbranch-D删除分支gitpushorigin--delete分支名gitpush--set-upstreamorigin分支名 推送本地分支到远端g