高性能计算技术与应用
高性能计算的关键技术与实现

高性能计算的关键技术与实现高性能计算(High Performance Computing,HPC)是一种能够以极快速度处理大量数据的计算技术,广泛应用于科学研究、工程模拟、数据分析等领域。
在当今信息时代,高性能计算已经成为推动各个行业发展的重要工具。
本文将介绍高性能计算的关键技术和实现方式,以及它们在不同领域的应用。
一、并行计算技术并行计算是高性能计算的核心技术之一,它通过同时运行多个计算任务来提高计算效率。
在并行计算中,要解决的一个重要问题是任务的划分和调度。
常见的并行计算模型包括共享内存模型和分布式内存模型。
共享内存模型下,多个处理器共享同一个内存空间,可以通过共享变量来实现通信和同步。
这种模型适用于数据共享多、通信量小的计算任务。
而在分布式内存模型中,每个处理器都有自己的私有内存,通过消息传递的方式进行通信和同步。
这种模型适用于大规模计算任务,具有良好的可扩展性。
除了并行计算模型,还有一些并行计算库和框架可以帮助开发人员更方便地实现并行计算。
例如,OpenMP是一种用于共享内存并行编程的API,MPI是一种用于分布式内存并行编程的库。
二、数据管理与存储技术在高性能计算中,数据管理和存储是至关重要的。
大规模的计算任务需要处理海量的数据,因此,高效的数据管理和存储技术对于提高计算效率和减少数据读写时间至关重要。
一种常见的数据存储方式是并行文件系统。
这种文件系统通过将数据划分为多个块,并将这些块分布在多个节点上进行存储,从而实现高效的数据存储和访问。
此外,还有一些数据管理系统和存储系统可以帮助管理和存储大规模数据,如Hadoop和Ceph等。
三、任务调度与资源管理技术在高性能计算中,任务调度和资源管理是保证计算性能和资源利用率的关键。
任务调度算法可以根据任务的优先级、资源需求和可用资源情况等因素来合理地分配任务和资源。
常见的任务调度算法包括最大最小剩余时间算法(SJF)、最短作业优先算法(SRTN)和最高响应比优先算法(HRRN)等。
高性能计算机技术的发展与应用

高性能计算机技术的发展与应用近年来,随着科技的不断进步,高性能计算机技术在各行各业中得到了广泛应用。
高性能计算机是以大规模同时计算为目标的计算机,拥有高处理速度和高内存容量等优点,可以进行高速的科学计算、复杂数据分析、模拟和预测等工作,对人类的科学研究和社会发展起到了十分重要的作用。
一、高性能计算机技术的发展历程高性能计算机技术的发展历程可以追溯到上世纪七十年代,当时美国是世界上唯一的高性能计算领导者。
随着时代的发展和技术的提升,许多国家也开始致力于高性能计算机技术的研究和开发。
1985年,日本宣布研究和发展自己的高性能计算机。
1990年代初,欧洲和亚洲的许多国家也开始了高性能计算机的研究和开发。
1993年,美国国防部在其高性能计算项目中研制出了“领航者”超级计算机,成为了当时速度最快的超级计算机。
此后,美国的领先地位也逐渐被挑战,日本的超级计算机也开始崭露头角。
2002年,日本的“地球模拟器”超级计算机问世,成为历史上第一个拥有千亿次计算速度的超级计算机。
二、高性能计算机技术的应用领域高性能计算机技术的应用领域非常广泛,其主要应用于以下几方面:1.天气预报和气象研究:高性能计算机可以进行复杂的气象计算,有助于提高天气预报的准确性,为人类的生产和生活提供更准确的气象数据。
2.能源勘探和开发:高性能计算机可以进行复杂的地震和地质勘探,准确预测石油和天然气等能源的分布情况。
3.医学研究:高性能计算机可以进行医学图像处理和模拟,帮助学者更好的了解人体的生理和病理机理,推动医学研究的进展。
4.交通运输规划:高性能计算机可以进行复杂的交通流分析和规划,提供更为精准的交通运输规划方案。
5.金融业应用:高性能计算机可以进行高频交易和资产组合优化分析,帮助金融机构提高投资效率。
6.科学计算:高性能计算机主要应用于科学计算和高性能仿真,如氢能源应用研究、生命科学研究、物理学研究等,有助于提高科学研究的效率和水平。
高性能计算技术及其应用

高性能计算技术及其应用随着科技不断发展,高性能计算技术已经成为人们日常生活中不可或缺的一部分。
高性能计算技术是一种通过使用并行计算和超级计算机来解决复杂问题的计算方法。
在科学研究、天气预测、金融风险分析等方面有广泛的应用。
今天,我们将一同探索高性能计算技术及其应用。
一、高性能计算技术的基础高性能计算技术是一种基于并行计算和超级计算机的计算方法,它的主要特点是通过使用多个处理器和多个计算节点来并行处理。
与传统的计算机不同,高性能计算机的处理器数量可以达到数千甚至数万个。
高性能计算技术着重于解决需要大量计算和存储资源的问题,如气象预报、流体力学、生物科学、计算机图形学等复杂领域。
它通过使用大规模的并行处理器、高速网络、优化的存储系统和特殊的并行算法来完成计算任务。
二、高性能计算技术的应用高性能计算技术在科学研究、天气预测、金融风险分析等众多领域都有广泛的应用。
以下是具体的应用领域:1. 科学研究高性能计算技术是现代科学研究不可或缺的工具之一。
它可以帮助科学家模拟物理、化学、天文等领域中的过程和现象,以帮助科学家更好地理解和解释这些现象。
在基础研究中,高性能计算技术已经成为基因组分析、药物设计等研究领域的关键工具。
2. 天气预测高性能计算技术可以帮助气象预报机构对天气进行更准确的预测。
利用高性能计算技术,可以对大气、海洋、土地表面、冰川等多个领域的数据进行模拟和分析,进而给出更为准确的天气预报。
这不仅有助于提高气象预报的准确性,还有利于人们及时采取措施应对不利天气。
3. 金融风险分析金融市场涉及大量数据,而在数据处理速度上,传统的计算机可能无法满足实时的需求。
高性能计算技术通过使用多个计算节点,使得计算速度得到极大的提升。
在金融领域,高性能计算技术可以用于大规模数据的分析和预测,以帮助金融机构更好地理解和应对不同风险。
4. 制药高性能计算技术在制药领域的应用也越来越广泛。
通过利用高性能计算技术,可以对药物分子的相互作用进行模拟和预测,从而更好地设计出更有效的药物。
高性能计算技术与应用

高性能计算技术与应用一、高性能计算技术概述近年来,随着计算机技术的飞速发展,高性能计算成为了一个备受关注的热门领域。
高性能计算技术是指利用高端计算机硬件和软件资源,实现快速而可靠的大规模科学计算和数据处理。
高性能计算技术广泛应用于天气预报、制药、航空航天、能源开发和地球分析等多个领域。
二、高性能计算技术分类目前,高性能计算技术可以分为三类:并行计算、分布式计算和云计算。
其中,并行计算是指将计算任务分为多个子任务,并在多个处理器上同时进行运算,实现计算的高效率和速度;分布式计算是指将计算任务分布于多个不同的计算节点上进行协同计算;而云计算是指以云计算平台为基础,将计算资源、应用程序和数据进行虚拟化和集中管理,实现灵活的计算资源调度和管理。
三、高性能计算技术应用高性能计算技术在各个领域中都有着广泛的应用,在下面,笔者将分领域介绍其应用情况。
1. 天气预报高性能计算技术在天气预报领域的应用是十分重要和必要的。
目前,天气预报系统利用高性能计算技术,能够将海量的气象数据进行处理和分析,在极短的时间内完成对大气运动模拟的数值模拟计算,从而实现对未来天气情况的预测。
2. 制药高性能计算技术应用于制药领域的目的是在更短的时间内实现更快速、更准确的药物筛选和开发。
通过利用超级计算机,制药公司可以对数百万个分子进行计算机模拟,可以在科学实验室中耗费数年的时间,使制药公司的研发周期大大缩短。
3. 航空航天高性能计算技术在航空航天领域的应用主要体现在航空器和导弹设计中。
高性能计算技术可以帮助航空航天企业进行大规模数字仿真和测试,对新型航空器和导弹进行系统总体设计、材料选择、结构设计和性能评估等,提高了航空器和导弹的设计质量和研发效率。
4. 能源开发高性能计算技术在能源开发领域的应用主要是进行石油、天然气等不可再生能源开采的计算模拟。
通过大规模运算处理海底地震信息和石油地质学数据,能够实现多个数据模型融合,模拟出资源矿区的地下地质构造图像,从而帮助企业高效探测矿藏,提高了勘探水平和效率。
高性能计算及其应用

高性能计算及其应用一、概述高性能计算(High Performance Computing,HPC)是指在大规模、高速度、高精度等方面进行数据处理的计算机技术。
通常,HPC所使用的计算机配置、软件系统等都要比一般计算机系统更加先进,因此它可以承担更加复杂、精密、大规模的计算任务。
本文将对HPC的基本概念、应用领域以及未来发展进行介绍。
二、HPC的基本概念1. 并行计算并行计算是指在多个处理器上同时进行计算任务,以提高计算速度和效率。
HPC所使用的大型计算机一般都是通过多处理器来实现并行计算。
例如著名的超级计算机“天河二号”就使用了16,000个处理器,可以实现每秒钟一千亿次浮点运算。
2. 高速数据传输由于大规模复杂计算任务所需要处理的数据量非常庞大,因此高速数据传输成为HPC必不可少的功能之一。
HPC使用的计算机网络都具备非常高的传输带宽和速度,可以快速传输大量的数据。
3. 分布式计算分布式计算是一种特殊的并行计算方式,是指将一个任务分割成多个子任务,然后通过网络将这些子任务分配到多个计算节点上进行计算。
HPC可以通过分布式计算实现将一个非常庞大的计算任务分解成多个小任务,然后将这些小任务提交到不同的计算节点上进行计算,最后再将结果集成起来,从而实现高效的计算。
三、HPC的应用领域1. 科学研究HPC在科学研究中具有非常重要的作用。
例如,天气预报、气候模拟、空气动力学模拟等任务都需要使用大规模计算进行数据处理,只有通过HPC技术才能实现这些任务。
此外,在宇宙学、生命科学、材料科学等研究领域中,HPC也发挥着至关重要的作用。
2. 工程领域在工程领域中,HPC可以用来进行各种模拟计算,例如流体力学模拟、有限元分析等。
这些模拟计算可以帮助工程师设计出更加高效、精确、安全的工程方案。
3. 商业应用随着时间的推移,HPC技术已经开始被广泛应用于商业领域。
例如,金融行业可以通过HPC技术对金融市场进行数据分析,提高风险控制能力;电子商务公司可以通过HPC技术优化自己的网站,提高用户的访问体验。
高性能计算技术详解

高性能计算技术详解随着计算机技术的不断发展,高性能计算技术越来越受到人们的关注。
高性能计算技术是指使用计算机系统进行大规模数据处理和模拟的技术。
它可以通过提高计算机系统的计算速度和处理能力,来快速地完成大量数据处理和科学计算任务。
本文将详细介绍高性能计算技术的相关概念、原理和应用。
一、高性能计算技术的概念高性能计算技术是指使用超级计算机、并行计算机、集群计算机等高性能计算系统,来进行大规模的数据处理和科学计算。
这些计算机系统具有更高的计算速度和更大的处理能力,可以同时执行多个计算任务。
高性能计算技术主要应用于科学计算、工程计算、仿真模拟、云计算等领域。
二、高性能计算技术的原理高性能计算技术的核心是并行计算,即将一个大规模计算任务分解成多个小规模的子任务,然后分别在不同的计算节点上进行计算,最后将计算结果汇总。
并行计算主要有以下几种方式:1、共享内存并行计算:不同的任务在同一个计算节点上执行,共享同一片内存。
2、分布式并行计算:不同的任务在不同的计算节点上执行,每个节点具有自己的内存。
3、混合并行计算:即同时应用第一种和第二种方式。
并行计算中的一个重要概念是“并发度”,它指的是计算节点的数量。
并发度越高,则计算速度越快。
三、高性能计算技术的应用高性能计算技术广泛应用于科学计算、工程计算、仿真模拟、云计算等领域。
1、科学计算:高性能计算技术可以用于大规模的天文学、气象学、生物学、地球科学等科学计算。
例如,全球气候模拟、基因组测序分析等任务都需要高性能计算技术的支持。
2、工程计算:高性能计算技术可以用于机械、计算机、电力等工程计算。
例如,建筑物结构模拟、汽车碰撞测试等任务都需要高性能计算技术的支持。
3、仿真模拟:高性能计算技术可以用于各种仿真模拟。
例如,飞行模拟、卫星轨道计算、核弹爆炸模拟等都需要高性能计算技术的支持。
4、云计算:高性能计算技术可以用于云计算。
例如,云计算资源调度、分布式存储、虚拟机管理等都需要高性能计算技术的支持。
高性能计算技术在科学研究中的应用与意义

高性能计算技术在科学研究中的应用与意义随着科学研究领域的不断发展,人们需要处理的数据量越来越庞大,计算机的处理能力也越来越重要。
高性能计算技术的应用在科学研究中起到了重要的作用,并且对推动科学研究的发展具有深远的意义。
一、高性能计算技术在数据处理中的应用高性能计算技术在科学研究中的重要应用之一就是数据处理。
随着各个科学领域产生的数据急剧增长,传统的计算方法已经无法满足科学家们对于数据处理的需求。
高性能计算技术通过提供超强的计算能力和高效的数据存储,使得科学家们可以更加高效地进行数据处理和分析。
例如,天文学研究需要处理大量的天体观测数据,通过高性能计算技术,科学家们能够更快捷地分析出数据中隐藏的规律和信息,推动天文学研究的前进。
二、高性能计算技术在模拟与仿真中的应用科学研究中的实验往往需要大量的时间和资源投入,而且可能面临一些实验难以实现的限制。
高性能计算技术的应用在模拟与仿真方面,可以通过计算机模拟实验的方式,减少实际实验的次数,提高研究的效率和可行性。
高性能计算技术在物理、化学、生物等领域的模拟与仿真中,可以帮助科学家们了解事物内部的规律和机制,为研究提供准确而全面的数据支持。
三、高性能计算技术在科学研究中的意义高性能计算技术在科学研究中的应用满足了科学家们对于大数据处理和模拟仿真的需求。
这些应用不仅提升了科学研究的效率和可行性,还推动了科学家们对于事物规律的深入认识。
与传统研究方法相比,高性能计算技术具有以下几个重要的意义。
首先,高性能计算技术的应用加速了科学研究的进程。
科学家们不再受限于实验的时间和资源,可以通过计算机模拟实验的方式更快地验证和推断思想和理论。
其次,高性能计算技术的应用拓宽了科学研究的领域和范围。
传统实验方法可能受限于条件和环境等因素,而高性能计算技术可以通过模拟和计算,对各种不同场景进行研究,拓宽了人们对于事物的认识和理解。
此外,高性能计算技术的应用还提高了研究结果的准确性和可信度。
高性能计算的发展与应用

高性能计算的发展与应用随着科技的不断发展,高性能计算的应用越来越普遍。
高性能计算是指利用计算机技术进行大规模数据处理、计算和分析的一种计算方法。
其目的是通过高速的计算和处理能力,为科学、工程和商业等领域提供支持和解决方案。
本文将探讨高性能计算的发展与应用。
一、高性能计算的历史高性能计算的起源可以追溯到20世纪60年代,当时主要用于军事和国防领域的应用。
1976年,美国国家科学基金会推出了一项计算机研究计划,旨在开发大规模超级计算机。
此后,高性能计算的应用范围逐渐扩大,开始应用于气象预测、地球物理学、药物研发等领域。
20世纪90年代,高性能计算的发展进入了一个新的阶段。
随着商业应用的需求不断增加,高性能计算开始向商业领域拓展。
同时,随着微处理器和并行计算技术的发展,高性能计算的性能也有了巨大的提升。
二、高性能计算的技术发展高性能计算的技术发展走过了从单处理器到多处理器、从单机到集群,再到现在的全球超算共享和云高性能计算等不同阶段。
其中,多处理器和集群技术是高性能计算的两个重要的里程碑。
多处理器技术主要是指在一台计算机中同时使用多个中央处理器(CPU)运行程序。
这种技术能够显著地提高单台计算机的计算能力。
但是,多处理器机器的构造和管理都非常复杂,而且价格昂贵。
此外,多处理器机器的编程也比较困难。
集群技术则是将多台计算机联合起来作为一个整体进行计算。
这种技术不仅能够提高计算能力,而且还能够实现计算资源的共享,节约成本。
此外,集群技术的编程相对易于实现。
近年来,云计算和大数据技术的出现也为高性能计算的应用带来了新的机会和挑战。
云高性能计算能够以更为灵活的方式提供计算资源,以满足不同场景下的需求。
同时,大数据技术也为高性能计算提供了更丰富的数据来源和分析能力。
三、高性能计算的应用高性能计算在科学研究、工业制造、金融和医疗保健等领域都有广泛的应用。
在科学研究领域,高性能计算的应用主要涉及到天体物理、气象学、生物学、地球科学等领域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高性能计算技术及其应用作者:迟学斌赵毅(中国科学院计算机网络信息中心北京 100080) 摘要简要介绍了当前高性能计算机、并行算法、并行编程环境和高性能计算应用的国际研究现状和发展趋势,阐述了近几年中科院高性能计算环境建设和高性能计算应用的发展情况,最后对我院发展高性能计算技术及应用给出了几点思考。
关键词高性能计算技术,并行算法,并行编程环境高性能计算是计算机科学的一个分支,研究并行算法和开发相关软件,致力于开发高性能计算机。
随着信息化社会的飞速发展,高性能计算已成为继理论科学和实验科学之后科学研究的第三大支柱。
在一些新兴的学科,如新材料技术和生物技术领域,高性能计算机已成为科学研究的必备工具。
同时,高性能计算也越来越多地渗透到石油工业等一些传统产业,以提高生产效率、降低生产成本。
金融、政府信息化、教育、企业、网络游戏等更广泛的领域对高性能计算的需求也迅猛增长。
1 国际研究现状和发展趋势1.1 高性能计算机电子计算机在诞生之初主要就是为科学计算服务的。
到20世纪60年代,随着技术的成熟,计算机开始走向商业领域,且应用范围越来越广。
为有别于“通用计算机”,专门针对科学计算进行优化设计的计算机开始被称为“高性能计算机”(HPC)。
1.1.1 高性能计算机发展历史20世纪70年代出现的向量计算机可看作是第一代HPC,通过在计算机中加入向量流水部件,大大提高了科学计算中向量运算的速度。
其中较著名的有CDC系列、CRAY系列、NEC的SX系列和中国的银河一号及中科院计算所的757计算机。
80年代初期,随着VLSI技术和微处理器技术的发展,向量机一统天下的格局逐渐被打破,“性/价比”而非单一性能成为衡量HPC系统的重要指标。
90年代初期,大规模并行处理(MPP)系统已开始成为HPC发展的主流,MPP系统由多个微处理器通过高速互联网络构成,每个处理器之间通过消息传递的方式进行通讯和协调。
代表性系统有TMC的CM-5、Intel Paragon、中科院计算所的曙光1000等。
较MPP早几年问世的对称多处理(SMP)系统由数目相对较少的微处理器共享物理内存和I/O总线形成,早期的SMP和MPP 相比扩展能力有限,不具有很强的计算能力,但单机系统兼容性好,所以90年代中后期的一种趋势是将SMP的优点和MPP的扩展能力结合,发展成后来的CC-NUMA结构,即分布式共享内存。
其代表为Sequent NUMA-Q、SGI-Cray Origin、国内的神威与银河系列等。
在发展CC-NUMA同时,机群系统(Cluster)也迅速发展起来。
机群系统是由多个微处理器构成的计算机节点通过高速网络互连而成,节点一般是可以单独运行的商品化计算机。
机群系统比MPP具有更高的性价比,其代表是IBM SP2,国内有曙光3000、4000,联想深腾1800、6800等[1,3]。
1.1.2 高性能计算机研究现状与发展趋势每年6月和11月发布的TOP500一直是全球HPC领域的风向标[4],排行榜的变化折射出全球HPC在技术和应用方面的研究现状和发展趋势。
第28届全球TOP500 HPC排行榜于2006年11月14日在美国召开的SC06大会上正式对外发布,最新排行榜反映出如下一些新的变化。
(1)总体性能趋势。
TOP500组织称,最新全部500套系统的总体计算性能将达到3.53千万亿次每秒(Pflops),而半年前只有2.79Pflops,一年前是2.30Pflops。
能够进入TOP500 HPC系统的Linpack性能已从半年前的2.026万亿次每秒(Tflops)上升到2.737Tflops。
而进入前100位的系统Linpack 性能则从半年前的4.713Tflops上升到6.619Tflops。
(2)美国霸主地位牢不可破, TOP10美国占7套。
美国仍然是HPC的最大用户,在研发和应用领域都遥遥领先。
此次TOP500排行榜中,一共有309套安装在美国,美国在HPC领域的综合发展水平依然是全球第一,其全球霸主地位仍然牢不可破。
欧洲有所复苏,共有92套系统,超过亚洲的79套,重回第二位。
在欧洲,英国是最大用户,拥有30套系统,其次是德国,拥有18套。
亚洲最大的用户是日本,拥有30套,而中国则从半年前的28套减少到18套。
(3)厂商:IBM和HP是最大赢家。
当前TOP500中各个性能档次的大多数系统都来自IBM和HP。
IBM仍然是TOP500的领导者,所占份额为47.2%。
HP 为第二大厂商,占31.6%,但HP此次未能进入TOP10。
份额超过3%的其它制造商为:SGI(4.0%)、DELL(3.6%)、CRAY(3.0%),这三大厂商都有系统入选TOP10。
(4)体系结构:Cluster大行其道,MPP不容忽视。
工业标准化的机群系统Cluster仍占据TOP500 HPC排行榜的垄断地位,361套系统,占72.2%。
绝大部分的机群系统来自IBM和HP,主要面向工业和商业的低端应用领域。
采用星群(Constellations)结构的系统为31套,比半年前的38套有所减少。
而108套面向高端市场的MPP结构系统比半年前的98套有所回升。
(5)处理器:AMD大获增长,Inetl仍是最大赢家。
目前,TOP500共有263套系统采用英特尔处理器,占52.6%,比一年前的333套(66.6%)有较大幅度下降。
形成鲜明对比的是,AMD的皓龙系列处理器从一年前的56套(占11.20%)增加到现在的113套(占22.6%),并首次超过IBM的Power,成为现在TOP500中应用最多的第二大处理器。
另有91套系统采用IBM的Power处理器(占18.2%),而一年前只有72套(占14.4%)。
另外,双核处理器也已获广泛应用。
已有76套系统采用皓龙双核CPU,31套采用了英特尔最新推出的Woodcrest双核至强。
(6)互连网络:InfiniBand增长迅速。
尽管半年前有256套系统采用千兆以太网,而现在只有213套,但千兆以太网仍然是用得最多的内部系统连接技术。
Myricom公司的Myrinet从87套减少到了79套。
相反,InfiniBand 技术获得了迅猛增长,从半年前的36套增加到现在的78套。
(7)操作系统:Linux成为首选。
Linux目前已成为HPC的首选操作系统。
当前TOP500排行榜中有376套系统使用了Linux操作系统,比重为75.2%,而2001年仅有39套;相比之下,此次只有86套使用Unix操作系统,而2001年是443套。
短短几年时间,TOP500 中操作系统的格局发生了翻天覆地的变化。
网络化将是HPC最重要的趋势,网格(Gird)已成为高性能计算一个新的研究热点。
网格将分布于全国的计算机、数据、存储设备、用户、软件等组织成一个逻辑整体,各行业可以在此基础上运行各自的应用网格。
1.2 并行算法和并行编程环境并行计算是提高计算机系统计算速度和处理能力的一种有效手段,它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题划分为不同的时间段,在某一个时间段内分解成若干个部分,各部分均由一个独立的处理机来完成。
1.2.1 并行算法算法是求解问题的方法和步骤,而并行算法就是用多台处理机联合求解问题的方法和步骤。
并行算法执行过程是将给定的问题首先分解成若干个尽量相互独立的子问题,然后使用多台计算机同时求解它,从而最终求得原问题的解。
并行算法作为并行应用开发的基础,在并行应用中具有举足轻重的地位[2]。
从历史上看,20世纪70年代末和80年代初是并行算法研究的顶峰时期,最著名的成果是递归问题的向量化。
随着多向量处理并行计算机(如CRAY Y-MP,YH-2)的出现,既要考虑多处理机间的任务级大粒度并行,又要考虑单处理机上向量级细粒度并行的算法在80年代初期和中期比较流行。
基于SIMD 并行计算机设计的并行算法在80年代中期较热门,但因缺少通用性,过分依赖机器,程序设计复杂,随着80年代后期高性能计算机的发展,很快被淘汰。
目前,并行算法的设计以MIMD类为主流,要求具有可扩展性和可移植性。
90年代中期后,并行算法研究渐渐面向实际而内容有所拓宽,不但研究并行算法的设计与分析,同时也兼顾到并行机体系结构和并行程序设计。
近几年来,随着半导体器件工艺水平的提高以及计算技术和通信网络的迅速发展,双CPU或4CPU的高档机已随处可见,HPC的普及,也给并行算法的研究带来新的机遇。
同时,近几年来由于硬件技术的飞速发展,使得拥有成千上万个CPU的HPC相继研制成功,如何充分有效地利用如此巨量的CPU,成为并行算法研究面对的一个极富挑战性的问题。
1.2.2 并行编程环境当前,比较流行的并行编程环境可分为3类:消息传递、共享存储和数据并行。
它们的主要特征如表1所示。
(1)消息传递。
在消息传递并行编程中,各个并行执行的任务之间通过传递消息来交换信息、协调步伐、控制执行。
消息传递一般是基于分布式内存的,但同样也适应于共享内存的并行计算机。
目前,大量并行程序采用的都是基于消息传递的并行编程方式。
基于消息传递的并行编程环境中,最流行的是PVM(Parallel Virtual Machine)和MPI(Message Process Interface)。
PVM[5]是由美国的Oak Ridge国家实验室、Tennessean大学、Emorg大学、CMU大学等联合开发而成,能够将异构的Unix计算机通过异构网络连接成一个“虚拟”的并行计算系统,为其上运行的应用程序提供分布式并行计算环境。
目前几乎所有的并行计算系统都支持PVM。
MPI[6]是一种基于消息传递的并行编程接口,而不是一门具体的语言,目前已发展成为消息传递模型的代表和事实上的工业标准。
1997年7月在原来MPI-1的基础上推出了MPI的扩充部分MPI-2,MPI-2主要扩充了3个方面:并行I/O、远程存储访问和动态进程管理。
MPICH是Linux平台下最重要的一种MPI实现,是一个与MPI规范同步发展的版本。
LAM(Local Area Multicomputer)是Linux平台下另一免费的MPI实现。
所有的并行计算机制造商都提供对MPI的支持。
(2)共享存储。
共享存储并行编程主要利用添加并行化指令到顺序程序中,由编译器完成自动并行化。
共享存储模型仅被SMP和DSM并行计算机所支持。
共享存储的编程标准包括Pthreads、X3H5和OpenMP等,其中OpenMP是最常用的共享存储并行编程方式。
OpenMP[7]是一组指令与所支持的运行时库例程的集合,用来支持多线程应用的编程。
Intel、IBM、HP、Sun、SGI等厂商都提供对OpenMP的支持。