高性能计算发展方向略记

      从单机的性能突破至今,CPU集群一直在高性能计算方面基本上占主导,网络的存在使得许多性能一般的机器可以并行地工作,通过共享内存或者通信来实现大规模任务的协作,CPU的计算速度也不断地翻倍,集群的节点和核的数目也可以不断此增加,高性能给社会的大规模计算带来了可能性,不但缩短了时间,也降低了成本,使很多不可能的事情在短时间内实现了,在海量数据处理,图像分析,模拟建模等方面都有了很大贡献。

      而CPU的提速在一定的硬件限制下,仍然有了瓶颈,这就使得同样的CPU集群再也难以得到更强的计算能力,这个时候,我们将下一代的高性能并行计算希望渐渐转移到了GPU,一种用来处理图像显示的芯片上,增加了并行能力,以此来提高计算速度,缩短时间同时也降低成本, 但是,这种编程的架构却还不稳定,编程过程也复杂,难以调试,更是难得有好的移植性。

      一个CPU的线程很有限,最多能够同时生成并运行几十个线程,但是每个线程的功能都比较强大,能够处理较多的东西, 特别的是都具有比较强的控制能力,能够同时处理几十个数据,相比之下,GPU的线程可以达到几千个甚至上万个,只是其功能比较简单,计算的能力更为主要,控制只是占很少的一部分,CPU相当于一个战斗力极强的将士,而GPU却更像是一大批战斗力一般的兵卒,此时,如果任务的并发性很高,那么,GPU将会得到很好的发挥,特别是当数据的处理拥有一定的独立性时,更是体现出这种多线程的好处,所以,TOP 500里面靠前的很多都是GPU集群,利用其超强的并行能力,可以将速度提升到另一个高度。

     然而,GPU现在更多地是作为CPU的协处理器出现,只能够通过CPU控制主程序,当需要用到并行计算的时候再移入GPU中进行计算,计算结果返回到CPU中,再进行下一步,如此反复直到程序完成,而这样的程序就存在不少问题,CPU和GPU之间的数据传输会耗费大量的时间,而且,其间复制的正确性和负载的均衡性都不能确保是最好的,而对GPU中线程的分配和控制,也是存在很到的优化空间,当然,也就相当于说,还总是做得不够好,而线程之间的同步和与CPU之间的同步,也是个很大的问题, 许多由于并行执行而产生的随机性错误更是难以调试,这也是并行编程一直存在的问题,所以,建立一个好的接口或许是很必要的。

     一般而言,有两种办法来引入并行程序但是不会导致编程太过困难或复杂,从而可以利用并行部分来达到高性能计算,如OpenMP和MPI等语言,不外乎就是对传统编程语言进行扩展或者添加一个运行时库,在原有的语言基础上进行扩充,使得其语句中含有可以并行执行的命令,从而调度线程进行并行工作,也可以在运行的时候让接口直接调用运行时库,利用已经编好的并行程序进行辅助计算,从而对程序中的并发性进行提取,分化,排序,执行。

     高性能计算在并行计算方面的模式也必须基于一定的硬件基础,一般地会有BSP模式,PRAM模式等,假定了一个比较通用的模式,就可以从这个基础上对一些任务进行并行编程模式的研究,对一些问题进行并行算法的研究等,从而,利用整一套并行编程的模式加上对问题的并行算法的设计,将可以朝比较正确的方向去努力,至少可以减少一些不确定性了。

     云计算更多的是作为一种理念存在, 很多东西都自称是云计算,但是,或许其根本都不知道什么是云计算。SaaS等新的服务和管理方式都已经说明了这种理念的先进性了,从每个人一个发电机到每个人都从电厂买电来用,云也就是差不多同样的道理,提供一种更直接的资源,而这种资源的产生更为集中,这样,生产的效率高了,使用的效率也高了,按需购买,软件服务已经成为一种直接交易的商品,这个现象也多亏了网络和高性能机器的发展。

     高性能计算的发展,也许给了中国一个赶上世界上其他先进国家的机会,从GPU这个突破口出发,大家一起竞争,谁前谁后就难说了,对与CPU集群已经发展非常成熟的美国来说,不可能一下子完全放弃了传统的模式,而中国却能够减少这种忧虑一心从GPU入手进行突破,但是,是否作为协处理器呢?还是可以完全在GPU中处理所有的任务,减少通讯和控制的比例呢?愿望总是美好的,但是,或许,这条路走不通呢?或许,GPU还有很久才能发展起来呢?无论如何,箭在弦上,不得不发,不前进,只能永远落后,只有一个可能性,也要抓住,因为,除了这个可能性,暂时没有看到其他的出路,让我们共同期待GPU的发展和云的成熟!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值