基于多核CPU的并行计算设计

合集下载

多核处理器体系结构及并行程序设计

多核处理器体系结构及并行程序设计


13
Floating Point
Integer
Floating Point
Integer
L1 D-Cache and D-TLB
L1 D-Cache and D-TLB
Even 2 floating point threads can be executed at the same time now (per processor) as there are multiple floating point execution units
– 只共享系统总线,独立缓存 – 高性能,资源冲突少

9

双核技术 VS. 超线程技术
• 双核是真正意义上的双处理器
– 不会发生资源冲突 – 每个线程拥有自己的缓存、寄存器和运算器
• 一个3.2GHz Smithfiled在性能上并非等同于3.2GHz P4 with HT 的2 倍
Integer
Rename/Alloc uop Queues Schedulers
BTB & I-TLB Decoder
Trace Cache
Floating Point
uCode ROM
2 threads CANNOT be executed at the same time (per processor) if
BTB & I-TLB Decoder
Trace Cache
Floating Point
uCode
ROM

14

多核技术与超线程技术的结合
Dual Core
2 threads/socket
Dual Core with Hyper-Threading

并行算法设计

并行算法设计

并行算法设计一、引言并行算法是指在多核处理器或分布式系统上同时执行多个子任务,以提高计算效率和处理速度的一种计算模式。

随着计算机硬件技术的不断发展,越来越多的问题需要借助并行算法来解决。

本文将介绍并行算法的设计原则和常见的设计模式,以及在实际应用中的一些注意事项。

二、并行算法设计原则1. 任务划分原则:并行算法的基础是将原本串行执行的任务划分成多个独立的子任务,并通过适当的调度算法分配给不同的处理器进行并行执行。

任务划分应尽量保持任务的独立性,避免数据依赖关系过多,以提高并行度和性能。

2. 数据分布原则:在设计并行算法时,应根据不同任务的计算量和数据量合理规划数据分布方式。

对于计算密集型任务,可以将数据均匀划分给多个处理器;对于数据密集型任务,可以采用数据分布策略来平衡负载和减少数据通信的开销。

3. 通信和同步原则:并行算法中,处理器间的通信和同步操作是必不可少的。

在设计并行算法时,应考虑如何减少通信和同步的开销,以提高整体的算法性能。

可以通过减少数据传输量、合理设置同步点等方式来优化并行算法的通信和同步操作。

4. 任务调度原则:任务调度是指将多个子任务合理地分配给不同的处理器进行执行的过程。

合理的任务调度策略可以提高并行算法的负载均衡性和吞吐量,并减少处理器间的竞争情况。

在设计并行算法时,应考虑任务划分和任务调度的关系,选择合适的调度策略来优化算法性能。

三、并行算法设计模式1. 分治法:分治法是指将一个大问题分解成多个相互独立的小问题,并通过递归的方式将小问题的解合并成大问题的解。

在设计并行算法时,可以将原问题划分成多个子问题,分配给不同的处理器并行解决,最后将子问题的解合并得到最终结果。

2. 数据并行:数据并行是指将数据划分成多个子集,分配给不同的处理器并行处理。

对于同一类操作,各处理器可以独立计算自己所负责的数据子集,最后将各处理器计算得到的结果合并得到最终结果。

3. 流水线:流水线是指将一个任务划分成多个子任务,并通过不同的处理器按照一定的顺序依次执行。

基于多核的OpenMp并行程序设计

基于多核的OpenMp并行程序设计
【技术研发 】 l 联鞭
基 于 多核 的O p enMp并 行 程 序 设 计
彭 曦 顾炳根 李展 涛 (桂林理工大学 信 息科 学与工程 学院 广西 桂林 541004)
摘 要 : 介绍 多核计算 的出现和 一种面 向共享存储 器的 多处理器 多线程并行 编程语 言OpenMp,然后再 以一个 实例来说 " ̄OpenMp在多核 下如何进 行并行程 序设 计,通过计算 加速 比说 明使用OpenMp编程后程序 执行效率得 到显著提 高
OpenMP是 一种 面 向共 享存 储器 的多处 理器 多 线程 并行 编程 语 言 ,线 程 间通 过共 享变 量传 递数 据结 果 。OpenMP标 准形 成 于1997年 ,它 是一 种API, 用于 编 写可 移植 的 多线 程应 用 程序 。OpenMP程 序 设计 模 型提 供 了一 组 与平 台无 关 的编 译指 令 、指 导命 令 、 函数 调用 和环 境变 量 ,可 以显 式地 指 导编 译器 如何 以及何 时利 用 应用 程 序 中的 并行 性 。OpenMP通 过对 原有 的 串行 代 码 插 入 一 些 指 导 性 的注 释 ,并 进 行必 要 的修 改 ,可 以 快 速 的 实现 并 行 编 程 ,而 这些 注释 的解 析 由编译 器所 完成 。 目前 ,C,c++,Fortran语 言都 支 持OpenMp,所 有OpenMp的并 行化 都 是通 过使用 嵌 入到c,c++或 Fortran源 代 码 中 的编 译制 导语 句来 达到 的 。
Structured—block
OpenMP的所有 编 译指 导 语句 以#pragma omp开 始 ,其 中directive部分 就 包 含 Openllel for、
section、 sections、 single、 master、 critical、 flush、 ordered,

多核处理器并行编程模型的研究与设计

多核处理器并行编程模型的研究与设计
摘 要 : 了在 多 核 处 理 器 上 充 分 利 用 多 核 资 源 以 提 升 程 序 性 能 , 究 了 多 核 处 理 器 的 体 系结 构 和 多核 环 境 下 可 能 影 响 并 为 研
行程序 性 能的 因素 ,实现 了基 于任 务 的并行 编程模 型 。该 模型提 供 了单任 务数据 并行 和多任 务并行 两种 并行处 理方 式,其 中单任 务数 据并 行使 用 cce ah 块技 术 划分数 据 集, 多任 务并行使 用任 务 密取 的任 务调度 策略 。 用该模 型 实现 了计 算 斐波那 契 数 列的递 归算 法, 实验 结果表 明 , 用该模 型编 写多核 并行程 序可 以达到 较 高的相对 于 串行 计 算的加速 比 。 使
C h —o L n AO Z eb , I g Qi
(c o l f o p tr n i e n dS i c, S a g a U ie i , S ag a 2 0 7 , C ia S h o o m ue g er ga c ne hn hi n r t C E n i n e v s y hn h i 0 0 2 hn)
Ab t a t T l t iet emu t c r e o r e nmu t c r r c s o st sr c : o f l u i z l — o e r s u c so l — o ep o e s r i r v r g a p r o ma c , ap r l l r g a u y l h i i o mp o ep o r m e f r n e a al o r mmi g ep n mo e a e n t s si d l s d o k i lme t d wi e s d f h y t m r h t c eo l — o ep o e s r n e f co s h t y i f e c b a s mp e n e t t t y o es se a c i t fmu t c r r c so d t a t r a hh u t e ur i a h t ma l n e n u t ep ro ma c f a al l r g a . On —a k d t a al l m n l - s aa ll m r r v d db i o e . Ca h l c i g h e f r n eo p r l o r ms ep et s aap r l i a dmu t t k p r l i a ep o i e yt s es ia es h m d1 c eb o k n t c n q e i u e o dv d a as t n o e t s aa p a ll m n r i g se l g i u e c e u e ts si l — s a a ll m . e h iu s d t i i e d t e n — k d t a l i a d wo k n t a i s d t s h d l k n mu t t kp l i s i a r es n s o a ia r es

C语言中的并行计算与多核处理器编程

C语言中的并行计算与多核处理器编程

C语言中的并行计算与多核处理器编程C语言是一门广泛应用于嵌入式系统、操作系统和科学计算等领域的高级编程语言。

它以其高效性和灵活性而闻名,而并行计算和多核处理器编程是当今计算机领域中的热门话题。

本文将详细介绍C语言中的并行计算和多核处理器编程,包括并行计算的概念、多核处理器的原理以及如何有效地在C语言中实现并行计算。

一、并行计算的概念并行计算是指多个操作同时进行,以提高计算速度和系统性能的计算方式。

与串行计算不同,串行计算是指按照顺序逐个执行操作。

并行计算的主要形式有数据并行和任务并行。

数据并行是指将大规模的数据集分解成多个小规模的数据集,然后分配给多个处理器同时处理。

任务并行是指将一个大任务分解成多个小任务,然后分配给多个处理器同时执行。

二、多核处理器的原理多核处理器是指在一个物理芯片上集成了多个处理器核心,每个处理器核心都具有独立的运算和存储能力。

多核处理器通过并行计算的方式,可以同时执行多个任务,提高系统的性能。

多核处理器采用了多级缓存、数据共享和并行调度等技术,以实现任务的分配和协调,从而更有效地利用处理器的资源。

三、C语言中的并行计算在C语言中实现并行计算需要依赖并行计算库和多线程编程技术。

常用的并行计算库有OpenMP和MPI。

OpenMP是一种基于共享内存的并行计算库,可以通过在代码中插入指令来实现并行化。

MPI是一种基于消息传递的并行计算库,用于在不同处理器之间进行通信和协调。

同时,C语言还提供了多线程编程技术,可以通过创建多个线程来实现并行计算。

四、多核处理器编程在多核处理器编程中,任务的划分和调度是关键。

可以通过任务划分和负载均衡来实现有效的并行计算。

任务划分是将一个大任务分解成多个小任务,然后分配给多个处理器核心执行。

负载均衡是保持各个处理器核心的工作量大致相同,避免出现任务执行时间过长或者某个处理器核心空闲的情况。

在C语言中,可以使用线程库如pthread来创建多个线程,并利用线程的特性进行任务划分和负载均衡。

计算机体系结构中的多核处理与并行算法

计算机体系结构中的多核处理与并行算法

计算机体系结构中的多核处理与并行算法计算机体系结构是指计算机硬件和软件之间的关系以及它们协同工作的方法。

多核处理和并行算法是计算机体系结构中重要的概念和技术,在处理大规模数据和复杂任务时发挥着重要作用。

本文将从多核处理和并行算法的定义、原理、应用以及未来发展等方面展开讨论。

一、多核处理的定义和原理多核处理是指在一台计算机中集成多个处理器核心,每个核心都可以同时执行多个指令和处理多个任务。

通过同时执行多个任务,多核处理可以提高计算机的计算速度和处理效率。

多核处理的原理是将多个核心配置在同一颗芯片中,通过内部互联结构实现核心之间的通信和数据传输。

多核处理的出现是为了解决传统单核处理器在处理大规模数据和复杂任务时遇到的瓶颈问题。

通过使用多核处理器,可以将任务划分为多个子任务,每个子任务由一个核心负责执行,从而实现并行处理,提高系统的处理能力和效率。

二、并行算法的定义和应用并行算法是指将一个计算任务划分为多个可并行执行的子任务,并利用多核处理器的并行计算能力,同时执行这些子任务,最终将结果集成为一个完整的计算结果。

并行算法可以充分利用多核处理器的计算资源,提高计算效率和处理速度。

并行算法的应用范围非常广泛,例如在图像处理中,可以使用并行算法实现快速的图像滤波和增强;在科学计算中,可以使用并行算法进行大规模的数值模拟和数据分析;在人工智能领域,可以使用并行算法进行机器学习和深度学习等任务。

三、多核处理与并行算法的关系多核处理和并行算法是相辅相成的关系。

多核处理提供了硬件基础,使得并行算法得以实施和发挥作用;而并行算法则充分利用了多核处理器的计算资源,并通过合理的任务划分和调度,使得多核处理器能够发挥最大的处理能力和效率。

在实际应用中,通过合理选择并行算法可以充分利用多核处理器的计算能力。

例如,在图像处理中,可以使用并行算法将图像划分为多个子区域,每个子区域由一个核心负责处理,最后将所有处理结果合并得到最终的图像处理结果。

基于多核集群系统的并行编程模型的研究与实现

基于多核集群系统的并行编程模型的研究与实现

基于多核集群系统的并行编程模型的研究与实现摘要:主要对并行计算的编程模型进行了研究,包括 mpi 和openmp 两种编程模型,同时提出了一种层次化混合编程模型。

并以计算π的问题为例,用 c 语言设计了混合编程模型下的程序,在以多核处理器作为节点的曙光 tc5000 集群上对三种编程模型下的求π程序进行了实验,同时将实验结果进行了性能分析和比较。

结果表明该混合并行算法具有更好的扩展性和加速比。

关键词:层次化;混合编程;多核集群;性能分析中图分类号:tp311 文献标识码:a 文章编号:1009-3044(2013)10-2349-04随着社会对计算机性能的要求越来越高,对高速并行计算的应用越来越广泛,多核集群系统得到了飞速的发展。

现在的并行计算机体系结构中绝大部分都是集群体系结构,并且大多数的集群节点是多核 smp。

因此多核集群系统具有一下特点:每一个节点都是一个共享存储的多处理机,而节点间是分布式的内存结构,它结合了基于分布式存储和基于共享存储的处理器的优点。

因此在多核集群系统上可以进行多种并行程序设计和实现,包括可以在节点间执行的基于消息传递的纯 mpi 编程模型,可以在节点内(多核 smp)执行的基于共享内存的openmp 编程模型,以及 mpi+openmp 的混合编程模型。

本文将对以上提到的三种并行编程模型进行研究,并对计算π的算法分别进行了三种编程模型的程序设计,最后用以多核处理器作为节点的曙光 tc5000 作为实验工具,对所设计的程序进行实现,并进行了性能比较。

1 mpi编程模型和openmp 编程模型在并行计算领域内,主要的并行编程模型有三类模型:数据并行、消息传递、共享变量。

其中基于消息传递的 mpi 编程模型和基于共享变量的 openmp 编程模型是最为流行的并行编程模型。

1.1 mpi 编程模型消息传递界面 mpi (message passing interface)是一种消息传递接口,是目前国内外最主流的编程模型之一。

了解计算机系统中的多核处理器和并行计算

了解计算机系统中的多核处理器和并行计算

了解计算机系统中的多核处理器和并行计算计算机技术在现代社会中扮演着越来越重要的角色。

为了满足不断增长的计算需求,人们开发了各种技术来提高计算机系统的性能。

其中,多核处理器和并行计算是最重要的两个方向。

本文将深入探讨多核处理器和并行计算的原理、应用以及未来发展趋势。

多核处理器指的是在一颗处理器芯片上集成多个处理核心。

与传统的单核处理器相比,多核处理器能够同时执行多个任务,大大提高了计算性能。

多核处理器的原理基于并行计算的概念。

并行计算指的是将任务分解为多个子任务,并在不同的处理器核心上同时执行这些子任务。

通过合理地划分任务,可以充分利用处理器的计算能力,提高计算效率。

多核处理器和并行计算的应用十分广泛。

在科学计算领域,很多复杂的计算问题需要大量的计算资源。

多核处理器可以将这些计算任务划分为多个子任务,并在多个核心上同时运行,从而提高计算速度。

比如,在天气预报领域,用多核处理器进行并行计算可以快速模拟和预测天气的变化。

在图像处理和视频编码领域,多核处理器可以并行处理图像和视频数据,提高处理速度和质量。

此外,多核处理器还可以应用于数据库管理、网络传输和数据分析等领域,提高系统的响应速度和吞吐量。

然而,多核处理器和并行计算也面临一些挑战。

首先,任务的划分和调度是一个复杂的问题。

如何将任务划分为合理的子任务,并将它们调度到不同的核心上执行,是一个需要深入研究的问题。

同时,多核处理器的并行计算需要良好的内存访问和数据共享机制,以避免数据冲突和竞争条件。

此外,多核处理器的功耗和散热问题也需要解决。

随着核心数量的增加,处理器的功耗和温度会迅速上升,对散热设计提出了更高的要求。

未来,多核处理器和并行计算还有很大的发展空间。

随着技术的进步,芯片制造工艺将逐渐提高,核心数量将继续增加。

同时,新的并行编程模型和工具将被开发出来,使开发者能够更方便地利用多核处理器的性能。

此外,人工智能和深度学习等新兴领域对计算性能的需求也将推动多核处理器和并行计算的发展。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

26/3192294长春工程学院学报(自然科学版)2009年第10卷第3期J.Changchun I nst .Tech .(Nat .Sci .Edi .),2009,Vol .10,No .3I SS N 100928984CN 2221323/N基于多核CP U 的并行计算设计收稿日期:2009-03-03作者简介:谷照升(1965-),男(汉),吉林集安,教授主要研究:数学应用。

谷照升(长春工程学院理学院,长春130012)摘 要:通过多核CP U 上多线程运算的效率分析,给出了相应的并行计算设计方案,并讨论了并行计算的发展趋势。

关键词:并行计算;多线程;多核中图分类号:TP316文献标识码:A文章编号:100928984(2009)03200922030 引言在科学研究、工程计算的诸多领域,如凝聚态物理、数据挖掘、航天技术等,经常存在大规模的计算需求。

这些计算任务有时还需要一定的实时性。

由于单台计算设备处理能力的局限性,并行计算成为解决这类问题的主要技术手段。

迄今为止,并行计算主要的实现模式是将一个较大的运行任务同时并行地分配到多个计算机上执行[1,2]。

由于各种大型计算一般采用的多是相应专业的商业化通用软件,而这些软件在设计上都是基于这种并行分布式系统,通过网络构架,以相对较低性能的微机机群获取高效率的计算能力,所以其综合运行需要依赖完善的接口、协议支持[1—4]。

其中,MP I (Message Passing I nterface )是国内外在高性能计算系统中使用最广泛的并行编程的消息传递接口标准。

这一标准移植性好、功能强大、效率高,有上百个函数调用接口,可以在各种提供外部扩展接口的高级编程语言中直接调用。

近几年计算机硬件技术与性能有了飞速的发展,多核、大内存乃至双CP U 的微机配置已成为主流。

与此同时,W in2000以后的MS 系列操作系统对多核CP U 以及双CP U 资源也提供了完美的支持。

而传统的面向机群的并行计算设计却无法利用多核CP U 所带来的硬件优势。

针对这一背景,如何更好地利用单机良好的CP U 多核资源,充分提高大型计算的性能和效率,就成为应该认真对待的问题。

1 基于多线程技术的并行计算1.1 单机多核CP U 环境下的计算性能分析为检验操作系统对多核CP U 的支持水平,笔者编制了专门的测试程序。

该程序在W indows XP 下分别对2、3、4个线程、无多线程(只有程序进程自身的主线程)4种情况,每个线程完成完全相同的一个较大的计算任务进行测试,只有程序主线程时也对应相同任务。

各线程同时开始,详细记录各线程开始、结束、总的耗时,精确到m s 。

之后,又同时运行2个本测试程序,用计时器控件控制每个程序,同时启动仅用主线程的相同计算,并记录各自的耗时。

在不同主频的2台I ntel 双核、2台I ntel 单核的单CP U 微机上分别做同样的测试。

为观测CP U 的使用率,测试过程中除系统本身和测试程序外,不运行其它程序。

测试结果见表1。

多机多次实际测试发现,即使是双核双线程模式,每个线程的耗时也不完全相等,但相差基本在100m s 以内,所以表1中多采用“≈”表示。

图1给出了I ntel 双核主频1.60GHz CP U 的Dell 笔记本上3个线程和主线程的测试结果。

图1 3个线程和主线程的测试结果表1 测试结果汇总CP U类型线程数任务总量各线程耗时总耗时同步程度说明CP U使用率1Q T T仅主线程50%22Q T1,T2Max(T1,T2)≈T T1≈T2同步结束100%双核33Q T1,T2,T3Max(T i)≈1.5T,i=1,2,3T i≤T j≈T k,i,j,k为1,2,3的一个排列1个提前结束,另2个同步结束100%44Q T i,i=1,2,3,4≈2T T i≈2T同步结束100%单核a=1,2,3,4aQ T a≈a T T a≈aT同步结束100% 根据实测结果,对完全用于计算任务状态的机器而言,可以给出下列结论:(1)对具有n核的CP U,采用m个线程并行计算,则只有当m≥n时,CP U的使用率才可以达到100%。

(2)对单核CP U(n=1),采用多线程(m>1)并行计算,不会降低运行效率。

或者说,增加线程数,不会影响计算效率。

(3)采用多线程(m>1)并行计算时,若要实现较好的过程同步,m应取n的整数倍。

(4)采用多线程并行计算时,每个线程所分配的任务量应尽可能相等。

(5)采用多进程(同时运行多个程序)并行计算时,从任务耗时和CP U使用率看,与多线程具有相同的结论,但由于操作系统对每个进程要分配独立的地址空间并加以管理,这导致了内存开销的增加。

当内存资源紧张时,各进程使用虚拟内存的概率会显著提高。

一旦不得不使用虚拟内存,运行效率将受到极大限制。

(6)多次测试还发现,使用默认的优先级,由于各线程的运行在一个进程中是相互独立的,对CP U 的分享也是对等的,而每个线程在完成自身计算任务时,一般又不涉及消息处理,所以各线程的耗时均小于主线程耗时,但时差均在0.5s内。

1.2 多线程技术并行计算的设计方法与优势基于32位、64位W indo ws系统上的多线程编程,主要通过系统的AP I实现。

目前的主要编程语言工具对此都已做了很好的封装。

例如,在Del phi 中,通过继承TThread类,即可建立自己的一个线程类。

T CalculateThread=class(TThread)p rivatep r otected p r ocedure Execute;override;public startTi m e,endTi m e:T Dateti m e; …… construct or Create(CreateSus pended:Boolean; var Edit_:TEdit;end_,which_:integer); p r ocedure free;end;编程的主要工作是对“p r ocedure Execute;over2 ride;”方法填写您所需要的代码。

线程运行的机理是:一经创建一个线程类的实例,该实例可根据CreateSus pended决定立即执行或由指令Resume开始执行p r ocedure Execute的运行代码。

这为我们进行程序移植或修改提供了极大的方便,原有的大量面向机群的并行计算代码可以更容易改为多线程并行计算代码。

需要修改的主要是数据共享与交换部分,而面向MP I的代码则可以完全删除了。

由于多线程计算仍然处于同一操作系统,因而线程间的协调有更灵活的控制机制:可以使用系统内部的消息传递,也可以使用全局变量作标记识别,还可以通过自定义事件来响应各线程进度状态。

因为多线程并行计算是基于单机实现的,而单机存在内存资源的瓶颈限制,所以,在进行多线程并行计算编程时,各线程的计算模块所使用的大块数据应尽可能采用地址参数传递。

需要注意的是,一个线程完成其计算任务后,并不会自动释放该实例,需要在程序中通过调用其析构方法删除实例以回收所占内存资源。

改造性移植的具体实现方法是,将原有分派到机群系统中各结点(工作站)的任务规划为适当的数目,修改结点程序的数据结构与接口,并将相应的计算代码封装到线程类的执行方法“p r ocedure Exe2 cute;override;”中,选择合适的各线程协作控制方案完成任务的整体进度调度。

比较而言,传统的机群并行计算设计的优点是:能够充分利用闲散设备资源,并有着成熟的软件和技术支持。

主要缺点在于:不易时间同步以至于那些性能相对较好的机器在某些步骤因等待而降低其39 谷照升:基于多核CP U的并行计算设计使用效率;编程设计烦琐,整体协调、调度复杂;需要网络环境支持;对日渐普及的多核计算设备,不能加以有效利用;更重要的是,机群并行计算设计的系统中一旦某台工作站运行失败,会导致整个系统在相应环节不得不延时等待甚至整体放弃。

多核CP U 单机上采用多线程并行计算的优点是:时间同步,简化接口设计,减少整体协调与调度开销,有效提高效率。

不足之处是缺少足够的软件支持,并受单机物理内存资源的限制。

2 发展趋势分析近年来,随着物理制作工艺技术的局限,仅靠提高CP U的频率来获取更高的运算速度已经非常困难,多核、多CP U方案已逐步成为微机的普及型配置。

若以办公、娱乐等为主要用途,操作系统本身按多进程自然实现了多核、多CP U带来的性能优势。

但以大型科学计算为主要任务的设备却难以有效地利用这些硬件资源,而正是这些作业,更需要高速的计算性能支持。

所以,改进现有的各种大型科学计算程序以充分发挥多核优势,是并行计算发展的大趋势。

不久前,微软发布了Parallel Extensi ons f or the .NET Fra me work3.5,其中包含了一个核心的任务并行库Task Parallel L ibrary(TP L),对许多数学计算提供了可能的并行支持。

但这一支持只是“可能”,因为各种科学计算有其自身的复杂性,要真正实现并行,只有程序员本身透明地给出相应的计算结构,才是最可靠的保障。

TP L的发布,充分反映了针对多核采用并行计算这一发展趋势,也为此提供了一定的技术模式或构架。

前文已经指出,这种基于多线程的并行设计,即使在单核CP U上,也并不影响整体计算性能或效率,所以它是完全向前兼容的。

一个好的程序应该对每一个独立的耗时明显的允许计算并行处理的模块(如某些矩阵运算)尽可能采用多线程并行计算,并由此逐步形成新的代码库,从而完成对传统程序的彻底改造。

另一方面,针对多核的多线程设计,与现有的机群式并行计算并不存在矛盾或冲突。

因为多线程是针对本机的一个独立任务的程序设计,它依然可以作为机群并行计算的一个工作站,完成其自身承担的计算任务,只是完成的速度更快了。

当然,多核的支持,比如2×4核CP U,在多线程模式下,其能力可能已经远胜于一个用于并行计算的机群,使得一个原来很庞大的计算任务,已不再需要传统的复杂的并行计算。

这样看来,大量中小规模的传统机群并行计算将由单机实现,而现在超大型的各种并行计算系统,在每个工作站都进一步采用了多线程技术后,其整体速度会成倍提高。

当年,“千年虫”导致大量软件系统包括开发工具“不得已”进行一次全面升级。

如今,面对多核硬件优势,以工程计算为主要任务的各种专业软件对某些设计加以改进,则是“义不容辞”。

参考文献[1]赵庶旭,朱正平,孙传庆.基于MP I的并行计算系统构建及评测[J].兰州交通大学学报(自然科学版),2004,23(04):91—93.[2]何素贞,李书平,吴晨旭.高性能计算集群系统的设计和实现[J].厦门大学学报(自然科学版),2004,43(06):879—881.[3]吕捷,张天序,张必银.M P I并行计算在图像处理方面的应用[J].红外与激光工程,2004,33(05):496—499. [4]陈翔,刘金刚.一种适合于并行计算的新方法———相对标准法[J].计算机工程与应用,2002,24:91—93.D esi gn for m ulti kernel CPUba sed para llel com puti n gG U Zhao-sheng(Faculty of B asic Courses,Changchun Institu teof Technology,Changchun130012,China)Abstract:The parallel computing p r ogra m with multi2 kernel CP U was put f or ward by analysis of multithread2 ed operati on efficiency in multi2kernel Pr ocess or,and the devel opmental trend of parallel computing were dis2 cussed.Key words:parallel computing;multithread;multi2ker2 nel49长春工程学院学报(自然科学版)2009,10(3)。

相关文档
最新文档