A. 计算机体系结构的技术革新
计算机体系结构以图灵机理论为基础,属于冯·诺依曼体系结构。本质上,图灵机理论和冯·诺依曼体系结构是一维串行的,而多核处理器则属于分布式离散的并行结构,需要解决二者的不匹配问题。
首先,串行的图灵机模型和物理上分布实现的多核处理器的匹配问题。图灵机模型意味着串行的编程模型。串行程序很难利用物理上分布实现的多个处理器核获得性能加速.与此同时,并行编程模型并没有获得很好的推广,仅仅局限在科学计算等有限的领域.研究者应该寻求合适的机制来实现串行的图灵机模型和物理上分布实现的多核处理器的匹配问题或缩小二者之间的差距,解决“并行程序编程困难,串行程序加速小”的问题。
在支持多线程并行应用方面,未来多核处理器应该从如下两个方向加以考虑。第一是引入新的能够更好的能够表示并行性的编程模型。由于新的编程模型支持编程者明确表示程序的并行性,因此可以极大的提升性能。比如Cell处理器提供不同的编程模型用于支持不同的应用。其难点在于如何有效推广该编程模型以及如何解决兼容性的问题。第二类方向是提供更好的硬件支持以减少并行编程的复杂性。并行程序往往需要利用锁机制实现对临界资源的同步、互斥操作,编程者必须慎重确定加锁的位置,因为保守的加锁策略限制了程序的性能,而精确的加锁策略大大增加了编程的复杂度。一些研究在此方面做了有效的探索。比如,SpeculativeLockElision机制允许在没有冲突的情况下忽略程序执行的锁操作,因而在降低编程复杂度的同时兼顾了并行程序执行的性能。这样的机制使得编程者集中精力考虑程序的正确性问题,而无须过多地考虑程序的执行性能。更激进的,(TCC)机制以多个访存操作(Transaction)为单位考虑数据一致性问题,进一步简化了并行编程的复杂度。
主流的商业多核处理器主要针对并行应用,如何利用多核加速串行程序仍然是一个值得关注的问题。其关键技术在于利用软件或硬件自动地从串新程序中派生出能够在多核处理器上并行执行的代码或线程。多核加速串行程序主要有三种方法,包括并行编译器、推测多线程以及基于线程的预取机制等。在传统并行编译中,编译器需要花费很大的精力来保证拟划分线程之间不存在数据依赖关系。编译时存在大量模糊依赖,尤其是在允许使用指针(如C程序)的情况下,编译器不得不采用保守策略来保证程序执行的正确性。这大大限制了串行程序可以挖掘的并发程度,也决定了并行编译器只能在狭窄范围使用。为解决这些问题,人们提出推测多线程以及基于线程的预取机制等。然而,从这种概念提出到现在为止,这个方向的研究大部分局限于学术界,仅有个别商业化处理器应用了这种技术,并且仅仅局限于特殊的应用领域。我们认为动态优化技术和推测多线程(包括基于线程的预取机制)的结合是未来的可能发展趋势。
冯·诺依曼体系结构的一维地址空间和多核处理器的多维访存层次的匹配问题。本质上,冯·诺依曼体系结构采用了一维地址空间。由于不均匀的数据访问延迟和同一数据在多个处理器核上的不同拷贝导致了数据一致性问题。该领域的研究分为两大类:一类研究主要是引入新的访存层次。新的访存层次可能采用一维分布式实现方式。典型的例子是增加分布式统一编址的寄存器网络。全局统一编址的特性避免了数据一致性地考虑。同时,相比于传统的大容量cache访问,寄存器又能提供更快的访问速度。TRIPS和RAW都有实现了类似得寄存器网络。另外,新的访存层次也可以是私有的形式。比如每个处理器和都有自己私有的访存空间。其好处是更好的划分了数据存储空间,已洗局部私有数据没有必要考虑数据一致性问题。比如Cell处理器为每个SPE核设置了私有的数据缓冲区。另一类研究主要涉及研制新的cache一致性协议。其重要趋势是放松正确性和性能的关系。比如推测Cache协议在数据一致性未得到确认之前就推测执行相关指令,从而减少了长迟访存操作对流水线的影响。此外,TokenCoherence和TCC也采用了类似的思想。程序的多样性和单一的体系结构的匹配问题。未来的应用展现出多样性的特点。一方面,处理器的评估不仅仅局限于性能,也包括可靠性,安全性等其他指标。另一方面,即便考虑仅仅追求性能的提高,不同的应用程序也蕴含了不同层次的并行性。应用的多样性驱使未来的处理器具有可配置、灵活的体系结构。TRIPS在这方面作了富有成效的探索,比如其处理器核和片上存储系统均有可配置的能力,从而使得TRIPS能够同时挖掘指令级并行性、数据级并行性及指令级并行性。
多核和Cell等新型处理结构的出现不仅是处理器架构历史上具有里程碑式的事件,对传统以来的计算模式和计算机体系架构也是一种颠覆
2005年,一系列具有深远影响的计算机体系结构被曝光,有可能为未来十年的计算机体系结构奠定根本性的基础,至少为处理器乃至整个计算机体系结构做出了象征性指引。随着计算密度的提高,处理器和计算机性能的衡量标准和方式在发生变化,从应用的角度讲,讲究移动和偏向性能两者已经找到了最令人满意的结合点,并且有可能引爆手持设备的急剧膨胀。尽管现在手持设备也相对普及,在计算能力、可扩展性以及能耗上,完全起到了一台手持设备应该具备的作用;另一方面,讲究性能的服务器端和桌面端,开始考虑减少电力消耗赶上节约型社会的大潮流。
Cell本身适应这种变化,同样也是它自己创造了这种变化。因而从它开始就强调了不一样的设计风格,除了能够很好地进行多倍扩展外,处理器内部的SPU(SynergisticProcessorUnit协同处理单元)具有很好的扩展性,因而可以同时面对通用和专用的处理,实现处理资源的灵活重构。也就意味着,通过适当的软件控制,Cell能应付多种类型的处理任务,同时还能够精简设计的复杂。
B. 计算机专业分类
目前我国计算机专业主要分为三大类:计算机基础专业、与理工科交叉的计算机专业、与文科艺术类交叉的计算机专业。
1. 计算机基础专业
专业要求与就业方向:这些专业不但要求学生掌握计算机基本理论和应用开发技术,具有一定的理论基础,同时又要求学生具有较强的实际动手能力。学生毕业后能在企事业单位、政府部门从事计算机应用以及计算机网络系统的开发、维护等工作。
2. 与理工科交叉的计算机专业
与理工科交叉而衍生的计算机专业很多,如数学与应用数学专业、自动化专业、信息与计算科学专业、通信工程专业、电子信息工程专业、计算机应用与维护专业等。
1)数学与应用数学专业:
专业要求与就业方向:数学与应用数学是计算机专业的基础和上升的平台,是与计算机科学与技术联系最为紧密的专业之一。该专业就业面相对于计算机科学与技术专业来说宽得多,不但适用于IT 领域,也适用于数学领域。
2)自动化专业:
专业要求与就业方向:自动化专业是一个归并了多个自动控制领域专业的宽口径专业,要求学生掌握自动控制的基本理论,并立足信息系统和信息网络的控制这一新兴应用领域制定专业课程体系,是工业制造业的核心专业。自动化专业的毕业生具有很强的就业基础和优势。
3)信息与计算科学专业:
专业要求与就业方向:这是一个由信息科学、计算数学、运筹与控制科学等交叉渗透而形成的专业,就业面涉及到教学、商业、网络开发、软件设计等各个方面,就业率高达95%以上。
4)通信工程专业:
专业要求与就业方向:通信工程专业要求学生掌握通信基础理论和基本基础,掌握微波、无线电、多媒体等通信技术,以及电子和计算机技术,在信息时代有着极佳的就业优势。
5)电子信息工程专业:
专业要求与就业方向:电子信息工程专业是宽口径专业,主要培养信息技术、电子工程、网络系统集成等领域的高级IT 人才,毕业生可从事电子设备、信息系统和通信系统的研究、设计、制造、应用和开发工作。
(2)并行编译的概念扩展阅读:
毕业生主要面向交通系统各单位、交通信息化与电子政务建设与应用部门、各类计算机专业化公司、广告设计制作公司、汽车营销技术服务等从事IT行业工作。
WEB应用程序设计专业
毕业后能够从事网站应用程序开发、网站维护、网页制作、软件生产企业编码、软件测试、系统支持、软件销售、数据库管理与应用、非IT企事业单位信息化。
可视化程序设计专业
毕业后能够从事软件企业桌面应用开发、软件生产企业编码、软件测试、系统支持、软件销售、数据库管理与应用开发等工作。
数据库管理专业
毕业后能够从事企、事业单位数据库管理、软件开发、专业数据库应用设计与开发、数据库的应用与开发、信息管理系统开发、企、事业单位网络管理、软件销售等工作。
多媒体应用专业
毕业后能够从事计算机美工、动画制作、影视编辑与制作、广告设计与制作、多媒体综合应用开发、多媒体课件制作等工作。
移动应用开发专业
毕业后能够从事移动设备应用开发、嵌入式应用开发、移动网站开发、软件生产企业编码、软件测试、系统支持、软件销售、企、事业单位信息管理、办公自动化集成等工作。
电子政务软件专业
能够胜任基层政府部门、事业单位数字化政务管理系统的设计、维护与信息管理、办公自动化集成、办公室文员等工作。
软件测试专业
毕业后能够从事软件测试、软件编码、IT企事业单位系统支持、非IT企事业单位信息化软件销售等工作。
物流信息技术专业
毕业后能够胜任现代物流业信息管理,能在企事业单位从事物流系统设计、供应链管理、仓储管理以及运输等管理工作。
物流管理专业
毕业后能够胜任全省各级企事业单位物流系统设计、供应链管理、仓储管理以及运输等管理工作等工作。
网络系统管理专业
毕业后能够从事政府管理部门、经贸、金融、邮电、电子、学校、交通、社区以及应用计算机网络的有关行业,从事计算机网络系统的设计、维护、管理、从事网站开发与应用、网络安全管理、计算机软硬件调试、安装、计算机及网络产品营销等工作。
计算机游戏专业
毕业后能够从事网络游戏美术,网络游戏动漫设计,游戏概念/故事情节设计,网络游戏3D设计,网络游戏人物设计,网络游戏环境设计,网络游戏皮肤/纹理设计,网络游戏图形开发,网络游戏测试,网络游戏音频开发,游戏客户端开发,游戏服务器开发,游戏引擎开发,手机游戏策划,手机游戏开发,手机游戏程序开发,手机游戏美工,手机游戏测试等工作。
计算机图形/图像制作专业
毕业后能够从事广告企业平面的设计与制作、网络企业网页制作、企事业单位职员等工作。
目前,计算机专业在国内的高等院校中,以理工科的实力较强;以文科、综合性高等院校为补充,基本上每所高等院校都设有这样的专业;或者有这样的专业人才。
C. 什么是计算机学科包括哪两个方面其核心概念有哪些
计算机学科即计算机科学与技术,是研究计算机的设计与制造和利用计算机进行信息获取、表示、存储、处理、控制等的理论、原则、方法和技术的学科。方法论是对计算机领域认识和实践过程中的一般方法及其性质特点、内在联系和变化规律进行系统研究的理论总结。
包括科学和技术2方面。计算机科学侧重于研究现象揭示规律。计算机技术则侧重于研制计算机和研究使用计算机进行处理的方法和技术手段。
计算机学科方法论是对计算机领域认识和实践过程中的一般方法及其性质特点、内在联系和变化规律进行系统研究的理论总结。据研究,其主要内容包括3个形态:
形态
3个形态:抽象过程、理论总结过程、设计过程。
计算机学科:计算机科学与技术属于工学门类里的一级学科,分为三个二级学科:计算机应用,计算机系统结构,计算机软件与理论,每个二级学科下面又分若干研究方向:
计算机应用
1. 人工智能;2. 智能控制机器人;3. 计算机视觉、语音及多媒体信息处理;4. 人工智能、多媒体技术;5. 计算机语言学、机器翻译及自然语言理解;6. 计算机图形学及可视化技术;7. 计算机及VLSI设计自动化。8. 大规模集成 电路与微电子系统计算机辅助设计、微电子学新工艺新器件和新结构集成电路及其物理基础等。9. 计算机网络技术及应用10. 信息安全技术及应用11. 数据库技术、数据仓库技术及应用;12. 并行计算13. 计算机科学理论14. 计算机应用支撑技术;15. 计算机在信息产业中的应用;16. 计算机在制造产业中的应用;17. 各个领域中计算机应用软件的开发技术;18. 计算机集成技术和分布式计算环境 ;19. 仿脑计算理论与仿脑计算机 ;20. 智能信息处理 ;21. 数据和知识管理;22. Web技术软件工程和环境。23. CIMS及其它先进制造技术24. 网络多媒体 25. 操作系统 26. 互联网络下的协同工作环境;27. 实与多媒体技术;28. 工程与过程工程;29. 互联网络体系结构;30. 信息安全技术;31. 容错计算技术;32. 计算机应用工程化;33. 虚拟环境方面;34. IPv6协议的中间件和软件应用;35. 实与多媒体技术;36. 微处理的开发应用研究:嵌入式设备(医疗设备(治癌仪、热疗仪等)、加密机(E1、DDN)等)的开发;研制类比推理部件(可作为独立的类比问题求解系统,也可以嵌入其它人工智能系统)。37. 远程教学;38. 多数据库系统集成技术研究;39. 以Intention形式化为核心的BDI建模;40. 以机器人足球为标准问题的MAS体系结构与合作规划;41. MAS中的策略协作学习;42. 基于多主体技术的Internet信息检索和用户建模43. 机器学习44. 计算智能:* 遗传算法的理论和应用;* 免疫模型与算法的基本原理及其应用;* 人工神经网络的理论和应用;* 网络智能信息检索与数据挖掘。45. 语言信息处理
计算机系统结构
1. 并行/分布处理及高性能计算机系统;2. 先进的计算机结果和网络计算;3. 系统的可重构和可扩展技术;4. 高性能存储系统及处理机同步通信机制;5. 并行编译技术;6. 并行调试技术;7. 并行与分布系统容错性、可用性、可靠性技术;8. 指令及并行处理(ILP)体系结果的理论与技术;9. 对称多处理器(SMP)并行体系结构的理论与技术;10. 机群并行处理体系结构、互连技术、程序设计环境以及计算密集型应用在机群系统中的实现;11. 超常指令字(VLIW)系统结构;12. 多线程机制;13. 并行处理技术;14. 并行算法及环境;15. 并行分布式算法;16. 各种并行与分布式软件、工具与环境;17. 分布式与多机系统新型计算机系统机构及语言;18. 计算机系统体系结构软件仿真环境构建方法研究;19. 当代主流并行机的体系结构模型、存储技术的研究;20. 高性能通信机制与策略的研究;21. 分布式资源管理、故障恢复、进程动态迁移、分布式存取控制技术22. 指令级并行关键技术研究;23. 格点计算模型及体系结构的研究;24. 工作站机群、网络和网格等环境下的并行分布式计算模型;25. 可视化并行程序设计环境;26. 大规模科学与工程计算;27. VLSI 系统机构及RISC技术;28. 芯片设计;29. 计算机支持的协同工作(CSCW)30. 嵌入式技术及其应用;31. 嵌入式系统整体设计方法、技术与应用研究;32. 嵌入式系统软硬件功能分配算法、软硬件协同验证、协同仿真方法研究;33. 嵌入式微处理器设计;34. 嵌入式操作系统;35. 计算网络及其应用;36. 高速互连网络;37. 网络计算环境下的知识处理、网络体系结构、网络管理;38. 多媒体信息在网络中的传输及处理;39. 高速计算机网络和网络服务质量;40. 网络互联、协议测试;41. 网络信息安全;42. 管理信息系统和网络信息检索;43. 新型高性能计算机系统及其软件技术;44. 计算机网络技术及应用;45. 智能卡技术;46. 信息安全与密码;47. 波分复用WDM全光网中的路由及波长分配算法的研究。
计算机软件与理论
1. 软件工程与方法;2. 数据库和知识工程;3. 计算机图形学与计算机辅助设计;4. 数据安全。5. 系统软件(操作系统、编辑系统、实时系统) ;6. 软件工程及环境;7. 分布对象计算;8. 并行及分布式处理;9. 语义理论及应用(自然语言、程序语言) ;10. 推理技术;11. 并行理论;12. 类型理论及应用;13. 计算语义学;14. CAD/CAM技术的理论研究、CAD/CAM系统的软件开发平台研制;15. 工程与科学计算方面,对数值模拟进行的多学科的应用研究;16. 计算机图形学与CAD;17. 群件与网络技术研究;18. 嵌入式数据库;19. 电子商务;20. 计算机网络及信息系统;21. 软件重建工程的理论与技术研究;22. 软件规格说明的形式方法与CASE工具研究。23. 形式化方法:形式语义、代数规范、范畴论、类型论和重写技术等的应用研究;24. 软件系统结构的研究; 25. 程序设计语言的设计于实现.26. 可计算性和计算复杂性;27. 各种高效实用的计算模型;28. 一般难解问题的高效实用算法;29. 面向应用的大尺度难解问题的工程实用算法;30. 工程算法集成和相应软件体系结构;31. 工程算法分析和评价体系等。
D. vasp5.2 并行编译 BLAS问题 求助
小木虫上有很多类似的帖子,可去小木虫论坛看看,如“vasp 5.2 并行版本的编译”,若想编译单独的BLAS库函数,则可参考“gfortran+mpich2编译siesta”中有关编译BLAS库函数的内容(引号内为小木虫论坛里帖子标题)
E. 我们来讲解以下如何才能编写并行程序,以及如何编译运行
我们下面以C 语言为例。
具体语法规则可参看《高性能计算并行编程技术-MPI 并行程序设计》一书。
mpicc -o outfilename cpi.c
其中outfilename 为编译后的输出文件,cpi.c 为源代码.
可将cpi.c 下载后上传的自己目录下编译.
例如:mpicc -o cpi cpi.c
如没有安装OpenPBS 则:
mpirun -np 4 cpi
否则:(一般安装了)
之后需写一作业提交脚本.例如:submit 内容如下:
#PBS -l nodes=nodes number
#PBS -N jobname#PBS -j oecd /home/xmin/Project
/usr/local/bin/mpiexec cpi
其中 #PBS -l nodes=nodes number 为指定几个节点计算.如: nodes=4
#PBS -N jobname 为用户命名的提交作业名称.如: #PBS -N xmin
#PBS -j oe 为结果和错误输出同文件.如无此项则分别在两个文件中.
cd /home/xmin/Project 编译后的输出文件所在路径(从根目录开始).
/usr/local/bin/mpiexec cpi 为mpiexec 所在路径.
下面是完整例子:
#PBS -l nodes=4
#PBS -N xmin#PBS -j oecd /home/xmin/Project
/usr/local/bin/mpiexec cpi
提交脚本如下:
qsub submit得到如下:3565.isc.math.nankai.e.cn
此为你的作业编号.
这样你就可得到类似xmin.o2666 的文件,打开即可看到结果.
你还可以查询作业提交情况.命令如下:qstat
F. 并行处理的并行算法的基本策略
在并行处理技术中所使用的算法主要遵循三种策略:
1.分而治之法:也就是把多个任务分解到多个处理器或多个计算机中,然后再按照一定的拓扑结构来进行求解。
2.重新排序法:分别采用静态或动态的指令词度方式。
3.显式/隐式并行性结合:显式指的是并行语言通过编译形成并行程序,隐式指的是串行语言通过编译形成并行程序,显式/隐式并行性结合的关键就在于并行编译,而并行编译涉及到语句、程序段、进程以及各级程序的并行性。
二、并行性描述定义
利用计算机语言进行并行性描述的时候主要有三种方案:
1.语言扩展方案:也就是利用各种语言的库函数来进行并行性功能的扩展。
2.编译制导法:也称为智能编译,它是隐式并行策略的体现,主要是由并行编译系统进行程序表示、控制流的分析、相关分析、优化分析和并行化划分,由相关分析得到方法库管理方案,由优化分析得到知识库管理方案,由并行化划分得到程序重构,从而形成并行程序。
3.新的语言结构法:这是显式并行策略的体现。也就是建立一种全新的并行语言的体系,而这种并行语言通过编译就能直接形成并行程序。
三、并行软件
并行软件可分成并行系统软件和并行应用软件两大类,并行系统软件主要指并行编译系统和并行操作系统,并行应用软件主要指各种软件工具和应用软件包。在软件中所牵涉到的程序的并行性主要是指程序的相关性和网络互连两方面。
1.程序的相关性:程序的相关性主要分为数据相关、控制相关和资源相关三类。
数据相关说明的是语句之间的有序关系,主要有流相关、反相关、输出相关、I/O相关和求知相关等,这种关系在程序运行前就可以通过分析程序确定下来。数据相关是一种偏序关系,程序中并不是每一对语句的成员都是相关联的。可以通过分析程序的数据相关,把程序中一些不存在相关性的指令并行地执行,以提高程序运行的速度。
控制相关指的是语句执行次序在运行前不能确定的情况。它一般是由转移指令引起的,只有在程序执行到一定的语句时才能判断出语句的相关性。控制相关常使正在开发的并行性中止,为了开发更多的并行性,必须用编译技术克服控制相关。
而资源相关则与系统进行的工作无关,而与并行事件利用整数部件、浮点部件、寄存器和存储区等共享资源时发生的冲突有关。软件的并行性主要是由程序的控制相关和数据相关性决定的。在并行性开发时往往把程序划分成许多的程序段——颗粒。颗粒的规模也称为粒度,它是衡量软件进程所含计算量的尺度,一般用细、中、粗来描述。划分的粒度越细,各子系统间的通信时延也越低,并行性就越高,但系统开销也越大。因此,我们在进行程序组合优化的时候应该选择适当的粒度,并且把通讯时延尽可能放在程序段中进行,还可以通过软硬件适配和编译优化的手段来提高程序的并行度。
2.网络互连:将计算机子系统互连在一起或构造多处理机或多计算机时可使用静态或动态拓扑结构的网络。静态网络由点一点直接相连而成,这种连接方式在程序执行过程中不会改变,常用来实现集中式系统的子系统之间或分布式系统的多个计算结点之间的固定连接。动态网络是用开关通道实现的,它可动态地改变结构,使之与用户程序中的通信要求匹配。动态网络包括总线、交叉开关和多级网络,常用于共享存储型多处理机中。在网络上的消息传递主要通过寻径来实现。常见的寻径方式有存储转发寻径和虫蚀寻径等。在存储转发网络中以长度固定的包作为信息流的基本单位,每个结点有一个包缓冲区,包从源结点经过一系列中间结点到达目的结点。存储转发网络的时延与源和目的之间的距离(段数)成正比。而在新型的计算机系统中采用虫蚀寻径,把包进一步分成一些固定长度的片,与结点相连的硬件寻径器中有片缓冲区。消息从源传送到目的结点要经过一系列寻径器。同一个包中所有的片以流水方式顺序传送,不同的包可交替地传送,但不同包的片不能交叉,以免被送到错误的目的地。虫蚀寻径的时延几乎与源和目的之间的距离无关。在寻径中产生的死锁问题可以由虚拟通道来解决。虚拟通道是两个结点间的逻辑链,它由源结点的片缓冲区、结点间的物理通道以及接收结点的片缓冲区组成。物理通道由所有的虚拟通道分时地共享。虚拟通道虽然可以避免死锁,但可能会使每个请求可用的有效通道频宽降低。因此,在确定虚拟通道数目时,需要对网络吞吐量和通信时延折衷考虑。
四、硬件技术在硬件技术方面主要从处理机、存储器和流水线三个方面来实现并行。
1.处理机:主要的处理机系列包括CISC、RISC、超标量、VL1W、超流水线、向量以及符号处理机。
传统的处理机属于复杂指令系统计算(CISC)结构。指令系统大,指令格式可变,通用寄存器个数较少,基本上使用合一的指令与数据高速缓存,时钟频率较低,CPI较高,大多数利用ROM 实现微码控制CPU,而当今的精简指令系统计算(RISC)处理机指令格式简单规范,面向寄存器堆,采用重叠寄存器窗口技术,具有多级Cache,多种流水线结构,强调编译优化技术,时钟频率快,CPI低,大多数用硬连线控制CPU。
CISC或RISC标量处理机都可以采用超标量或向量结构来改善性能。标量处理机在每个周期内只发射一条指令并要求周期只完成从流水线来的一条指令。而在超标量处理机中,使用了多指令流水线,每个周期要发射多条指令并产生多个结果。由于希望程序中有许多的指令级并行性,因此超标量处理机更要依靠优化编译器去开发并行性。
VL1W 结构是将水平微码和超标量处理这两种普遍采用的概念结合起来产生的。典型的超长指令字VL1W 机器指令字长度有数百位。在VLlW 处理机中,多个功能部件是并发工作的,所有的功能部件共享使用公用大型寄存器堆,由功能部件同时执行的各种操作是用VL1W 指令来同步的,每条指令可指定多个操作。VL1W 指令译码比超标量指令容易,但在开发不同数量的并行性时总是需要不同的指令系统。VL1W 主要是开发标量操作之间的并行性,它的成功与否很大程度取决于代码压缩的效率,其结构和任何传统的通用处理机完全不兼容。即使同一结构的不同实现也不大可能做到彼此二进制兼容。VL1W 的主要优点在于它的硬件结构和指令系统简单,在科学应用领域可以发挥良好作用,但在一般应用场合可能并不很好用。
向量处理机对数组执行向量指令,每条指令都包含一串重复的操作。它是专门设计用来完成向量运算的协处理机,通常用于多流水线超级计算机中。向量处理机可以利用循环级展开所得的并行性,它可以附属于任何标量处理机。专用的向量流水线可以在循环控制中消除某些软件开销,它的效果与优化编译器将顺序代码向量化的性能很有关系。从理论上说,向量机可以具有和超标量处理机同样的性能,因此可以说向量机的并行性与超标量机相同。
符号处理机是为AI应用而研制的,已用于定理证明、模式识别、专家系统、知识工程、文本检索、科学以及机器智能等许多应用领域。在这些应用中,数据和知识表达式、原语操作、算法特性、存储器、I/0和通信以及专用的结构特性与数值计算是不一样的,符号处理机也称为逻辑程序设计语言处理机、表处理语言处理机或符号变换器。符号处理并不和数值数据打交道,它处理的是逻辑程序、符号表、对象、剧本、黑板、产生式系统、语义网络、框架以及人工神经网络等问题。这些操作需要专门的指令系统,通常不使用浮点操作。
2.存储器:存储设备按容量和存取时间从低到高可分为寄存器、高速缓存、主存储器、磁盘设备和磁带机五个层次。较低层存储设备与较高层的相比,存取速度较快、容量较小,每字节成本较高、带宽较宽、传输单位较小。
存放在存储器层次结构中的信息满足三个重要特性:包含性、一致性和局部性。所谓包含性,指的是一个信息字的复制品可以在比它高的所有层中找到,而如果在高层中丢失了一个信息,则在比它低的所有层中此信息也将丢失。CPU 和高速缓存之间的信息传送是按字进行的,高速缓存和主存储器间用块作为数据传送的基本单位,主存和磁盘之间又是以页面为基本单位来传送信息的,而在磁盘和磁带机之间的数据传送则是按文件级处理的。所谓一致性要求的是同一个信息项与后继存储器层次上的副本是一致的。也就是说,如果在高速缓存中的一个字被修改过,那么在所有更高层上该字的副本也必须立即或最后加以修改。为了尽量减少存储器层次结构的有效存取时间,通常把频繁使用的信息放在较低层次。维护存储器层次结构一致性一般有两种策略,一种是写直达策略,也就是如果,则立即在所有高层存储器中进行同样的修改;另一种是写回策略,也就是在较低层中对信息进行修改后并不立即在高层存储器中进行相应的修改,而是等到该信息将被替换或将从低层中消失时才在所有高层存储器中进行同样的修改。甚至可以将写直达和写回策略的优点结合起来,形成写一次协议来维护存储器的一致性。
存储器的层次结构是在一种程序行为——访问的局部性基础上开发出来的。主要有时间局部性、空间局部性和顺序局部性。时间局部性指的是最近的访问项很可能在不久的将来再次被访问。它往往会引起对最近使用区域的集中访问。空间局部性表示一种趋势,指的是一个进程访问的各项其地址彼此很近。顺序局部性指的是在典型程序中,除非是转移指令,一般指令都是顺序执行的。
在多处理机系统中一般使用共享存储器。对共享存储器的组织一般采用低位交叉、高位交叉、高低位交叉三种方法。低位交叉又称并发存取,它是把相邻的地址放在相邻的存储器模块中,在访问时不容易产生冲突,并行性较好,但可靠性容错能力和扩展性均较差。高位交叉又称允许同时存取,它是把相邻地址分配到同一个存储器模块中,可靠性、容错能力和扩展性均较强,但访问时易产生冲突,带宽较窄,并行性较差。高低位交叉存取又称C—s存取,它是结合了高位交叉和低位交叉两种方法的优点,既解决了冲突问题,又能有效地提高容错能力和并行性,最适合于向量处理机结构。
3.流水线:流水线技术主要有指令流水线技术和运算流水线技术两种。
指令流水线技术主要目的是要提高计算机的运行效率和吞吐率。它主要通过设置预取指令缓冲区、设置多功能部件、进行内部数据定向、采取适当的指令调度策略来实现。指令调度的策略主要有静态和动态两种,静态词度是基于软件的,主要由编译器完成,动态词度是基于硬件的,主要是通过硬件技术进行。
运算流水线主要有单功能流水线和多功能流水线两种。其中多功能流水线又可分为静态流水线和动态流水线。静态流水线技术只用来实现确定的功能,而动态流水线可以在不同时间重新组合,实现不同的功能,它除流线连接外,还允许前馈和反馈连接,因此也称为非线性流水线。这些前馈和反馈连接使得进入流水线的相继事件的词度变得很不简单。由于这些连接,流水线不一定从最后一段输出。根据不同的数据流动模式,人们可以用同一条流水线求得不同功能的值。
并行计算机发展简述
40 年代开始的现代计算机发展历程可以分为两个明显的发展时代:串行计算时代、并行计算时代。每一个计算时代都从体系结构发展开始,接着是系统软件(特别是编译器与操作系统)、应用软件,最后随着问题求解环境的发展而达到顶峰。创建和使用并行计算机的主要原因是因为并行计算机是解决单处理器速度瓶颈的最好方法之一。
并行计算机是由一组处理单元组成的,这组处理单元通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。因此,并行计算机的两个最主要的组成部分是计算节点和节点间的通信与协作机制。并行计算机体系结构的发展也主要体现在计算节点性能的提高以及节点间通信技术的改进两方面。
60 年代初期,由于晶体管以及磁芯存储器的出现,处理单元变得越来越小,存储器也更加小巧和廉价。这些技术发展的结果导致了并行计算机的出现,这一时期的并行计算机多是规模不大的共享存储多处理器系统,即所谓大型主机(Mainframe)。IBM360 是这一时期的典型代表。
到了60 年代末期,同一个处理器开始设置多个功能相同的功能单元,流水线技术也出现了。与单纯提高时钟频率相比,这些并行特性在处理器内部的应用大大提高了并行计算机系统的性能。伊利诺依大学和Burroughs 公司此时开始实施IlliacIV 计划,研制一台64 个CPU 的SIMD 主机系统,它涉及到硬件技术、体系结构、I/O 设备、操作系统、程序设计语言直至应用程序在内的众多研究课题。不过,当一台规模大大缩小了的16CPU 系统终于在1975 年面世时,整个计算机界已经发生了巨大变化。
首先是存储系统概念的革新,提出虚拟存储和缓存的思想。IBM360/85 系统与360/91是属于同一系列的两个机型,360/91 的主频高于360/85,所选用的内存速度也较快,并且采用了动态调度的指令流水线;但是,360/85 的整体性能却高于360/91,唯一的原因就是前者采用了缓存技术,而后者则没有。
其次是半导体存储器开始代替磁芯存储器。最初,半导体存储器只是在某些机器被用作缓存,而CDC7600 则率先全面采用这种体积更小、速度更快、可以直接寻址的半导体存储器,磁芯存储器从此退出了历史舞台。与此同时,集成电路也出现了,并迅速应用到了计算机中。元器件技术的这两大革命性突破,使得IlliacIV 的设计者们在底层硬件以及并行体系结构方面提出的种种改进都大为逊色。
1976 年CRAY-1 问世以后,向量计算机从此牢牢地控制着整个高性能计算机市场15 年。CRAY-1 对所使用的逻辑电路进行了精心的设计,采用了我们如今称为RISC 的精简指令集,还引入了向量寄存器,以完成向量运算。这一系列全新技术手段的使用,使CRAY-1 的主频达到了80MHz。
微处理器随着机器的字长从4 位、8 位、16 位一直增加到32 位,其性能也随之显着提高。正是因为看到了微处理器的这种潜力,卡内基- 梅隆大学开始在当时流行的DECPDP11 小型计算机的基础上研制成功一台由16 个PDP11/40 处理机通过交叉开关与16 个共享存储器模块相连接而成的共享存储多处理器系统C.mmp。
从80 年代开始,微处理器技术一直在高速前进。稍后又出现了非常适合于SMP 方式的总线协议,而伯克利加州大学则对总线协议进行了扩展,提出了Cache 一致性问题的处理方案。从此,C.mmp 开创出的共享存储多处理器之路越走越宽;现在,这种体系结构已经基本上统治了服务器和桌面工作站市场。
同一时期,基于消息传递机制的并行计算机也开始不断涌现。80 年代中期,加州理工成功地将64 个i8086/i8087 处理器通过超立方体互连结构连结起来。此后,便先后出现了Intel iPSC 系列、INMOS Transputer 系列,Intel Paragon 以及IBM SP 的前身Vulcan 等基于消息传递机制的并行计算机。
80 年代末到90 年代初,共享存储器方式的大规模并行计算机又获得了新的发展。IBM将大量早期RISC 微处理器通过蝶形互连网络连结起来。人们开始考虑如何才能在实现共享存储器缓存一致的同时,使系统具有一定的可扩展性(Scalability)。90 年代初期,斯坦福大学提出了DASH 计划,它通过维护一个保存有每一缓存块位置信息的目录结构来实现分布式共享存储器的缓存一致性。后来,IEEE 在此基础上提出了缓存一致性协议的标准。
90 年代以来,主要的几种体系结构开始走向融合。属于数据并行类型的CM-5 除大量采用商品化的微处理器以外,也允许用户层的程序传递一些简单的消息;CRAY T3D是一台NUMA 结构的共享存储型并行计算机,但是它也提供了全局同步机制、消息队列机制,并采取了一些减少消息传递延迟的技术。
随着商品化微处理器、网络设备的发展,以及MPI/PVM 等并行编程标准的发布,机群架构的并行计算机出现。IBM SP2 系列机群系统就是其中的典型代表。在这些系统中,各个节点采用的都是标准的商品化计算机,它们之间通过高速网络连接起来。
今天,越来越多的并行计算机系统采用商品化的微处理器加上商品化的互连网络构造,这种分布存储的并行计算机系统称为机群。国内几乎所有的高性能计算机厂商都生产这种具有极高性能价格比的高性能计算机,并行计算机就进入了一个新的时代,并行计算的应用达到了前所未有的广度和深度。
并行计算机随着微处理芯片的发展,已经进入了一个新时代。目前并行计算机的性能已经突破20PFLOPS,正在向百亿亿次发展。我国并行计算机的研制已经走在世界前列。2003年由联想公司生产的深腾6800 在2003 年11 月世界TOP500 排名中位列第14 名,2004 年曙光公司生产的曙光4000A 在2004 年6 月的世界TOP500 排名中位列第10 名,这是我国公开发布的高性能计算机在世界TOP500 中首次进入前十名,这标志着我国在并行计算机系统的研制和生产中已经赶上了国际先进水平,为提高我国的科学研究水平奠定了物质基础。2013年国际超级计算机大会最新发布的世界超级计算机500强排名中,国防科技大学研制的天河二号超级计算机系统,以峰值计算速度每秒5.49亿亿次、持续计算速度每秒3.39亿亿次双精度浮点运算的优异性能位居榜首。
从TOP500 的前10 名来看,美国仍然是超级计算机的最大拥有者。按照世界TOP500 的统计数据来分析,美国在计算能力上占有近全世界的一半,在TOP500 中的所有计算机中拥有的数量超过50%。
G. 编译是具体是什么概念
把高级语言的源文件,翻译成机器码,但是变量和函数的地址在编译时没有确定,确定符号地址的过程称为链接
H. 目前处理并行编译技术有哪几种方法
三种形式编辑
时间并行
时间并行指时间重叠,在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。?
时间并行性概念的实现方式就是采用流水处理部件。这是一种非常经济而实用的并行技术,能保证计算机系统具有较高的性能价格比。目前的高性能微型机几乎无一例外地使用了流水技术。
空间并行
空间并行指资源重复,在并行性概念中引入空间因素,以“数量取胜”为原则来大幅度提高计算机的处理速度。大规模和超大规模集成电路的迅速发展为空间并行技术带来了巨大生机,因而成为实现并行处理的一个主要途径。空间并行技术主要体现在多处理器系统和多计算机系统。但是在单处理器系统中也得到了广泛应用。?
时间并行+空间并行
指时间重叠和资源重复的综合应用,既采用时间并行性又采用空间并行性。显然,第三种并行技术带来的高速效益是最好的。
I. 什么是并行处理
并行处理是计算机系统中能同时执行两个或多个处理的一种计算方法。并行处理可同时工作于同一程序的不同方面。并行处理的主要目的是节省大型和复杂问题的解决时间。
为使用并行处理,首先需要对程序进行并行化处理,也就是说将工作各部分分配到不同处理进程(线程)中。并行处理由于存在相互关联的问题,因此不能自动实现。
另外,并行也不能保证加速。从理论上讲,在 n 个并行处理的执行速度可能会是在单一处理机上执行的速度的 n 倍。
利用计算机语言进行并行性描述的时候主要有三种方案:
1.语言扩展方案:也就是利用各种语言的库函数来进行并行性功能的扩展。
2.编译制导法:也称为智能编译,它是隐式并行策略的体现,主要是由并行编译系统进行程序表示、由相关分析得到方法库管理方案,由优化分析得到知识库管理方案,从而形成并行程序。
3.新的语言结构法:这是显式并行策略的体现。也就是建立一种全新的并行语言的体系,而这种并行语言通过编译就能直接形成并行程序 。
J. 并行处理技术的三种形式
时间并行指时间重叠,在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。?
时间并行性概念的实现方式就是采用流水处理部件。这是一种非常经济而实用的并行技术,能保证计算机系统具有较高的性能价格比。目前的高性能微型机几乎无一例外地使用了流水技术。 资源共享也是在并行性概念中引入时间因素,它是通过软件的方法实现的。即多个用户按一定的时间顺序轮流使用同一套硬件设备;既可以是按一定的时间顺序共享CPU,也可以是CPU与外围设备在工作时间上的重叠。这种并行措施表现在多道程序和分时系统中,而分布式处理系统和计算机网络则是更高层次的资源共享。
从第一台电子计算机发明,电子计算机已经经历了五代。计算机发展到第四代时,出现了用共享存储器、分布存储器或向量硬件选件的不同结构的并行计算机,开发了用于并行处理的多处理操作系统专用语言和编译器,同时产生了用于并行处理或分布计算的软件工具和环境。到出现的计算机称为第五代计算机,它们的主要特点是进行大规模并行处理。并行处理技术是在微电子、印刷电路、高密度封装技术、高性能处理机、存储系统、外围设备、通信通道、语言开发、编译技术、操作系统、程序设计环境和应用问题等研究和工业发展的产物。
并行计算机具有代表性的应用领域有:天气预报建摸、VLSI电路的计算机辅助设计、大型数据库管理、人工智能、犯罪控制和国防战略研究等,而且它的应用范围还在不断地扩大。并行处理技术主要是以算法为核心,并行语言为描述,软硬件作为实现工具的相互联系而又相互制约的一种结构技术。本文就并行处理技术的算法策略、描述性定义及软硬件方面的实现做一个简单的介绍。