您的位置:首页 > 大数据 > 人工智能

jail技术帮助汉澳sinox快速打造成矩阵操作系统,迎接matrix矩阵电脑时代

2014-09-12 17:29 513 查看
 矩阵操作系统最大的特点是并行计算,就是并行运行计算应用程序。

其实普通pc操作系统也是可以实现并行计算的,采用多进程多线程并行计算,但是pc操作系统不支持太多的进程,否则可能切换不过来。操作系统最大进程数可能是512.

显然要变成矩阵电脑,不是512进程,而是上万个,无限扩大并行运行进程数估计行不通。

 

并行运行操作系统是矩阵操作系统另一个重要特点

如果一个操作系统运行512个进程,100个同时运行的操作系统就能运行超过5万个进程,计算速度急剧膨胀,计算能力涨了100倍。

当然操作系统之间交互也要花去一些开销,但是对5万个并发进程来说可以忽略不计。假如一个进程处理一个网页服务,普通机器能服务器512个用户,矩阵电脑就能同时服务5万个用户,显示出矩阵操作系统的巨大计算处理能力。

 

汉澳sinox2014引入的jail技术并行运行多个操作系统正是矩阵操作系统的特征

 

jail技术能让汉澳主机同时运行多个sinox操作系统副本,每个副本是独立的操作系统,互不干扰,并发运行。以前我在研究矩阵操作系统的时候认为目前没有可以并发运行多个操作系统的电脑,最近研究jail技术,竟发现汉澳sinox可以并发运行多个操作系统,采用操作系统虚拟技术,在sinox主机上运行几百个操作系统副本,副本和主机操作系统还能有一定的交互。由于主机和副本操作系统是同一个,访问同样的硬件,从主机往副本派发任务应该比较容易。跟虚拟机相比,jail副本消耗资源少,更方便交互,适合派发任务。虚拟机(virtualbox运行)是完全的独立的机器,只能进行分布式计算,而不是并发计算。通过对jail进行适当改进,很容易把sinox变成矩阵操作系统。

汉澳sinox对cpu,对称多处理器smp支持是很好的,如果在主板上插上100个cpu,256G内存,那么性能会不会极速放大呢?不会,因为操作系统只能运行512个进程,一个程序运行很难利用到这么多cpu和内存,目前进程程序很难有100个线程,使用内存也是很难超过4G。如果使用jail同时运行100个虚拟操作系统副本,可以同时运行5万个进程。不过操作系统对cpu分配是否能把虚拟操作系统计算均匀分配到100个CPU呢?

以前我构思矩阵电脑主要源于大型机技术,采用大量计算单元并发运行,在并发单元上运行操作系统。这个可能难度很大,为了更快实现矩阵电脑,我觉得可以适当改进sinox进程调度,把虚拟操作系统副本均匀分配到每个cpu.并且把固定的内存分配给每个cpu,这样相当于每个操作系统获得了一个计算单元,而不是像现在由主机随即分配内存。当然随机分配内存可能对计算影响不大,可以不用改进。不管怎么说,只要现在汉澳 sinox没有能够均匀分配计算到每个cpu,就有改进的潜力。

汉澳sinox对多cpu多核处理得很好,以核心为单位进行cpu分配。从sinox系统监视器可以看到E3CPU有8个核心,其实intel说是4核,8个逻辑核心。如果有2个E3,系统监视器应该看到16个核心,以此类推,100个E3就有800个核心。如果运行100个jail的操作系统副本,计算能力能否均匀分配到800个核心呢?我们来看sinox进程调度策略。

ULE调度器为每一个CPU单独维护运行队列,并且,CPU之间能够相互“窃取”对方就绪队列中的任务,从而达到更好的平衡。基本上,ULE调度器的设计符合下面的原则:尽可能利用更多的执行资源,尽可能使用局部锁,尽可能避免使用浪费执行资源的自旋锁,尽可能采用高效的调度算法(目前ULE调度器采用的算法的复杂度是O(1))。

我认为cpu分配应该很均匀,暂时不用改进。100个操作系统副本现在很均匀的运行在sinox主机上。文件系统用zfs高可靠存储系统。现在要打造一个高并发处理服务器。

用户处理可能最大的是数据库查询,我们分配30个操作系统副本运行数据库服务器,20个apache网页服务器,10个ftp下载,10个email服务器,10个即时通信服务器,剩下20个根据负载均衡适当分配做服务器,从而达到最佳处理能力,满足5万个用户同时并发访问。

 

进程级并发计算不是矩阵电脑的终点

上面并发运行30个数据服务器,但是都是在进程级并发计算,或者说是线程级的。不过对于网页访问用户访问内容千差万别,一个用户访问再切割成多个并发计算,可能不必要,可以优化用户访问,只有巨大计算才需要程序级的并发访问,比如大数据,可以用数据库查询实现并发访问。但是对于天气预报图像数据处理,估计一个进程处理不知道要到猴年马月,即时512个进程也不够,可以对数据处理分割成5万份发到100个操作系统副本通过脚本启动计算程序高速计算,这种计算通过100台计算机分布式计算也能实现,不过维护100台电脑比维护一台电脑要困难和麻烦多了。

不过这种计算仍然停留在进程级并发,能不能一个程序运行后自动把任务分配到100个操作系统副本运行结束后再返回?这样获得极快的响应速度。不过这都是基于计算不够快

 ,我们要计算更快,那么程序也是比较专用的,不是那么通用,我们切割计算任务并分配到其他操作系统副本运行,我们可以写这样的程序,但是应该不是通用的,每种计算方法可能对任务分配的要求也不同。比如大数据查询,可能用数据库sql实现,大数据加密解密,如何分配加解密算法呢?大图像处理,可能有多种算法,分割方法也不同,针对不同算法任务派发也可能不同,但是把任务派发到操作系统副本绝不是难事,可以用脚本自动实现,绝对没有发往100台电脑那么难!我想并发计算任务派发可能多种多样,一个程序执行,采用类似大型机分配任务,也只能适用某些计算任务,并不能做到万能。

但是为了满足多种多样的计算,目前通过jail运行的多操作系统并发运行,完全满足一个矩阵电脑并发计算的需要。从这个意义上说,汉澳sinox已经是一个矩阵操作系统,能够实现高速并发计算,打造强大的电脑。我想作为真正矩阵电脑,只要不断往电脑主板插入更多的cpu和内存,汉澳snox总是能充分利用所有的cpu和内存,而计算能力总是急速膨胀。我们也可以写一个程序,利用100个cpu同时计算,并不需要分派到100个操作系统副本,当然随着矩阵电脑普及,这样的开发工具会出现。

更多的用户使用汉澳sinox运行矩阵电脑,我们的电脑计算能力会提升上百倍, matrix矩阵电脑时代会带到来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: