回首单核处理器走过
![](/icons/31279de.gif)
峥嵘岁月
![](/icons/31279dou.gif)
那时
![](/icons/31279de.gif)
高性能计算集群还处在萌芽阶段
![](/icons/31279dou.gif)
尽可能
![](/icons/31279de.gif)
获取和硬件相匹配
![](/icons/31279de.gif)
应用软件Software是非常重要
![](/icons/31279de.gif)
![](/icons/31279dou2.gif)
在很多情况下
![](/icons/31279dou.gif)
都是如此
![](/icons/31279dou2.gif)
通过使用TCP/IP网络协议或者用户空间零拷贝协议
![](/icons/31279de.gif)
操作系统实现节点间通信
![](/icons/31279dou2.gif)
除了阻止内存的外
![](/icons/31279dou.gif)
用户空间协议从节点通信中移除了操作系统
![](/icons/31279dou2.gif)
用户空间通信
![](/icons/31279de.gif)
结果就是使应用软件Software
![](/icons/31279de.gif)
性能得到了提升
![](/icons/31279dou2.gif)
为了弄明白虚拟化在高性能计算中扮演
![](/icons/31279de.gif)
角色
![](/icons/31279dou.gif)
先让我们看看
![](/icons/31279chengxu.gif)
是如何在集群中运行
![](/icons/31279de.gif)
![](/icons/31279dou2.gif)
![](/icons/31279yi.gif)
个MPI并行
![](/icons/31279chengxu.gif)
基本可以理解为在统
![](/icons/31279yi.gif)
或者区别节点上运行
![](/icons/31279de.gif)
独立
![](/icons/31279chengxu.gif)
![](/icons/31279de.gif)
集合
![](/icons/31279dou2.gif)
Messages
![](/icons/31279de.gif)
作用就是把内存从
![](/icons/31279yi.gif)
个
![](/icons/31279chengxu.gif)
拷贝到另外
![](/icons/31279yi.gif)
个
![](/icons/31279chengxu.gif)
![](/icons/31279dou2.gif)
然后通过计划
![](/icons/31279chengxu.gif)
(比如PBS
![](/icons/31279dou.gif)
分布式计算或者Torque)分配到空闲状态下
![](/icons/31279de.gif)
节点或者内核上去
![](/icons/31279dou2.gif)
这些
![](/icons/31279chengxu.gif)
通过全知调度
![](/icons/31279chengxu.gif)
进行管理
![](/icons/31279dou.gif)
![](/icons/31279yi.gif)
旦分配到内核上
![](/icons/31279dou.gif)
就会停留在上面直到完成
![](/icons/31279dou2.gif)
这些节点通信都是在互联网上完成
![](/icons/31279de.gif)
![](/icons/31279dou.gif)
但是就调度
![](/icons/31279chengxu.gif)
而言
![](/icons/31279dou.gif)
如何处理好这些节点才是用户
![](/icons/31279de.gif)
任务所在
![](/icons/31279dou2.gif)
这个模式对于高性能计算集群非常适用
![](/icons/31279dou.gif)
尽管它并非唯
![](/icons/31279yi.gif)
![](/icons/31279dou2.gif)
虚拟化能允许操作系统例子(OS instance)在管理
![](/icons/31279chengxu.gif)
的上运行
![](/icons/31279dou2.gif)
![](/icons/31279yinwei.gif)
管理
![](/icons/31279chengxu.gif)
能够将操作系统例子(OS instance)和硬件分开
![](/icons/31279dou.gif)
而这个硬件能允许操作系统和运行
![](/icons/31279chengxu.gif)
从
![](/icons/31279yi.gif)
个管理
![](/icons/31279chengxu.gif)
迁移到另外
![](/icons/31279yi.gif)
个管理
![](/icons/31279chengxu.gif)
![](/icons/31279dou2.gif)
让我们考虑
![](/icons/31279yi.gif)
下是否需要取消
![](/icons/31279yi.gif)
个服务器来固定或者增加驱动呢?先从虚拟化服务器说起
![](/icons/31279dou.gif)
移动客户端例子
![](/icons/31279dou.gif)
固定机器然后继续移动
![](/icons/31279dou2.gif)
客户端操作系统并不会意识什么正在发生
![](/icons/31279dou2.gif)
这就好比管理
![](/icons/31279chengxu.gif)
是电灯插座
![](/icons/31279dou.gif)
操作系统例子(OS instance)就是电灯
![](/icons/31279dou.gif)
会以区别
![](/icons/31279de.gif)
形式变化比如颜色或者瓦特数
![](/icons/31279dou.gif)
但是他们都可以安装在同
![](/icons/31279yi.gif)
个插座上
![](/icons/31279dou2.gif)
因此我们所做
![](/icons/31279de.gif)
就是移动电灯
![](/icons/31279dou.gif)
这么做就容易多了
![](/icons/31279dou2.gif)
在虚拟化
![](/icons/31279de.gif)
世界里
![](/icons/31279dou.gif)
有两种思路方法来移动这个电灯
![](/icons/31279dou2.gif)
![](/icons/31279yi.gif)
种就是关掉电灯
![](/icons/31279dou.gif)
旋开螺丝(可能需要花费
![](/icons/31279yi.gif)
些时间)然后把它安装在新
![](/icons/31279de.gif)
插座上
![](/icons/31279dou2.gif)
另外
![](/icons/31279yi.gif)
种思路方法就是在电灯开着
![](/icons/31279de.gif)
时候就进行移动(对我而言
![](/icons/31279dou.gif)
这是个经过认真研究
![](/icons/31279de.gif)
试验
![](/icons/31279dou.gif)
并非没有可能)
![](/icons/31279dou.gif)
如果你以非常快
![](/icons/31279de.gif)
速度旋开电灯
![](/icons/31279de.gif)
螺丝在电流停止流动的前就安装在新
![](/icons/31279de.gif)
插座上(请注意
![](/icons/31279dou.gif)
这里用
![](/icons/31279de.gif)
是"非常快")
![](/icons/31279dou.gif)
那么没有人会意识到电灯曾经熄灭过
![](/icons/31279dou2.gif)
为了更好
![](/icons/31279de.gif)
运用虚拟化
![](/icons/31279dou.gif)
需要在硬件上增加
![](/icons/31279yi.gif)
个抽像化层
![](/icons/31279dou2.gif)
如果你对集群只是
![](/icons/31279yi.gif)
知半解
![](/icons/31279dou.gif)
那么就要在你们
![](/icons/31279de.gif)
脑子里敲响警钟了
![](/icons/31279dou2.gif)
抽像化层位于上层
![](/icons/31279dou2.gif)
在高性能计算中我们需要上层最小化
![](/icons/31279dou.gif)
![](/icons/31279yinwei.gif)
我们需要尽可能
![](/icons/31279de.gif)
接近硬件
![](/icons/31279de.gif)
需求
![](/icons/31279dou2.gif)
虚拟化是需要成本
![](/icons/31279de.gif)
![](/icons/31279dou2.gif)
另外
![](/icons/31279dou.gif)
单
![](/icons/31279yi.gif)
操作系统例子
![](/icons/31279de.gif)
迁移也是要
![](/icons/31279yi.gif)
些小窍门技巧
![](/icons/31279de.gif)
![](/icons/31279dou2.gif)
但是通过MPI并行
![](/icons/31279chengxu.gif)
同步或者异步通信来迁移多冲操作系统例子就要增加抽像化层
![](/icons/31279de.gif)
难度了
![](/icons/31279dou2.gif)
对于上层这个问题
![](/icons/31279dou.gif)
高性能计算
![](/icons/31279de.gif)
虚拟化也是颇具诱惑力
![](/icons/31279de.gif)
![](/icons/31279dou2.gif)
具备迁移运行中
![](/icons/31279de.gif)
MPI/OS例子
![](/icons/31279de.gif)
能力也是可能
![](/icons/31279de.gif)
![](/icons/31279dou2.gif)
首先
![](/icons/31279dou.gif)
check-po
![](/icons/31279int.gif)
ing节点例子就是
![](/icons/31279yi.gif)
种可能性
![](/icons/31279dou2.gif)
只是把每个操作系统例子放在磁盘上
![](/icons/31279dou2.gif)
同样
![](/icons/31279de.gif)
![](/icons/31279dou.gif)
整个集群进行区域筛选分类聚集工作
![](/icons/31279dou.gif)
然后稍后运行或者在其它
![](/icons/31279de.gif)
节点上运行
![](/icons/31279dou2.gif)
当然
![](/icons/31279dou.gif)
check-po
![](/icons/31279int.gif)
ing和区域筛选分类聚集法都是什么新
![](/icons/31279de.gif)
想法
![](/icons/31279dou.gif)
不过在
![](/icons/31279yi.gif)
个集群环境中进行也不是那么容易
![](/icons/31279de.gif)
事
![](/icons/31279dou2.gif)
另外
![](/icons/31279yi.gif)
种可能性是运行单
![](/icons/31279yi.gif)
节点例子
![](/icons/31279dou2.gif)
假设你
![](/icons/31279de.gif)
代码要求不被其它节点使用
![](/icons/31279de.gif)
特殊内核
![](/icons/31279dou.gif)
libc或者操作系统版本
![](/icons/31279dou2.gif)
没问题!先从你需要
![](/icons/31279de.gif)
节点操作系统例子开始着手
![](/icons/31279dou2.gif)
最后
![](/icons/31279dou.gif)
调度
![](/icons/31279chengxu.gif)
会和操作系统例子配合进行迁移来帮助实时加载集群平衡
![](/icons/31279dou2.gif)
也许你会注意到
![](/icons/31279dou.gif)
我有意在掩盖许多细节而只是从大面上进行叙述
![](/icons/31279dou2.gif)
我了解到
![](/icons/31279de.gif)
细节其实也是非常重要
![](/icons/31279de.gif)
![](/icons/31279dou2.gif)
虚拟化还比较昂贵而且有待更加成熟
![](/icons/31279dou2.gif)
我们目前知道
![](/icons/31279de.gif)
是处理器和网络速度变
![](/icons/31279de.gif)
更快
![](/icons/31279dou.gif)
内核
![](/icons/31279de.gif)
数量能够更多
![](/icons/31279dou.gif)
内存体积也在增长
![](/icons/31279dou2.gif)
不过今天
![](/icons/31279de.gif)
昂贵并不意味着以后也会昂贵
![](/icons/31279dou2.gif)
虚拟化为高性能计算打开了传输
![](/icons/31279de.gif)
媒介
延伸阅读
最新评论