计算机系统结构大作业
计算机系统结构考试试题

计算机系统结构考试试题一、选择题(每题 2 分,共 40 分)1、以下关于计算机系统结构的说法中,错误的是()A 计算机系统结构是指计算机系统的软、硬件的界面B 计算机系统结构是对计算机系统中各级界面的定义及其上下的功能分配C 计算机系统结构是指计算机系统的概念性结构和功能特性D 计算机系统结构与计算机组成和计算机实现无关2、提高并行性的技术途径不包括()A 时间重叠B 资源重复C 资源共享D 增加指令3、指令流水线中出现数据相关时,通常采用的解决办法不包括()A 停顿B 分支预测C 数据旁路D 指令预取4、以下关于存储系统的说法中,正确的是()A Cache 是为了弥补主存速度的不足B 虚拟存储器是为了扩大主存容量C 相联存储器是按地址访问的D 主存是按内容访问的5、以下关于中断的说法中,错误的是()A 中断是指计算机在执行程序过程中,遇到突发事件而中断当前程序的执行B 中断响应的过程包括关中断、保存断点、识别中断源、保护现场等C 中断向量是中断服务程序的入口地址D 中断处理的过程包括恢复现场、开中断、返回原程序等6、以下关于总线的说法中,错误的是()A 总线是连接计算机各部件的公共信息传输线B 总线可以分为数据总线、地址总线和控制总线C 同步总线的传输效率高于异步总线D 总线的带宽等于总线的时钟频率乘以总线的宽度7、以下关于输入输出系统的说法中,正确的是()A 程序查询方式的效率最高B 中断方式需要 CPU 不断查询设备状态C DMA 方式可以直接在内存和外设之间传输数据D 通道方式的功能比 DMA 方式强大8、以下关于多处理机系统的说法中,错误的是()A 多处理机系统是指由两个或两个以上的处理机组成的计算机系统B 多处理机系统的并行性比单处理机系统高C 多处理机系统的通信方式包括共享存储器和消息传递D 多处理机系统的性能只取决于处理机的数量9、以下关于流水线的说法中,正确的是()A 流水线的段数越多,流水线的效率越高B 流水线的吞吐率与流水线的段数无关C 流水线的加速比等于流水线的段数D 流水线的效率与任务的类型有关10、以下关于 RISC 指令集的说法中,错误的是()A RISC 指令集的指令长度固定B RISC 指令集的指令格式种类少C RISC 指令集的寻址方式简单D RISC 指令集的指令功能强大11、以下关于 CISC 指令集的说法中,正确的是()A CISC 指令集的指令长度可变B CISC 指令集的指令格式种类多C CISC 指令集的寻址方式复杂D 以上都是12、以下关于超标量技术的说法中,错误的是()A 超标量技术是指在一个时钟周期内同时发射多条指令B 超标量技术可以提高指令的并行度C 超标量技术需要增加硬件的复杂度D 超标量技术可以在任何指令集架构上实现13、以下关于向量处理机的说法中,正确的是()A 向量处理机是专门用于处理向量数据的计算机B 向量处理机的运算速度比标量处理机快C 向量处理机的并行性主要体现在指令级并行D 以上都是14、以下关于存储层次的说法中,错误的是()A 存储层次的目的是为了提高存储系统的性能价格比B 存储层次的性能由命中率、访问时间和失效开销决定C 增加 Cache 的容量可以提高命中率D 降低主存的访问时间可以提高存储层次的性能15、以下关于虚拟存储器的说法中,正确的是()A 虚拟存储器的容量等于主存容量加上辅存容量B 虚拟存储器的页面大小是固定不变的C 虚拟存储器的地址转换是由硬件完成的D 虚拟存储器的页面替换算法对系统性能有很大影响16、以下关于多总线结构的说法中,错误的是()A 多总线结构可以提高系统的性能B 多总线结构可以增加系统的可靠性C 多总线结构可以减少系统的成本D 多总线结构可以提高系统的可扩展性17、以下关于 I/O 接口的说法中,正确的是()A I/O 接口是 CPU 与外设之间的桥梁B I/O 接口可以实现数据格式的转换C I/O 接口可以实现数据缓冲和锁存D 以上都是18、以下关于 DMA 控制器的说法中,错误的是()A DMA 控制器可以接管总线控制权B DMA 控制器可以在内存和外设之间直接传输数据C DMA 控制器可以减少 CPU 的干预D DMA 控制器可以提高系统的并行性19、以下关于通道的说法中,正确的是()A 通道是一种具有特殊功能的处理器B 通道可以实现对 I/O 设备的统一管理C 通道可以提高系统的 I/O 性能D 以上都是20、以下关于计算机系统性能评价的说法中,错误的是()A MIPS 是衡量计算机性能的常用指标之一B MFLOPS 是衡量浮点运算性能的指标C 基准测试程序可以用来评价计算机系统的性能D 计算机系统的性能只取决于硬件的性能二、填空题(每题 2 分,共 20 分)1、计算机系统结构的经典定义是由提出的。
计算机系统结构基本习题和答案

计算机系统结构基本习题和答案计算机系统结构基本习题和答案填空题1、从(使用语言的)角度可以将系统看成是按(功能)划分的多个机器级组成的层次结构。
2、计算机系统结构的层次结构由高到低分别为(应用语言机器级,高级语言机器级,汇编语言机器级,操作系统机器级,传统机器语言机器级,微程序机器级)。
3、应用程序语言经(应用程序包)的(翻译)成高级语言程序。
4、高级语言程序经(编译程序)的(翻译)成汇编语言程序。
5、汇编语言程序经(汇编程序)的(翻译)成机器语言程序。
6、在操作系统机器级,一般用机器语言程序(解释)作业控制语句。
7、传统机器语言机器级,是用(微指令程序)来(解释)机器指令。
8、微指令由(硬件)直接执行。
9、在计算机系统结构的层次结构中,机器被定义为(能存储和执行相应语言程序的算法和数据结构)的集合体。
10、目前M0由(硬件)实现,M1用(微程序(固件))实现,M2到M5大多用(软件)实现。
以(软件)为主实现的机器成为虚拟机。
(虚拟机)不一定全用软件实现,有些操作也可用(固件或硬件)实现。
11、透明指的是(客观存在的事物或属性从某个角度看不到),它带来的好处是(简化某级的设计),带来的不利是(无法控制)。
12、计算机系统结构也称(计算机体系结构),指的是(传统机器级的系统结构)。
它是(软件和硬件/固件)的交界面,是机器语言汇编语言程序设计者或编译程序设计者看到的(机器物理系统)的抽象。
13、计算机组成指的是(计算机系统结构的逻辑实现),包括(机器级内的数据流和控制流)的组成逻辑设计等。
计算机实现指的是(计算机组成的物理实现),它着眼于(器件)技术和(微组装)技术。
14、确定指令系统中是否要设乘法指令属于(计算机系统结构),乘法指令是用专门的高速乘法器实现还是用加法器实现属于(计算机组成),乘法器和加法-移位器的物理实现属于(计算机实现)。
15、主存容量与编址方式的确定属于(计算机系统结构),主存是否采用多体交叉属于(计算机组成),主存器件的选定属于(计算机实现)。
奥鹏作业《计算机系统结构》在线作业

20春《计算机系统结构》在线作业IBM370的I/O处理机采用的方式是 ( )
选项【A】:程序控制I/O方式
选项【B】:DMA方式
选项【C】:外围处理机方式
选项【D】:通道方式
正确选项:D
对计算机系统结构透明的是( )
选项【A】:机器级内部的数据流和控制流的组成
选项【B】:内存的最小编址单位
选项【C】:中断的分类与分级
选项【D】:信息保护方式和保护机构
正确选项:A
对于挂有输入机、打印机等低速设备的总线,最合适的数据宽度是( )选项【A】:定长块
选项【B】:单字(单字节)
选项【C】:可变长块
选项【D】:单字加定长块
正确选项:B
一条计算机指令中规定其执行功能的部分称为()
选项【A】:源地址码
选项【B】:操作码
选项【C】:目标地址码
选项【D】:数据码
正确选项:B
通道方式输入输出系统中,对优先级高的磁盘等高速设备,适合于连接 ( )。
计算机系统结构作业答案

计算机系统结构计算机系统结构作业1第1章计算机系统结构的基本概念一、解释下列术语:计算机系统结构;计算机组成;计算机实现;透明性;系列机;软件兼容;兼容机;模拟;仿真;虚拟机;宿主机;Amdahl定律;CPI;MIPS;MFLOPS。
【答案】计算机系统结构、计算机组成和计算机实现是三个不同的概念。
系统结构定义为由程序设计者所看到的一个计算机系统的属性,即概念性结构和功能特性,这里的程序设计者所看到的计算机属性是指为机器语言或编译程序设计者所看到的计算机属性,是硬件子系统的概念性结构及其功能特性,它是计算机系统的软、硬件的界面。
计算机组成是计算机系统结构的逻辑实现,包括机器内部的数据流和控制流的组成以及逻辑设计等。
计算机实现是指计算机组成的物理实现。
透明性:在计算机技术中,一种本来是存在的事物或属性,但从某种角度看似乎不存在,成为透明性现象。
所谓系列机是指在一个厂家内生产的具有相同的系统结构,但具有不同组成和实现的一系列不同型号的机器。
不同公司厂家生产的具有相同系统结构的计算机称为兼容机。
软件兼容:在新的计算机系统出台后,原先已开发的软件仍能继续在升档换代的新型号机器上使用,这就是软件兼容。
系列机方法能够在具有相同系统结构的各种机器之间实现软件移植,为了实现软件在不同系统结构的机器之间的相互移植,可以采用模拟和仿真。
模拟方法是指用软件方法在一台现有的计算机上实现另一台计算机的指令系统。
仿真是指用微程序直接解释另一种机器指令系统的方法。
虚拟机是被模拟的机器;宿主机是进行模拟的机器。
Amdahl 定律:系统中某一部件由于采用某种更快的执行方式后整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关。
Fe=(改进前可改进部分占用的时间)/(改进前整个任务的执行时间) Se=(改进前可改进部分的执行时间)/(改进后改进部分的执行时间) 则,改进后整个系统加速比为ee e n S F F s /)1(1+-=。
计算机系统结构习题

计算机系统结构习题第一章1. 计算机系统的多级层次结构从上到下的顺序分别是、、、、、。
2. 以往对计算机系统的设计方法有设计和设计,它们分别适用于设计和设计。
3. 研究计算机系统结构的重点是,其主要目的是。
4. 计算机系统的3T性能目标是、、。
5. 以软件为主实现的机器为,由硬件或固件实现的是。
6. 解决软件可移植的办法有、、和。
7. 计算机中的两种信息流是和,计算机系统按流分类可分为、、和。
8. 计算机系统结构主要指。
9. 为了提高CPU的利用率,有效的途径是、、、。
10. 计算机系统的主要软、硬件交界面特性包括、、、、。
11.在系统结构设计中,提高软件功能实现的比例会( )。
A、提高解题速度B、减少需要的存贮容量C、提高系统的灵活性D、提高系统的性能价格比12.对计算机系统结构透明的是( )。
A、数据表示B、是否使用通道型I/O处理机C、虚拟存贮器D、VLSI技术(Very large scale integration)13.对汇编语言程序员透明的是( )。
A、I/O方式中的DMA访问方式B、浮点数据表示C、信息保护方式D、程序性中断14.系列机软件应做到( )。
A、向前兼容,并向上兼容B、向后兼容,力争向上兼容C、向前兼容,并向下兼容D、向后兼容,力争向下兼容15.推出系列机的新机器,不能更改的是( )。
A、原有指令的寻址方式和操作码B、系统总线的组成C、数据通路宽度D、存贮芯片的集成度16.不同系列的机器之间,实现软件移植的途径不包括( )。
A、用统一的高级语言B、用统一的汇编语言C、模拟D、仿真17.在计算机系统的多级层次结构中,单条指令执行速度最快的一级是()。
A、L5(应用语言)级B、L2(操作系统)级C、L1(机器语言)级D、L0(微程序)级18.在计算机系统的多级层次结构中,单条指令功能最强的一级是()。
A、L5(应用语言)级B、L2(操作系统)级C、L1(机器语言)级D、L0(微程序)级19.简述计算机系统设计中软硬件取舍3原则。
重庆大学2020年春季学期课程作业计算机系统结构

答案+我名字2020年春季学期课程作业计算机系统结构第1次计算机系统结构题号一二三合计已做/题量0 / 100 / 200 / 100 / 40得分/分值0 / 200 / 400 / 400 / 100一、判断题(共10 题、0 / 20 分)1、基本程序块是指一段除了入口和出口以外不包含其他分支的线性代码段。
正确错误收藏该题2、在编译时对分支准确预测有助于对数据冲突的调度。
正确错误收藏该题3、MPP的每个计算单元也是相对独立,拥有自己的资源以及系统。
正确错误收藏该题4、计算机系统为改善CPU与处理器之间的速度匹配问题,在CPU和主存储器之间加入一个高速、小容量的缓冲存储器Cache,构成Cache-主存储器的存储系统。
正确错误收藏该题5、程序在执行过程中的地址流分布情况,其中地址流的分布情况是由程序本身决定的。
正确错误收藏该题6、在串行I/O无法满足性能需求的情况,通过多个I/O通道并行访问多个磁盘的方法就成了很自然的想法,即并行I/O技术。
正确错误收藏该题7、在数据表示上,高级语言与机器语言不存在语义差异。
正确错误收藏该题8、控制相关是指因为程序的执行方向可能被改变而引起的相关。
正确错误收藏该题9、在并行性概念中引入空间因素,通过重复设置硬件资源,可以大幅度提高并行处理能力。
正确错误收藏该题10、冯•诺依曼机由运算器、控制器、存储器和输入/输出设备组成。
正确错误收藏该题二、单项选择题(共20 题、0 / 40 分)1、由于字长限制,浮点数表示方式所能表示的浮点数个数是有限的、不连续的,可表示的规格化浮点数的个数应该是可表示的()的个数的与可表示的尾数的个数的乘积。
A、阶码B、补码C、原码D、机器码收藏该题2、CPU在执行写操作时,把数据同时写入Cache和主存指的是()。
A、写直达法B、写回法C、抵触修改法收藏该题3、地址空间可分为()。
A、虚拟地址空间B、主存储器地址空间C、辅存地址空间D、全部都正确收藏该题4、()把主存储器和Cache按同样大小划分成块,再将主存储器和Cache按同样大小划分成组,每一组由相同的块数组成,然后将主存储器按Cache大小分成区,主存储器每个区的组数与Cache的组数相同。
计算机系统结构试题及答案大全

4.0001
5.1011
6.1010
7.1001
8.1000
9.00001
10.00000
c)扩展编码
1.00
2.01
3.10
4.11000
5.11001
6.11010
7.11011
8.11100
9.11101
10.11110
五、计算(共25分)
在一个5段的流水线处理机上需经9拍才能完成一个任务,其预约表为:
3.试述分页式虚拟存储器与分段式虚拟Байду номын сангаас储器的含义和区别。
页式管理:页式虚拟存储器把虚拟地址空间划分成一个个固定大小的块,每块称为一页,把主存储器的地址空间也按虚拟地址空间同样的大小划分为页。页是一种逻辑上的划分,它可以由系统软件任意指定。虚拟地址空间中的页称为虚页,主存地址空间中的页称为实页。每个用户使用一个基址寄存器(在CPU内),通过用户号U可以直接找到与这个用户程序相对应的基址寄存器,从这个基址寄存器中读出页表起始地址。访问这个页表地址,把得到的主存页号p与虚地址中的页内偏移直接拼接起来得到主存实地址。地址映象:是将每个虚存单元按某种规则(算法)装入(定位于)实存,即建立多用户虚地址Ns与实存地址np之间的对应关系。地址变换:是程序按照这种映象关系装入实存后,在执行时,多用户虚地址Ns如何变换成对应的是地址np。页面争用(实页冲突):发生两个以上的虚页想要进入主存中同一个页面位置的现象。1.试推导并行主存的主存频宽与模体数、转移概率的关系表达式。
4.冯•诺依曼型计算机的设计思想是存储程序并按地址顺序执行,它的主要组成部分包括:运算器、(B)、控制器适配器与I/O设备。
A.寄存器B.存储器C.缓冲器D.译码器
《计算机系统结构》及参考答案精选全文完整版

可编辑修改精选全文完整版《计算机系统结构》练习题一一、单项选择题1.页式虚拟存储器的地址变换对于 D 是透明的.A. 操作系统设计者B. 任何程序员C. 系统结构设计者D. 应用程序员2.以下各类中断中,属于自愿中断的是 C .A. 外部中断B. I/O中断C. 执行“访管”指令D. 机器校验中断3. 高速外部设备磁盘机适合连接于 C .4. 页式虚拟存储器页表的作用是 A .A. 反映虚页在主存的存储情况B. 仅反映虚页是否调入主存C. 反映主存实页与Cache的对应关系D. 反映虚页在辅存的存储情况5.软件和硬件的功能在逻辑上是 C 的.D.软件优于固件6. 计算机中最优化的操作码编码方法是 D .码码C.扩展操作码 D.哈夫曼编码7. 从计算机系统执行程序的角度看,并行性等级由低到高分为四级 A .A.指令内部——指令之间——进程之间——程序之间B.指令之间——指令内部——进程之间——程序之间C.进程之间——指令之间——指令内部——程序之间D.程序之间——进程之间——指令之间——指令内部8. 计算机系统多级层次结构中,操作系统机器级的直接上层是 D .A.传统机器级B.高级语言机器C.应用语言机器级D.汇编语言机器级9.全相联地址映像是指 A .A.任何虚页都可装入主存中任何实页的位置B.一个虚页只装进固定的主存实页位置C.组之间是固定的,而组内任何虚页可以装入任何实页位置D.组间可任意装入,组内是固定装入10.对于同一系列机,必须保证软件能够 C .A.向前兼容,并向上兼容B.向前兼容,并向下兼容C.向后兼容,力争向上兼容D.向后兼容,力争向下兼容11.设有16个处理单元的并行处理机系统, 采用共享主存的方式. 若同时存取16个数据, 为避免存储器访问冲突, 共享主存的多体数量应该为 C 才合理.A. 15B. 16C. 17D. 1912. 软件兼容的根本特征是 C .A. 向前兼容B. 向后兼容C. 向上兼容D. 向下兼容13.在下列机器中,能够实现软件兼容的机器是 B .A. 完全不同种类的机型B. 系统结构相同的机器C. 宿主机和目标机D. 虚拟机14.输入输出系统硬件的功能对 C 是透明的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机系统结构》大作业介绍并行算法与并行程序设计及它们的不足及发展趋势专业计算机科学与技术(软件工程方向)指导教师蔡启先班级学号姓名日期 2013年6月广西科技大学计算机学院介绍并行算法与并行程序设计及它们的不足及发展趋势摘要:并行算法是并行计算中非常重要的问题。
这篇报告首先简要介绍并行计算,然后主要讨论并行算法研究中的问题和今后的方向,最后阐述并行计算研究中存在的问题以及今后面临的挑战。
并行算法研究应该确立一个“理论-设计-实现-应用”的系统方法,形成一个完善的“架构—算法—编程”方法论,这样才能保证并行算法不断发展并变得更加实用。
再结合例子进而介绍并行算法的基本原理,给并行算法下一个基本的定义,对并行算法进行了相关的介绍;接着根据目前并行算法的应用,提出了在计算机系统结构中以并行算法为基础的一些并行程序设计的应用,比较了目前流行的并行程序设计的方法,并通过比较指出它的不足以及并行程序设计在未来的发展趋势和前景。
关键词:计算机系统结构并行算法并行程序设计引言并行计算机从70年代的开始,到80年代蓬勃发展和百家争鸣,再到90年代体系结构框架趋于统一,近年来其快速发展,并行机技术日趋成熟。
首先是市场的需求,一直是推动并行计算机发展的主要动力,大量实际应用部门,如天气预报、核武器、石油勘探、地震数据处理、飞行器数值模拟以及其他大型事务处理等,都需要每秒执行数十万亿次乃至数百万亿此浮点运算的计算机,基于这些应用问题本身的限制,并行计算是满足它们的唯一可行途径。
使用多计算机进行并行程序设计,它们之间的通信是通过发送消息来完成的,所以消息传递需要并行程序设计。
并行程序设计使用多计算机或多个内部处理器的计算机来求解问题,它比使用单台计算机的计算速度要快得多。
并行程序设计也为求解更大规模的问题提供了机会,前面所述问题需要更多的计算步或更大存储容量需求,并行程序设计以并行算法为核心,能满足这要求,因为多计算机和多处理机系统通常比单计算机有更大的总存储容量。
并行算法是一门还没有发展成熟的学科,虽然人们已经总结出了相当多的经验,但是远远不及串行算法那样丰富。
并行算法设计中最常用的的方法是PCAM方法,即划分,通信,组合,映射。
首先划分,就是将一个问题平均划分成若干份,并让各个处理器去同时执行;通信阶段,就是要分析执行过程中所要交换的数据和任务的协调情况,而组合则是要求将较小的问题组合到一起以提高性能和减少任务开销,映射则是要将任务分配到每一个处理器上。
总之,并行算法还需要相当多完善的地方。
并行算法与串行算法最大的不同之处在于,并行算法不仅要考虑问题本身,而且还要考虑所使用的并行模型,网络连接等等。
并行算法是并行计算中非常重要的问题。
并法研究应该确立一个“理论-设计-实现-应用”的系统方法,形成一个完善的“架构—算法—编程”方法论,这样才能保证并行算法不断发展并变得更加实用。
简单的说,算法就是求解问题的方法和步骤。
并行算法,就是在并行机上用很多个处理器联合求解问题的方法和步骤。
实际上,在自然界中并行是客观存在的普遍现象,关键问题在于能不能很好的利用。
由于人们的思维能力以及思考问题的方法对并行不太习惯,且并行算法理论不成熟,所以总是出现了需求再来研究算法,不具有导向性,同时实现并行算法的并行程序性能较差,往往满足不了人们的需求。
并行算法的研究历史可简单归纳为:上世纪70到80年代,并行算法研究处于高潮;到上世纪90年代跌入低谷;目前,又处于研究的热点阶段。
现在,人们已经可以自己搭建PC cluster,利用学习到的理论知识来解决实际问题,不再是纸上谈兵,这也为我们提供了新的机遇和挑战。
并行计算模型并行算法作为一门学科,首先研究的是并行计算模型。
并行计算模型是算法设计者与体系结构研究者之间的一个桥梁,是并行算法设计和分析的基础。
它屏蔽了并行机之间的差异,从并行机中抽取若干个能反映计算特性的可计算或可测量的参数,并按照模型所定义的计算行为构造成本函数,以此进行算法的复杂度分析。
并行计算模型的第一代是共享存储模型,如SIMD-SM和MIMD-SM的一些计算模型,模型参数主要是UPU的单位计算时间,这样科学家可以忽略一些细节,集中精力设计算法。
第二代是分布存储模型。
在这个阶段,人们逐渐意识到对并行计算机性能带来影响的不仅仅是CPU,还有通信。
因此如何把不同的通信性能抽象成模型参数,是这个阶段的研究重点。
第三代是分布共享存储模型,也是我们目前研究所处的阶段。
随着网络技术的发展,通信延迟固然还有影响,但对并行带来的影响不再像当年那样重要,注重计算系统的多层次存储特性的影响。
设计技术并行算法研究的第二部分是并行算法的设计技术。
虽然并行算法研究还不是太成熟,但并行算法的设计依然是有章可循的,例如划分法、分治法、平衡树法、倍增法/指针跳跃法、流水线法破对称法等都是常用的设计并行算法的方法。
另外人们还可以根据问题的特性来选择适合的设计方法。
并行算法分为多机并行和多线程并行。
多机并行,如MPI技术;多线程并行,如OpenMP技术。
并行计算的特点:a将工作分离成离散部分,有助于同时解决;b随时并及时地执行多个程序指令;c多计算资源下解决问题的耗时要少于单个计算资源下的耗时。
并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和空间上的并行。
时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。
并行计算机的分类:Flynn分类法(行为特征)并行程序设计比顺序程序设计要困难得多,一是因为并行程序设计的平台不是唯一的,存在多种不同的并行体系结构,而顺序程序设计只有唯一的冯·诺依曼体系结构;二是因为并行程序有多个进程或线程在同时运行,它们之间往往需要进行通信和同步,这就使并行程序设计变得复杂,特别是在要获得线性加速比时尤为如此;三是因为并行程序设计没有顺序程序设计中如C及Java那样通用和普及的并行程序设计语言,因此只能针对不同的体系结构选择使用不同的并行语言或例程库,例如对于共享地址空间的体系结构就必须选择如OpenMP、Java Threads或POSIX Threads那样的语言,而对于分布地址空间的体系结构就不得不选择如MPI或PVM那样的例程库语言。
目前流行的并行程序设计方法:隐式并行程序设计:常用传统的语言编程成顺序源编码,把“并行”交给编译器实现自动并行程序的自动并行化是一个理想目标,存在难以克服的困难语言容易,编译器难;显式并行程序设计:在用户程序中出现“并行”的调度语句显式的并行程序开发则是解决并行程序开发困难的切实可行的,语言难,编译器容易。
接下来具体介绍一下目前流行的MPI并行程序设计方法:传统的串行计算,分为“指令”和“数据”两个部分,并在程序执行时“独立地申请和占有”内存空间,且所有计算均局限于该内存空间。
并行计算将进程相对独立的分配于不同的节点上,由各自独立的操作系统调度,享有独立的CPU和内存资源(内存可以共享);通过网络联接的不同计算机的多个进程,进程位于不同的计算机,消息传递是实现进程间通信的唯一方式;消息传递的实现是基于网络socket机制,用户不必关心;进程间可以相互交换信息如数据交换、同步等待,消息是这些交换信息的基本单位。
消息传递操作有发送消息(send)、接受消息(receive)、进程同步(barrier)、规约(reduction);根据应用程序对消息传递功能的需求,全球工业、应用和研究部门联合推出标准的消息传递界面函数,不考虑其具体实现,以保证并行应用程序的可移植性在当前所有的消息传递软件中,最重要最流行的是MPI,MPI 表示消息传递接1:1(Message Passing Interface),它能运行在所有的并行平台上,包括SMP和PVP。
二者已经在Windows NT和Windows 9X这样的非Unix平台上实现,程序设计语言支持C,Fortran和Java。
在国产的三大并行机系列神威、银河和曙光上都实现了对MPI和支持。
MPI标准化涉及到大约60个国家的人们,他们主要来自于美国和欧洲的40个组织,这包括并行计算机的多数主要生产商,还有来自大学、政府实验室和工厂的研究者们。
MPI的目的是为编写消息传递程序而开发的广范使用的标准。
象这个接口一样,为消息传递建立一个实际的、可移植的、有效的和灵活的标准。
目标如下:①设计一个应用编程接口(不必为编译器或一个系统实现库)。
②允许有效的通信:避免存储器到存储器的拷贝,而允许计算和通信的重叠,尽可能给通信协同处理器卸载。
③对于接口允许方便的C语言和Fortran 77联接。
④设定一个可靠的通信接口:用户不必处理通信失败。
这些失败由基本的通信子系统处理。
⑤定义一个接口,并非不同于现在的实践,如:PVM.NX,Express,p4等,还提供更大灵活性的扩展。
⑥定义一个接IZl,它能在基本的通信和系统软件无重大改变时,在许多生产商的平台上实现。
接IZl的语义是独立于语言的。
⑦接口应设计成允许线索一安全(thread—safety)。
目前并行程序设计的不足:a并行软件的发展落后于并行硬件;b 和串行系统的应用软件相比,现今的并行系统应用软件甚少且不成熟;b并行软件的缺乏是发展并行计算的主要障碍;d而且这种状态仍在继续。
其原因是:a并行程序设计不但包含了串行程序设计,而且还包含了更多的富有挑战性的问题;b串行程序设计仅有一个普遍被接受的冯*诺依曼模型,而并行计算模型虽有好多,但没有一个被共同认可;c并行程序设计对环境工具的要求远比串行程序设计先进得多;d串行程序设计比较适合于自然习惯,且人们在过去积累了大量的编程知识和宝贵的软件财富。
至今并行算法范例不能被很好地理解和广泛地接受;并行程序设计是建立在不同的计算模型上的,而它们没有能像冯.诺依曼模型那样被普遍接受和认可。
发展趋势及应用前景:一直以来并行计算的应用均展现了其高端性, 多用于大型的科学计算领域. 随着互联网的飞速发展和多核技术的出现, 并行计算开始向低端的个人高性能机领域发展, 即所谓的桌面应用.它使得普通用户也可能要面对并发和并行操作, 这些通常是并行计算专业人员和高端用户才需要面对的问题. 以下就相关的并行计算应用加以简述. 首先, 计算密集型的应用依然是并行计算的主要方面. 并行计算在科研方面的主要应用包括以下几个领域: 计算生物学、计算化学、计算流体动力学、飞行动力学、计算机辅助设计、数据库管理、油藏建模、中长期天气预报、海洋环流和求解N-body问题等以及面向应用的大型科学与工程问题的并行数值计算, 诸如求解大型稀疏方程组、大型非线性方程和有限元分析等. 在交叉学科中出现了一些非传统计算方式, 例如分子计算和量子计算等. 这些计算本身包含着巨大的并行度, 超出了传统的计算模式, 但目前都还处于研究探索阶段. 相信在可预期的未来, 高性能计算依然是处理大规模科学计算的重要工具:1) 随着并行计算的最新发展, 新型的以数据密集为特征的并行应用也日益成为主流。