更新时间:2022-09-16 12:23
计算操作即指用户在电子设备上利用计算机进行的各领域的科学计算操作。操作系统是管理和控制计算机系统中软硬件资源的系统软件,计算机通过操作系统来为用户提供相关计算操作服务。
操作系统是管理和控制计算机系统中软硬件资源的系统软件。操作系统的发展主要有两条技术路线:
(1)单机操作系统。基于冯·诺依曼结构、以单机为单位的资源管理和程序运行平台。包括从最初的批处理系统,到后来的多道程序系统、分时系统和有网络功能的操作系统等。这类操作系统的典型代表有Windows,Linux,Symbian等。由于这类系统的资源管理以单机为单位,当应用需求增加时,其功能就会越来越复杂,系统程序就会越来越庞大,安全性降低。这导致用户操作复杂、管理维护困难。
(2)网络操作系统。这类操作系统以网络作为资源管理和程序运行的平台,大多是在单机操作系统基础上加上协议和管理软件构成。典型代表有Windows7、Android、ChromeOS等。与单机操作系统相比,网络操作系统具有前端功能轻载化、虚拟化、移动化和管理集中化等特点,方便了用户的管理和维护、提高了易用性和安全性。
但是,无论是单机操作系统,还是网络操作系统,它们都存在着系统过于复杂和庞大、不支持跨硬件和软件平台等问题。例如,支持桌面软件的操作系统一般不支持移动软件;支持Windows的应用软件也不能在Linux上运行。
透明计算是一种为用户提供服务的计算。其目标是在系统为用户提供服务时,让用户不用知道计算过程和实现细节,只需关心系统能否提供所需服务和服务质量。为了实现这一目标,透明计算通过网络把运算和存储分离,服务器存储操作系统、应用程序以及用户数据等软件资源,终端接近裸机,只存储最底层的BIOS和极少部分协议和管理程序。用户服务需要的操作系统和应用程序则通过本文后续的分布式超级操作系统(MetaOS)从服务器中以分块或以流的方式调度到终端上运行。由于操作系统、应用程序以及用户数据都存储在服务器上,终端是一个近乎裸机的运行平台,因此,终端可以做到多样、轻载、安全、易管理和维护。另外,网络服务器可以存储多种不同操作系统以及无数的应用程序,形成巨大的“云”,从而使用户可以自由地从网上跨软件和硬件平台获得所需服务。
透明计算的核心思想包括:(1)计算和存储分离;(2)提供跨终端、跨操作系统平台的操作和用户可选择的服务;(3)服务器和终端之间通过数据流和块调度交换指令,云计算的超级操作系统对整个网络资源进行一体化管理;(4)程序以流的方式被动态调度到指定的终端或服务器上执行。
这是一种由谷歌等公司于2008年首先提出的网络计算新模式。这种模式的主要特点在于通过网络,把原来在单台计算机中软件的运算和存储分开到用户终端机和网络服务器上完成。这种模式把主要软件(含网统程序、应用程序和数据)存储在网络上,而用户的终端机只负责和用户的交互以及获取服务,为用户提供服务的运算既可在网络上的某台计算服务器上完成,也可云计算正成为计算机研究和应用的热点。
单机操作系统只能管理单机的有限资源。现有的网络操作系统还只是在单机的基础上加上对网络的支持,因此它们不能为用户提供需要的主动服务。在云计算环境下,需要一种能够管理网络软硬件资源,并为用户提供服务的超级操作系统。为此,基于透明计算,设计了一种层次化、分布式内核的云计算操作系统TransOS。与单机和现有的网络操作系统相比,TransOS能够统一管理由各种异构终端、服务器、网络、以及传统操作系统等组成的网络化资源,并能主动为用户提供按需服务。
TransOS具有如下几个特点:
(1)将传统操作系统也作为一种资源进行管理TransOS管理的资源分为三类:第一类是指由终端(群)、服务器(群)和互联网络组成的硬件平台资源;第二类是指在上述硬件实体资源基础上,通过设备驱动和虚拟化,形成可供TransOS管理的虚拟化资源;第三类是软件/数据资源,包括传统操作系统、应用程序和数据等。因此,与传统操作系统只管理和调度应用程序和数据不同,在TransOS中,传统操作系统,如Linux,Windows等本身也是一个被管理和调度的对象。在用户进行选择后,相应的传统操作系统会被TransOS调度到用户终端上执行,完成用户所要求的计算任务。TransOS的任务就是统一管理和调度上述的三类资源,形成一个基于透明计算的云计算超级操作系统。
(2)分布式内核,动态调度运行
TransOS的内核分布在用户终端和服务器上。如图2所示,TransOS内核的很小一部分,驻留在终端BIOS上,其它内核部分则驻留在服务器上。需要注意的是,图2中只画出了一(终端)对一(服务器)的情形。在实际中,会存在多对多的情形。当终端启动后,驻留在BIOS中的TransOS内核部分负责获得终端控制权,并与服务器联系,获得系统运行所需要的更多内核代码,并动态以块流的方式加载到终端侧执行[10]。块流的含义是指每次只按需从网络服务器上获取一小部分代码或者数据块到终端上进行计算,如此循环反复,形成从网络服务器到终端的流。需要说明的是,TransOS上面支持的实例操作系统、应用程序以及数据等也都是以块流的方式被动态调度到终端侧执行。
(3)运行在BIOS之上,实例操作系统之下
如图2所示,TransOS通过EFI(ExtensibleFirmwareInterface)等标准接口实现对不同终端硬件架构,如x86、ARM、MIPS等的支持。TransOS在由BIOS负责启动运行后,会与服务器联系,将网络服务器能够支持的实例操作系统显示给终端用户进行选择。在用户选择后,再由它从服务器上以块流方式调度用户所选择的实例操作系统到终端上执行。
(4)分布式网络化资源的统一管理和调度
如图3所示,TransOS管理的是一个跨网络、跨终端和服务器平台的自治网络系统。为了能够统一管理分布在不同地方的网络软硬件资源,TransOS将其功能按照运行的地点,分为TransOS客户端和TransOS服务器端。TransOS客户端和服务器端通过协议通信,共同维护和管理分布在不同地点的网络软硬件资源,包括终端硬件、服务器硬件、网络、实例操作系统、应用程序及数据等,并按照用户需求,统一调度相关资源,以供用户使用。一般而言,TransOS客户端运行在用户终端设备上,而TransOS服务器端则运行在网络服务器上。
科学计算,指的是在计算机发明后利用计算机进行的科学领域的数值计算。科学计算问题大体上包括如下三个涵义:
科学计算领域主要包括气象预报、地质勘探、天体研究、基因研究、生命科学等,如果将工程设计也归类到广义的科学计算中,那么核武器模拟、航空航天设计、汽车设计、材料设计、药物筛选等都应属于科学计算应用。此类计算的特点在于大数据量的浮点运算,数值的变化范围广,属于典型的CPU密集型应用,其中部分同时属于I/0密集型。科学计算应用对计算平台的性能要求可以说是业界最高的,高速度、高精度、大容量存储和高自动化性能缺一不可。由以上特点决定,较大规模的科学计算往往需要在超级计算机上进行。
目前在曙光4000A超级计算机上运行的典型科学计算程序有用于气象预报的MM5和用于生物蛋白质计算的mpiBLAST等。另外,常用来对计算机系统进行科学计算性能评价的Linpack Benchmark和NAS Parallel Benchmark(NPB)等测试程序也属于此类应用。
大规模科学计算由于涉及到海量的数据,即便是在高性能的超级计算机上进行,完成一次完熬计算任务的时间往往也是要以周甚至月做单位。所以提高科学计算的性能一直是计算机学科的一个主要研究方向。提高科学计算性能可以从硬件和软件两方面实现。
从硬件角度提升科学计算性能的手段主要有:
1)提高单个处理器性能和内存带宽,降低内存访问延迟:
2)扩展并行规模,即增加处理器的数量和内存的容量;
3)提高并行通信硬件的带宽,缩小通信延迟。
对以CPU占用为主而几乎不需要各子进程间进行的计算密集型科学计算任务来说, 1)和2)有良好的效果。而当计算任务的颗粒度较细,各子进程问需要经常性的同步时,对系统整体性能影响最大的是通信子系统的效能,故31是最为有效的办法。但是无论如何,硬件更新换代的速度相对人们不断发展的科学计算要求,都是难以满足需要的,同时高昂的费用也不允许人们频繁的对硬件进行升级。并且,根据Amdahl定律,并行计算的整体效率随着并行节点数的增加而下降。所以,根据所用硬件和具体应用的特点,有针对性的对计算中使用的系统软件和应用软件进行优化,使硬件能够尽可能充分的发挥出效能,是至关重要的。
通过软件上的优化以提升计算性能的手段主要有:
1)重新编排应用软件自身,优化资源使用效率,降低串行执行部分在全部代码中所占的比例;
2)针对操作系统的资源管理算法进行优化,使管理策略更适合应用程序;
3)根据硬件的特点,针对操作系统和底层驱动程序进行优化,使软件能够充分利用硬件资源,尽量完全发挥出硬件的性能。
4)其中,从操作系统角度进行的优化具有适应面广、针对性强、入手点多和对应用程序透明等特点,广泛为研究人员所采用。