hpc高性能计算:如何理解高性能计算(HPC)的虚拟化



  回首单核处理器走过峥嵘岁月那时高性能计算集群还处在萌芽阶段尽可能获取和硬件相匹配应用软件Software是非常重要在很多情况下都是如此通过使用TCP/IP网络协议或者用户空间零拷贝协议操作系统实现节点间通信除了阻止内存的外用户空间协议从节点通信中移除了操作系统用户空间通信结果就是使应用软件Software性能得到了提升

  为了弄明白虚拟化在高性能计算中扮演角色先让我们看看是如何在集群中运行个MPI并行基本可以理解为在统或者区别节点上运行独立集合Messages作用就是把内存从拷贝到另外然后通过计划(比如PBS分布式计算或者Torque)分配到空闲状态下节点或者内核上去这些通过全知调度进行管理旦分配到内核上就会停留在上面直到完成这些节点通信都是在互联网上完成但是就调度而言如何处理好这些节点才是用户任务所在这个模式对于高性能计算集群非常适用尽管它并非唯

  虚拟化能允许操作系统例子(OS instance)在管理的上运行管理能够将操作系统例子(OS instance)和硬件分开而这个硬件能允许操作系统和运行个管理迁移到另外个管理

  让我们考虑下是否需要取消个服务器来固定或者增加驱动呢?先从虚拟化服务器说起移动客户端例子固定机器然后继续移动客户端操作系统并不会意识什么正在发生这就好比管理是电灯插座操作系统例子(OS instance)就是电灯会以区别形式变化比如颜色或者瓦特数但是他们都可以安装在同个插座上因此我们所做就是移动电灯这么做就容易多了

  在虚拟化世界里有两种思路方法来移动这个电灯种就是关掉电灯旋开螺丝(可能需要花费些时间)然后把它安装在新插座上另外种思路方法就是在电灯开着时候就进行移动(对我而言这是个经过认真研究试验并非没有可能)如果你以非常快速度旋开电灯螺丝在电流停止流动的前就安装在新插座上(请注意这里用是"非常快")那么没有人会意识到电灯曾经熄灭过

  为了更好运用虚拟化需要在硬件上增加个抽像化层如果你对集群只是知半解那么就要在你们脑子里敲响警钟了抽像化层位于上层在高性能计算中我们需要上层最小化我们需要尽可能接近硬件需求虚拟化是需要成本另外操作系统例子迁移也是要些小窍门技巧但是通过MPI并行同步或者异步通信来迁移多冲操作系统例子就要增加抽像化层难度了

  对于上层这个问题高性能计算虚拟化也是颇具诱惑力具备迁移运行中MPI/OS例子能力也是可能

  首先check-poing节点例子就是种可能性只是把每个操作系统例子放在磁盘上同样整个集群进行区域筛选分类聚集工作然后稍后运行或者在其它节点上运行当然check-poing和区域筛选分类聚集法都是什么新想法不过在个集群环境中进行也不是那么容易

  另外种可能性是运行单节点例子假设你代码要求不被其它节点使用特殊内核libc或者操作系统版本没问题!先从你需要节点操作系统例子开始着手最后调度会和操作系统例子配合进行迁移来帮助实时加载集群平衡

  也许你会注意到我有意在掩盖许多细节而只是从大面上进行叙述我了解到细节其实也是非常重要虚拟化还比较昂贵而且有待更加成熟我们目前知道是处理器和网络速度变更快内核数量能够更多内存体积也在增长不过今天昂贵并不意味着以后也会昂贵虚拟化为高性能计算打开了传输媒介

Tags:  服务器虚拟化 虚拟化技术 虚拟化

延伸阅读

最新评论

发表评论