标签:
最近linus提出并行技术不可行,我仔细的分析思考了汉澳sinox的并行技术,汉澳矩阵计算机逐渐清晰起来,并可能很快成为现实。
并行技术
并行是指在同一时刻,有多条指令在多个处理器上同时执行。
矩阵一般指阵列,2的N次方。2的10次方就是1024,这是因为数据处理是二进制。矩阵计算机可以理解为2的N次方个计算单元并行计算。
并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。
多个处理器,现在出现了一个处理器多个核心,相当于把很多单核处理器放在一起。有2核,4核,8核,64核。
现在个人计算机已经使用18核了。
矩阵计算机应该是有数百甚至数千个核心。现在的操作系统已经支持数百个内核了。
并行计算的核心思想是计算的分解,然后把分解的计算分配到单独核心执行。
现代操作系统利用cpu最小计算单位是线程,我们的并行计算实现就是把任务分解到线程,然后让操作系统执行,线程执行完成后就可以把处理结果归并计算,得到最后结果。
线程运行涉及到同步,共享,互斥等可以通过软件完成,我们不需要考虑到指令级并行。指令级并行是由cpu解决的,比如多指令流,乱序执行等。
并发是指在同一时刻,只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。
服务器软件处理大量请求,会有线程池来完成并发处理。并发是线程使用同一个核心交替执行。但是多核服务器上,不同的线程可能分到不同核心运行,实现并行。
普通程序要利用多核心并行计算的办法也是把任务分解成多线程。核心越多,线程越多计算越快。
汉澳矩阵计算机
矩阵计算是机拥有数百甚至数千核心的实现高速并行计算的计算机。
linus说电脑塞不入这么多核心,其实一个cpu可以放入很多核心,现在已经有几十核心的cpu!
而千核cpu已经开始研发了,千核处理器出现,也许开始很贵,但是后面可能跟现在cpu一样便宜。
汉澳矩阵计算机只要4个千核cpu就有4千个核心了。显然电脑体积不会变大,而百核手机体积也不会比现在手机大多少。
最初我设计的汉澳矩阵计算机是用八核cpu,需要100个cpu,确实让电脑变大,但是千核cpu出现,汉澳矩阵计算也不会变大。
矩阵操作系统
汉澳sinox64位操作系统,引入高性能高可靠文件存储系统zfs,加上操作系统虚拟机机jail,可以在一台机器上运行上百个虚拟操作系统,实现操作系统级并行计算。
zfs通过软件实现把几块硬盘组成raid磁盘阵列,这样某块盘损坏数据也不会丢失。
sinox坚如磐石高可靠网络处理,能满足高性能矩阵计算机需要,满足人工智能计算需要。
人工智能需要高速计算
现在人工作智能发展两个方向是无人机和无人驾驶技术。目前普通计算机计算速度是不够用的。
就说智能汽车吧,如果有100个视频输入,实现视频识别需要大量计算,目前普通计算机一般只能处理一个摄像头识别数据,超过10个估计应付不过来了。
100个需要10台普通计算机,显然汽车安装10台计算机是不可能的。但是千核计算机,可能就能处理上千个摄像头输入视频识别。这样高速计算机就能满足智能汽车计算需要。无人机摄像范围更大,几平方公里图像捕捉。目前老鹰的眼睛可以看到地面数千米远的动物,计算能力很强。除了视频处理,还有雷达数据处理,传感器数据处理,控制系统。
并行计算方法
1.多线程并行计算
线程利用cpu最小运算单位,理论上可以创建无限的线程,但是因为太多线程在一个cpu上切换太多花去很多开销,计算反而慢。因此操作系统有最大线程数量。
进程是一个可执行程序,可以有多个线程。因此进程数比线程数还少。如果说系统有1千个核心,系统运行少于1000个线程,他们是并发执行,如果运行超过1000个线程,就有2个进程占用同一个cpu核心,进入并发状态,需要切换线程。其实线程可能因为需要IO操作,可能还要等待,因此千核计算数据不一定提高1千倍。不过在程序设计中,单个应用程序在32位系统只能申请2G空间,64位Windows7的非分页内存最大应该是“75% of RAM up to a maximum of 128 GB“,可见内存也不是支持无线开线程的。
千核计算机应该配置2千G内存,相当于一个核心有2G内存。
并行进程比线程消耗资源大,不是推荐。
2.服务器软件实现线程池高速并发
目前web服务器apache扛不住一千并发线程,线程池也是有限的。但是通过服务器脚本语言进行并发计算,能大大提高计算速度。
通过服务器技术,把计算任务发送到多个服务器实现高速计算,类似分布式计算,不过利用脚本语言实现,可能也很麻烦,但是也能适用某些场合。
3.用并行计算服务器实现并行计算
一个应用程序,比如图像处理,有一百个摄像头接入,我们想知道有那个摄像头有人进出,然后报警。
我们可以用单个程序建立一千个线程来处理,只是不知道是否稳定。
如果建立并行服务器,把定义好的数据和算法发送到服务器运算,比如一个视频输入数据分成10份,计算算法是识别人像,发到并行服务器软件运行,采用类似服务器技术,只是发送的不是脚本,而是输入数据和算法代码,这代码可能是二进制,中间语言,也可能是某种脚本语言。这个计算比普通服务器计算更高效,返回数据也方便接收,直接返回到调用函数空间。因为数据都是在一个机器内存,传送会很快。
并行服务器可以建立在虚拟操作系统上,用jail技术实现,运行上百个虚拟操作系统,每个虚拟操作系统运行一个并行计算服务器,并行计算服务器又维护一个线程池,还可以计算雷达数据,传感器数据等。
汉澳sinox并行矩阵计算机
拥有上千核心的运行汉澳sinox操作系统高速并行计算的汉澳sinox并行矩阵计算机,将是人工智能的基础。
目前虽然大型机计算速度很快,但是并不太实用,因为太大了。跟pc机一样大小的汉澳矩阵计算机却可以进入百姓家。
汉澳sinox并行矩阵计算机,软件革命已经开始。
标签:
原文地址:http://blog.csdn.net/sinox2010p1/article/details/42641469