课题上取得了不错的进展,杜克可以将精力放到泰坦ii虚拟系统的改进上,克里依据杜克的指示原汁原味地实现了泰坦ii,但是杜克感觉这不是最优的选择。
特别是在io和存储方面,克里具有现在技术完全不具备的条件,如果消除原来的这些限制,克里虚拟出来的泰坦ii应该有着比原型机更好的性能才对。果然当杜克指示克里进行进一步的优化改进后,仅仅是放开了io读取和存储分配,虚拟泰坦ii的性能就几乎飙升了一倍!
由此可见io和存储对于运算速度影响有多大,但是这还没有完,考虑到cpu和gpu各有所长,杜克期望通过动态调整cpu和gpu的计算节点数量,实现最佳的性能。这个调整思路一出来,克里优化出来的泰坦ii系统就更加惊人了,在针对偏重浮点运算的测试应用下,具备最大数量gpu配置的泰坦ii性能几乎提升了十倍之多。
当然,对于这种大量浮点运算条件,gpu配置比例差不多达到了百分之九十。要知道这可是完全没有修改系统架构的前提下实现的,要是研制超级计算机的专家知道有这么一个强悍的模拟系统,不崩溃掉才怪。
要知道在通常的研究中,超级计算机要想将性能提升十倍,一般至少都需要2-3年的时间,等到相关硬件子系统性能提升后,累计这些更高性能的子系统才能够实现,像克里这样单纯经过动态调整、根本就不改变什么硬件设施就能够实现,实在太妖孽了。
当然换着是逻辑判断更多的人工智能应用,杜克发现这个cpu和gpu的比例又要反过来才能够实现更好的性能。因为在这方面是cpu的强项。
经过这番测试,克里掌握了根据应用类型动态调整虚拟泰坦ii系统的方法和计算公式,可以很快根据软件系统的运算需求进行动态调整系统组成。单单就这一点,杜克就能够在同样的条件下比别人快十多倍得到结果。
何况克里还能够进一步增加运算节点,继续加强虚拟泰坦ii的计算能力,虽然杜克没有指示克里进行类似的改进,主要是现在还没有这个需求,他在克里改进了硬件的动态变化之后,开始瞄准craylinux系统进行优化。
这个一方面是提升系统的能力,另外一方面是积累操作系统研发的经验。科大刘校长牵头的操作系统重大专项研究项目现在已经批准立项,第一期国家拨款6000万人民币进行操作系统的实验性研究。
作为主要的架构师,杜克需要提出新操作系统的架构设想。立项要求中,这个未来的操作系统需要具备高性能、高可靠性、高安全性、高伸缩性的四高特性,另外还要具有在通用平台下运行的能力,也就是说要兼容当前的主流硬件,包括时下主流的cpu/gpu/内存/硬盘/外设等等。
有了这么高的要求,杜克可以选择的最佳蓝本就是linux。只是linux虽然说是开源系统,但是正因为这样,任何基于linux的新改进都要求被公布于世,如果你想要公开进行商业使用推广的话,这个对于国家来说是不可接受的。
所以,新操作系统以linux作为蓝本是没有问题,但是在架构上却不能照搬照抄,否则就会侵犯其知识产权。
独立封装硬件操作核心是不可缺少的,杜克新开发的手机操作系统就是这么做的,只是手机操作系统是针对一个有限硬件平台的封闭式系统,大幅度减少了兼容性的考虑,所以效率很高。
但是这个新系统却不能这么搞,这样以后还得针对特定的硬件平台,这样的系统称为通用操作系统,杜克都不好意思说是自己参与研制的。所以独立封装硬件操作核心同新设备驱动之家的关系比较难处理。
开放第三方对于核心部分的读写,会产生比较严重的安全隐患,很多病毒都会模拟新设备驱动来对操作系统进行核心层面的操作。所以这个问题现在基本上是很难取舍的,windows为了兼容性不得不打开一道缺口,杜克原本也不知道该如何才能够避开这个问题。
直到克里虚拟成功泰坦ii,杜克才受到启发:将整个基本硬件看着一个完整封装好的内核,而外设都必须通过调用内核的sdk来开发驱动,实现外设同内核之间的数据交换和运算调用。这样,杜克就可以确保内核的安全。
相对于层出不穷的外设来说,内核需要针对的环境就非常有限了,cpu,主流的就俩三家,加起来虽然总数看起来也不少,可是真正有指令集变化的型号,总数超不过20种指令集!
但是毕竟都有限,如intel的通用桌面级cpu的指令集,截止到2014年,其中扩展指令集部分也不过是mmx,sse,sse2,sse3,ssse3,sse4.1,sse4.2,sse4.3,em64t等区区九种。
所以有了高端cpu模拟经验,克里要模拟相对低端的cpu,简直就没有多少难度,无非是消减性能和指令集支持。
杜克可以针对一款较高端的cpu开发出一中核心的处理应用,剩下的兼容性就将在这个核心应用上进行修订,根据不同的cpu进行指令集兼容性设计。
由于有了超级计算机操作系统作为基础,未来这款操作系统杜克初步考虑区分为桌面和服务器俩种型号。
服务器型号将支持现有超级计算机架构的海量内存和超多cpu集群,实现大型机同中型工作站的统一,对于很多应用来说,如数据库、web服务器、视频服务器等资源消耗应用可以在不改变程序的情况下就得到最大的兼容性。
而桌面型仍然将支持多逻辑cpu,只是数量将被控制在8路物理cpu,按照2014年主力cpu最多32核计算,就是256个逻辑cpu,这样就算是8路的小型工作站,也可以在这个系统上发挥得淋漓尽致。
整理了一下思路,杜克慢慢有了一个大概的结构划分。将这个思路传递给克里后,克里就在craylinux基础上精简出一款针对2路20核平台的新操作系统,开始验证杜克的想法。