自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (4)
  • 收藏
  • 关注

原创 Apptainer_Singularity容器原理

Singularity容器技术是劳伦斯伯克利国家实验室开发专门用于高性能计算场景的容器技术(Slurm系统是劳伦斯利弗莫尔国家实验室研发),Singularity完全基于可移植性进行虚拟化,更加轻量级,部署更快,Singularity目前被广泛地各高性能计算中心。后由于Singularity项目加入Linux基金会,改名为Apptainer,以下还是按照原称即Singularity展开介绍。

2023-03-26 18:25:46 1025

原创 Docker容器原理

容器在Linux中是一组进程,是与Linux系统相互隔离开的一组进程。容器技术就像一个集装箱,将应用装起来,借用Singularity容器技术PPT的一个图片,可以形象的展示容器的作用。容器就像集装箱一样可以搬来搬去,而且不同集装箱也不会相互干扰。容器技术就是通过一组进程的约束以及动态修改,人为的在Linux系统中创建一个边界。Linux容器(Linux Container,简称LXC)主要用到三种技术:分别是namespace与cgroup以及很早就出现的chroot。

2023-03-25 16:41:29 523 1

转载 Docker容器底层原理

第一次接触 docker 的人可能都会对它感到神奇,一行docker run,就能创建出来一个类似虚拟机的隔离环境,里面的依赖都是 reproduceable 的!然而这里面并没有什么魔法,有人说 Docker 并没有发明什么新的技术。确实是,它只不过是将一些集合在一起,提供了一个简单的 UI 来创建“容器”。这篇文章用来介绍容器的原理。

2023-03-25 15:46:04 461

原创 Quartz:定时任务调度框架

Quartz是一个开源的任务调度框架,负责任务进度管理(就是一个在预先被纳入日程,当时间到达时,负责执行(或者通知)其他软件组件的系统),由OpenSymphony(一个开源组织)开发,这个框架进行了优良地解耦设计,Quartz主要功能,就是在设定的时间内干什么事情,比如说把redis中的缓存数据与数据库中的数据进行同步、定时发送信息、设置一个周三才开始的活动。Quartz是一个基于Java实现的任务调度框架,应该说叫定时任务调度框架。

2023-03-20 22:55:00 3056

原创 Max-Min算法

任务调度算法,随着多核处理器的发展,带来了新的挑战。如何利用高效的任务调度策略使得多核处理器充分发挥性能,是急需解决的问题。动态任务调度是根据运行时的情况动态的将任务分配到对应的资源上,但是需要实时的收集系统计算资源、存储资源以及网络资源等信息,有一定的系统开销,不过相较于资源利用率的提升,动态资源调度也是很有意义的。经典的调度算法有:Min-Min调度算法、Max-Min调度算法、MCT最小完成时间、MET最小执行时间等算法。

2023-03-20 14:31:00 1732

原创 DRF调度算法

解决不同类型资源在系统内的资源公平分配问题,提出优势资源公平性算法(DRF),是一种对多种资源类型的最大-最小公平性的推广。DRF满足几个属性。首先,DRF鼓励用户共享资源,通过确保如果资源在他们之间平均分配,没有用户会更好。其次,DRF是防策略的,因为用户不能通过谎报自己的需求来增加她的分配。第三,DRF是免费的,因为没有用户愿意将她的分配与其他用户的分配进行交换。最后,DRF的分配是帕累托有效的,因为不可能在不减少另一个用户的分配的情况下改进一个用户的分配。

2023-03-19 14:01:03 504

原创 Google Borg集群调度系统

本文翻译自Google Borg原始论文

2023-03-17 21:40:55 1440

原创 Slurm问题-不给root权限以及sudo-su区别

Slurm不使用root用户执行敏感命令(掩耳盗铃)

2023-03-10 20:02:22 460

原创 Slurm问题-关于节点共享队列以及配置cgroup的问题

Slurm节点共享队列,以及cgroup细化资源粒度的问题

2023-03-10 10:58:58 2206

原创 Google Omega集群管理系统

Google Omega论文研读

2023-03-10 10:10:45 564

原创 Twine-一个基于共享基础设施的统一集群管理系统

Facebook Twine集群管理系统

2023-03-09 17:47:38 493

原创 CentOS7.8部署Minikube

CentOS虚拟机部署Minikube

2023-02-14 20:30:39 255

原创 Slurm.conf配置文件

Slurm配置文件详情

2022-11-09 18:26:55 4521

原创 Slurm工作负载优先级(二)

Slurm工作负载优先级(二)

2022-11-08 21:20:11 495

原创 Slurm工作负载优先级(一)

Slurm工作负载优先级(一)

2022-11-08 21:17:43 1884

原创 Slurm中的JWT token问题

JWT原理及Slurm token获取

2022-10-31 20:39:28 842 3

原创 slurm-批处理作业样例

slurm批处理作业样例

2022-10-26 22:26:06 256

原创 Slurm作业启动原理

slurm中交互式作业、分配式作业、批处理作业启动原理分析

2022-10-26 22:23:32 759

原创 Slurm资源管理架构

slurm资源管理架构

2022-10-26 22:17:55 2124

原创 SlurmRestAPI

SlurmRestAPI相关内容

2022-10-26 22:11:20 1210

原创 slurm集群部署安装+ansible

使用ansible部署安装slurm集群

2022-10-26 22:04:50 1919

原创 Slurm常用命令总结

Slurm常用命令

2022-10-26 22:00:05 2800

原创 多处理器调度

多处理器调度​ 多核处理器目前应用广泛,不再像以前一样是个奢侈品。这就带来了一个问题,就是多处理器如何进行调度呢。单个CPU对应多级硬件缓存系统,目的是未来让处理器更快的执行程序。缓存很小,但是快,内存比缓存大得多,但是速度相对来说小一点。​ 程序第一次读取数据的时候,会到内存中读取。当处理器判断有可能会被再次利用的时候,就会把数据放在缓存中,之后只要使用同样的数据,直接到缓存中取就行了。缓存基于局部性概念,分为两种分别是时间局部性与空间局部性。时间局部性是指当一个数据被访问后,它很有可能会在不久的

2022-04-01 17:44:49 1562

原创 比例份额调度

比例份额调度​ 这里涉及到的两个算法都是比较有趣的。分别是彩票调度算法和步长调度算法。彩票调度算法:​ 彩票数(ticket)代表了进程(或用户或其他)占 有某个资源的份额。一个进程拥有的彩票数占总彩票数的百分比,就是它占有资源的份额。假设有这样一个问题场景总共有100张彩票:A有75张彩票,B有25张彩票。通过不间断定时抽取彩票,就可以让A、B拥有等比例的占用CPU资源的几率。彩票调度制度也采取了一些有趣的方式:​ 一是利用彩票货币的形式允许拥有一组彩票的用户以他们喜欢的某种货币, 将彩票分

2022-04-01 17:42:34 122

原创 多级反馈队列调度

多级反馈队列​ 多级反馈队列(Multi-level Feedback Queue, MLFQ),与上个世纪70年代提出,主要应用于时分共享系统。主要解决两方面问题:一个是优化周转时间,一个是要给用户很好的交互体验。MLFQ中有很多独立的队列,每个队列有不同的优先级,任何时刻,一个任务只能存在于一个队列中。先引出MLFQ的两个基本规则规则1:如果A优先级 > B优先级,则运行 A规则2:如果A优先级 = B优先级,则轮转执行A和B。​ 还是引出一个问题,就是如果优先级都是不变的,这样

2022-04-01 17:41:32 3478

原创 进程调度策略

进程调度调度指标:周转时间任务的周转时间定义为任务完成时间减去任务到达系统的时间。公式化描述是T 周转时间= T完成时间−T到达时间。周转时间是一个性能指标,调度系统中可以优化性能,但是付出的代价往往是阻止一些工作的运行。先进先出(First In First Out,FIFO) / 先到先服务(First Come First Served,FCFS)调度​ 假设系统中存在A、B、C三个任务,如果按照先后顺序进行调度,对应平均周转时间是(10 + 20 + 30)/ 3 = 20,但是考

2022-04-01 17:38:24 1611

原创 操作系统导论-进程概述

进程概述相关概念Q1:什么是进程?进程就是运行中的程序。程序是存在磁盘上的一些指令的合集,包含一些系统调用、过程调用以及静态数据等。程序是没有生命周期的,谁听说过某某某程序到了晚上8点就不执行了。而进程是有生命周期的。Q2:为什么需要进程/为什么需要虚拟化?日常使用计算机的时候,可能同时会处理多种事情,比如说一边跑着深度学习框架,一边看视频、玩LOL。系统中存在多个进程同时进行,这时候就需要虚拟化virtualization,让CPU提供这样一种假象,一个进程只运行一个时间片,然后就切换到其

2022-03-31 22:10:58 2731

原创 volatile关键字

volatile关键字

2022-03-29 17:46:17 240

原创 操作系统概述

从三个方面概述操作系统

2022-03-29 17:45:12 2542

原创 C++字符串

C++字符串成员函数(构造函数)构造basic_string(析构函数)销毁字符串,operator=为字符串赋值assign赋值字符给字符串get_allocator返回关联的分配器元素访问函数名函数功能at访问指定字符 ,有边界检查operator[]访问指定字符front(C++11)访问首字符back(C++11)访问最后的字符data返回指向字符串首字符的指针c_str返

2021-07-22 09:58:32 77

原创 Typora学习笔记

Typora使用指南写在前面Typora是当前较为流行的MarkDown文本编辑器,比较难轻便简洁,而且是免费的(这才是最重要的)。Markdown是一种轻量级标记语言,吸收了电子邮件中文本标记的特性,增强了文档的可读性,同时对于文档作者编写文档友好,目前众多网站都支持使用MarkDown来编写帮助文档。著名的有Github其中主要用来编写README文档。标题解释Typora有六级文章标题展示,使用#键进行编写,具体格式以及快捷键如下所示。格式快捷键# 一级标题

2021-07-12 11:11:10 308

原创 PIP命令

PIP3命令pip命令介绍python是最近几年特别火的编程语言,经常会用到pip这个工具,用来安装相关的依赖库,也可以查询相关信息。python有版本2和版本3的区别,同样pip命令也有pip与pip3的区别,版本更新了而已。pip命令的安装与卸载安装直接到官网下载pip安装包,然后解压,之后输入python setup.py install命令在安装python环境的时候,安装过程中会有选项是否安装pip安装包,直接勾选就有了卸载python -m pip unin

2021-01-19 13:24:20 334 7

原创 类中访问权限控制

类中访问权限控制——首先引出一个问题:为什么用访问限制?——答:可以将一些较为敏感的隐私数据进行隐藏起来,不能让外部轻易获取三种访问权限关键字功能public公有访问权限private私有访问权限protected受保护的访问权限**private:**只能由类中的函数,或者友元函数访问,其他的都不能访问,该类的对象也不能访问(自己家的东西)**protected:**可以被该类中的函数、子类中的函数,以及友元函数进行访问,但是不能被该类的对象访问(保

2021-01-06 07:24:27 301

原创 C++三五法则

C++三五法则需要析构函数的类也需要拷贝构造函数和拷贝赋值函数需要拷贝操作的类也需要赋值操作,反之亦然析构函数是不能删除的如果一个类有删除的或不可访问的析构函数,那么其默认和拷贝构造函数会被定义为删除的如果一个类有const或者引用成员,则不能使用合成的拷贝赋值操作...

2021-01-06 07:21:24 222

原创 C++类和对象

C++类和对象类类是面向对象程序设计OOP实现消息封装的基础。 类是现实世界在计算机中的反映,它将数据和对这些数据的操作封装在一起, 即具有相同结构,操作,使用约束规则在一起的对象集合在一起,就成为类,类是对对象的抽象。而对象是对类的具体体现。 类的实质是一种引用数据类型,只是这个数据类型比较复杂,类是一个抽象的概念,不能直接操作。只有实例化为对象,才能被操作。这就好比车,车是一个抽象的概念(你难道能开一个逻辑概念的车?),但是红旗轿车跟长安轿车是它的实例化的对象,是可以直接进行操作的类的

2021-01-05 21:53:24 106

原创 map与set

map、unordered_map与setmapmap是有序键值对容器,提供一对一的hash,第一个称为关键字,第二个称为关键字的值,关键字的值是唯一的。map可以存储任意类型的数据,map底层实现是红黑树,这棵树具有排序的功能,按照迭代器输出//map示例#include <map> //头文件#include <unordered_map>map<key, value> arr;for (auto iter = arr.begin(); iter

2021-01-04 13:48:45 92

原创 C++字符串

C++字符串成员函数(构造函数)构造basic_string(析构函数)销毁字符串,operator=为字符串赋值assign赋值字符给字符串get_allocator返回关联的分配器元素访问函数名函数功能at访问指定字符 ,有边界检查operator[]访问指定字符front(C++11)访问首字符back(C++11)访问最后的字符data返回指向字符串首字符的指针c_str返

2021-01-04 12:13:42 76

原创 sort与nth_element使用

sort与nth_element使用sortsort函数是C++中对于跟定区间的所有元素进行排序的函数,默认为升序排序,sort时间复杂度为O(nlog2n),因为sort函数底层使用的是快速排序算法。包含在algorithm头文件中#include <algorithm>//sort函数用法sort(start, end, cmp);//start指的是排序数组的第一个位置、//end指的是排序数组最后一个位置的下一位//cmp为可选项,可不填,也可以自己定义排序方法

2021-01-03 11:52:16 420

原创 C和C++区别以及编程范式

C/C++区别可以这样理解C++是C语言的超集,C++包含C语言所有内容,除此之外还有C语言所不具备的多余的58个头文件,异常处理,类和对象(面向对象编程),STL,模板(泛型编程),Lambda表达式(函数式编程)编程范式编程范式分为四种,分别是:函数式编程,泛型编程,面向过程编程,面向对象编程函数式编程函数式编程把电脑运算视作函数的计算,属于“结构化编程”一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。例如lambda表达式,代码如下:var print = fun

2021-01-02 20:20:57 1058 5

Facebook Twine集群管理系统

Facebook Twine集群管理系统

2023-03-09

基于WinDLX计算机系统结构题目设计.zip

计算机系统结构实验代码集合,包括对应的求解圆台体积,求解最大公约数,素数求解,以及冒泡排序的实现,还有就是计算本息和问题

2020-06-07

good model.zip

实现带有移位功能的建议模型机器,在5条基本机器指令基础上,增加4条移位运算指令,并编写相应的微程序。

2020-06-07

COMPUTER.zip

实现左移,右移功能的简单模型机,在5条基本机器指令基础上,增加4条移位运算指令,并编写相应的微程序。

2020-06-07

Java-Gobang-master.zip

基于α β剪枝算法的五子棋,具有友好的界面,支持人机对战,人人对战。

2019-10-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除