文末
技术是没有终点的,也是学不完的,最重要的是活着、不秃。
零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。
最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。
自学最怕的就是缺乏自驱力,一定要自律,杜绝“三天打鱼两天晒网”,到最后白忙活一场。
高度自律的同时,要保持耐心,不抛弃不放弃,切勿自怨自艾,每天给自己一点点鼓励,学习的劲头就会很足,不容易犯困。
技术学到手后,找工作的时候一定要好好准备一份简历,不要无头苍蝇一样去海投简历,容易“竹篮打水一场空”。好好的准备一下简历,毕竟是找工作的敲门砖。
拿到面试邀请后,在面试的过程中一定要大大方方,尽力把自己学到的知识舒适地表达出来,不要因为是自学就不够自信,给面试官一个好的印象,面试成功的几率就会大很多,加油吧,骚年!
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
文章目录
前言
在高性能计算领域,作业调度系统是一个非常重要的组件,它负责管理集群的资源和作业,以提高计算效率和用户体验。本文将介绍一种流行的开源作业调度系统——slurm,它具有高度可扩展和容错的特点,已被全球多个超级计算中心和大型集群采用。本文将介绍slurm的基本概念、架构和术语,以及如何使用slurm进行作业的提交和管理。
一、slurm是什么?
slurm(Simple Linux Utility for Resource Management)是一种可扩展的工作负载管理器,它可以对Linux集群的资源和作业进行有效的调度和控制。slurm是免费和开源的,遵循GPL通用公共许可证。slurm提供了一系列的用户和管理工具,以及丰富的插件机制,可以支持多种基础设施和网络拓扑。slurm的主要功能包括:
资源管理:slurm可以对集群的节点、CPU、内存、通用资源(如GPU)等进行管理,以满足不同的作业需求和优化策略。
作业调度:slurm可以根据作业的优先级、资源需求、时间限制、队列设置等进行作业的调度,以实现公平和高效的资源分配。
作业执行:slurm可以通过不同的方式(如srun、sbatch、salloc等)执行作业,以支持交互式和批处理式的作业模式,以及不同的并行环境(如MPI、OpenMP等)。
作业监控:slurm可以通过不同的工具(如squeue、sinfo、sacct等)监控作业的状态、进度、资源使用等,以方便用户和管理员进行作业的管理和控制。
作业记账:slurm可以通过数据库或文件的方式记录作业的历史数据,以便进行作业的分析和统计。
二、slurm的架构和术语
slurm的架构主要由以下几个组件构成:
slurmctld:slurm的中心管理器,负责监测集群的资源和作业,以及进行作业的调度和分配。为了提高可用性,还可以配置一个备份的slurmctld。
slurmd:slurm的节点守护进程,运行在每个计算节点上,负责执行作业,以及向slurmctld汇报节点和作业的状态。
slurmdbd:slurm的数据库守护进程,负责存储和管理作业的记账信息,以及提供查询和统计的接口。slurmdbd是可选的,也可以将记账信息存储在文件中。
slurmrestd:slurm的REST API守护进程,提供了一种通过REST API与slurm进行交互的方式,可以实现slurm的所有功能。slurmrestd是可选的,也可以通过命令行工具与slurm进行交互。
用户工具:slurm提供了一系列的用户工具,用于查看集群和作业的状态,提交和管理作业,以及进行其他的操作。常用的用户工具有srun、sbatch、salloc、squeue、sinfo、scancel、sacct等。
管理工具:slurm提供了一系列的管理工具,用于监控和修改集群和作业的配置和状态,以及进行其他的管理操作。常用的管理工具有scontrol、sview、sacctmgr等。
slurm的术语主要包括以下几个概念:
节点(Node):slurm管理的计算单元,可以是一台物理机或一台虚拟机,具有一定数量的CPU、内存、磁盘等资源。节点可以分为以下几种类型:
头节点(Head Node):运行slurmctld的节点,也称为管理节点或控制节点。
计算节点(Compute Node):运行作业的节点,也称为工作节点或执行节点,需要运行slurmd。
登录节点(Login Node):用户登录的节点,也称为前端节点或接入节点,可以运行slurmd,也可以不运行。
数据库节点(Database Node):运行slurmdbd的节点,也称为记账节点,可以是独立的节点,也可以和其他节点共用。
作业(Job):slurm管理的计算任务,由用户提交,由slurm调度和执行。一个作业可以包含一个或多个作业步(Job Step),每个作业步可以是一个或多个并行的进程。作业可以有以下几种状态:
排队(Pending):作业已提交,但还未分配资源,等待调度。
运行(Running):作业已分配资源,正在执行。
完成(Completed):作业已正常结束,释放资源。
取消(Cancelled):作业被用户或管理员取消,释放资源。
失败(Failed):作业由于错误或超时而终止,释放资源。
挂起(Suspended):作业被暂停,保留资源。
最后
今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!
可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。