首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 140 毫秒
1.
李士刚  胡长军  王珏  李建江 《软件学报》2013,24(12):2782-2796
低功耗及廉价性使得异构多核在超级计算机计算资源中占有重要比例.然而,异构多核具有高带宽及松耦合一致性等特点,获得理想的存储及计算性能需要更多地考虑底层硬件细节.实现了一种针对典型的异构多核Cell BE 处理器的多级并行模型CellMLP,通过C 语言扩展编译指导语句,实现了对数据并行、任务并行以及流水并行编程模型的支持,提高了并行程序生产率.运行支持优化方面,数据并行采用SPE 并行数据传输、双缓冲等优化手段来提高数据传输带宽;任务并行使用一种新式混合任务队列以支持异步任务窃取,降低SPE 线程间竞争,提高了任务并行的可扩展性;流水并行首次使用阻塞信号传输机制实现SPE 线程间的低开销同步操作.实验对Stream,NASBenchmark 及BOTS 等应用进行了测试,结果表明,CellMLP 可对多种典型并行应用进行高效支持.与目前同类编程模型SARC 及CellSs 进行性能对比,其结果表明,CellMLP 实际数据传输带宽以及非规则应用的支持方面具有明显优势.  相似文献   

2.
多核处理器并行编程模型的研究与设计   总被引:2,自引:0,他引:2  
为了在多核处理器上充分利用多核资源以提升程序性能,研究了多核处理器的体系结构和多核环境下可能影响并行程序性能的因素,实现了基于任务的并行编程模型.该模型提供了单任务数据并行和多任务并行两种并行处理方式,其中单任务数据并行使用cache块技术划分数据集,多任务并行使用任务密取的任务调度策略.用该模型实现了计算斐波那契数列的递归算法,实验结果表明,使用该模型编写多核并行程序可以达到较高的相对于串行计算的加速比.  相似文献   

3.
随着计算机硬件的发展,多核并行计算在计算机软件及应用领域的出现率也越来越频繁。目前的多核编程模型采用线程级并行模型,现有的多线程并行编程模型主要有线程库、指令模型和任务式模型三种。提出一种与MPI并行编程模型相似的基于通信的方法在Win32平台上来实现并行编程,在此基础上实现MTI并行编程模型。通过若干典型的测试给出使用MTI进行并行编程的执行结果,结果表明MTI是有效、易用的。  相似文献   

4.
并行编程模型在分布式计算中发挥着很重要的作用,随着人们对高性能计算需求的不断扩大和各种新技术的出现,并行编程模型也处于不断的发展和完善之中.对两种主要的编程模型进行了详细的分析和研究,针对前两种模型的优缺点分析并研究了两级并行模型的使用范围和优势等,最后针对硬件的新发展提出了新的编程模型的发展TBB+MPI.并在基于CMP的集群系统中实现丁矩阵相乘的算法.实验结果显示TBB+MPI在多核集群编程方面有明显的优势,因此模型TBB+MPI更适合于多核集群.  相似文献   

5.
为方便科研人员使用Baytap-G潮汐分析软件,基于C#.NET程序设计语言设计了一套潮汐分析辅助软件,实现了Baytap-G软件的封装,完成了输入数据格式的自动转换、输出数据的自动提取,以及水位、振幅、相位数据的可视化展示;在介绍C#.NET语言中任务(TASK)并行编程模型的基础上,详细讨论了绘制振幅、相位图任务分解、并行化程序设计考虑及其实现;实验结果表明,合理设计并行程序可以充分利用多核计算机的计算资源,提升程序运行效率,但是过多的任务数、不均匀的工作负载通常会影响并行程序的效率。  相似文献   

6.
凭借着高性能,低功耗的特性,多核处理器已经占据了目前的主要市场.提出一种多核处理平台上基于任务图模型的调度策略.建立了多核平台上任务图的空间与时间并行调度模型;针对任务图的空间并行与时间并行调度模型提出了并行节点合并、分配的优化算法与流水线并行的优化算法.最后,提出将优化的空间与时间并行调度技术相结合的并行调度策略.通过实验验证,本文提出的算法比其他多核并行调度算法降低了处理器核心间的通信与同步开销,提高了系统的计算效率与吞吐量.  相似文献   

7.
在集群多核CPU环境下的等高线并行提取方法   总被引:1,自引:0,他引:1       下载免费PDF全文
分析集群环境下分布式存储编程模型和多核CPU环境下共享存储编程模型各自的优缺点,采用结合集群和多核CPU的并行环境来取长补短;并研究其在等高线提取中的相关并行算法,其中以建立三角网和跟踪等高线作为共享存储并行的研究实例;最后通过实验验证了该并行方案的可行性。  相似文献   

8.
周杰  李文敬 《计算机科学》2017,44(Z11):586-591, 595
为解决多核机群Petri网并行化过程中,运用MPI+OPenMP混合编程实现同步会出现死锁的问题,提出了基于三层混合编程模型的Petri网并行算法。首先,根据事务内存的同步优势,在多核机群环境下构建MPI+OPenMP+STM的三层编程模型;然后,对Petri网的几何模型与代数模型的并行化进行分析,建立MPI+OPenMP+STM三层结构的Petri网并行模型,并对三层混合编程模型的Petri网并行算法进行设计与分析;最后,通过示例进行编程验证,该算法的运行效率明显优于其他编程模式,而且Petri网的规模越大,其并行计算的效果就越明显。因此,该算法是多核机群环境下模拟Petri网并行运行的一种高效且可行的算法。  相似文献   

9.
针对嵌入式片上多处理器MPSoC(multiple processor system on chip)平台下任务并行化分配的问题,从理论上对任务调度进行了建模,针对模型中的任务间依赖问题,给出了层次任务图的分析模型;结合量化后函数的开销和OpenMP并行化思想,提出了基于复制分治调度策略的并行方案;以例子滤波算法为例,对任务并行化进行验证,实验结果分析表明,本文提出的并行化方案,合理的对任务进行分配,改善了多处理器的负载平衡,降低了处理器间通讯开销,具有较大的加速比,满足嵌入式多核平台下任务并行化的需求.  相似文献   

10.
TBB多核编程及其混合编程模型的研究   总被引:7,自引:0,他引:7  
多核处理器越来越普及,如何通过软件技术最大提升CPU每个核心的使用率,成为热点问题.引入多核并行编程模型Threading Building Blocks,并与raw threads、OpenMP进行各方面详细比较,分析了其优劣.并研究了TBB结合MPI在SMP集群系统上实现高效的混合并行计算应用的方法.最终发现TBB在多核编程方面有显著的优势.TTB和MPI的结合,又为多核处理器结点集群提供了并行层次化结构,大大优化集群的性能.  相似文献   

11.
王一拙  陈旭  计卫星  苏岩  王小军  石峰 《软件学报》2016,27(7):1789-1804
任务并行程序设计模型已成为并行程序设计的主流,其通过发掘任务并行性来提高并行计算机的系统性能.提出一种支持容错的任务并行程序设计模型,将容错技术融入到任务并行程序设计模型中,在保证性能的同时提高系统可靠性.该模型以任务为调度、执行、错误检测与恢复的基本单位,在应用级实现容错支持.采用一种Buffer-Commit计算模型支持瞬时错误的检测与恢复;采用应用级无盘检查点实现节点故障类型永久错误的恢复;采用一种支持容错的工作窃取任务调度策略获得动态负载均衡.实验结果表明,该模型以较低的性能开销提供了对硬件错误的容错支持.  相似文献   

12.
杨际祥 《计算机科学》2016,43(4):188-191
多核并行编程的开发效率和加速比是影响多核进一步发展的两个重要问题。针对这两个问题,设计并实现了一个轻量级的多核多线程库(UCMLib)。该库基于任务原语概念,提供了数据并行性和任务并行性两种表达逻辑并行性的模式;对多线程编程的复杂性进行了封装和抽象,为开发者提供了高级的编程方法而不必显式地考虑锁和竞争,并降低了并行编程难度以提高开发效率。UCMLib的任务调度器基于对任务队列和工作者线程的有效构建和管理来提高并行程序的加速比。性能测试表明,当计算规模增大时,UCMLib在数据并行性与任务并行性两方面获得了比TPL库略优的加速比。最后给出了可能的性能改进方法以及需要进一步研究的问题。  相似文献   

13.
Task parallelism is an approach to parallel programming that has recently gained traction because of its compatibility with the predominant object‐oriented languages and its low overhead compared to threading approaches. Parallel Task is an Open Source task‐parallel compiler and runtime system for object‐oriented languages, in particular Java. It is very flexible and expressive, demonstrated by the fact that it can be directly employed to implement most parallel computing patterns. The only notable exception has been the pipeline pattern where many data items are streamed through a number of processing stages. This is not surprising, as task parallelism is generally not compatible with the pipeline pattern. In this paper, we investigate how the pipeline pattern can be elegantly and efficiently implemented in a task‐parallel environment. To do so, we extend Parallel Task with the concept of implicit futures to allow creating pipelines in an intuitive and object‐oriented manner. Our experimental evaluation uses the extended Parallel Task to implement pipelines of different lengths and characteristics and compares with manual implementations. The evaluation demonstrates very good performance and scalability of the proposed task‐parallel pipeline approach. Copyright © 2014 John Wiley & Sons, Ltd.  相似文献   

14.
数据并行虽然已经获得了广泛的应用,但是,仍然有一些应用程序不适于数据并行语言的并行模式,如树结构算法。数据并行与任务并行的结合可以很好地解决这些问题。该文主要讨论了在数据并行中引入任务并行时,遇到的共享变量、代码生成和处理器分配等问题,比较和分析了基于编译、基于语言和基于协作库的方法。  相似文献   

15.
16.
Multi-core systems are any computing device nowadays and stream processing applications are becoming recurrent workloads, demanding parallelism to achieve the desired quality of service. As soon as data, tasks, or requests arrive, they must be computed, analyzed, or processed. Since building such applications is not a trivial task, the software industry must adopt parallel APIs (Application Programming Interfaces) that simplify the exploitation of parallelism in hardware for accelerating time-to-market. In the last years, research efforts in academia and industry provided a set of parallel APIs, increasing productivity to software developers. However, a few studies are seeking to prove the usability of these interfaces. In this work, we aim to present a parallel programming assessment regarding the usability of parallel API for expressing parallelism on the stream processing application domain and multi-core systems. To this end, we conducted an empirical study with beginners in parallel application development. The study covered three parallel APIs, reporting several quantitative and qualitative indicators involving developers. Our contribution also comprises a parallel programming assessment methodology, which can be replicated in future assessments. This study revealed important insights such as recurrent compile-time and programming logic errors performed by beginners in parallel programming, as well as the programming effort, challenges, and learning curve. Moreover, we collected the participants’ opinions about their experience in this study to understand deeply the results achieved.  相似文献   

17.
Ming Hsiang Huang  Wuu Yang 《Software》2020,50(10):1877-1904
OpenACC is a directive-based programming model which allows programmers to write graphic processing unit (GPU) programs by simply annotating parallel loops. However, OpenACC has poor support for irregular nested parallel loops, which are natural choices to express nested parallelism. We propose PFACC, a programming model similar to OpenACC. PFACC directives can be used to annotate parallel loops and to guide data movement between different levels of memory hierarchy. Parallel loops can be arbitrarily nested or be placed inside functions that would be (possibly recursively) called in other parallel loops. The PFACC translator translates C programs with PFACC directives into CUDA programs by inserting runtime iteration-sharing and memory allocation routines. The PFACC runtime iteration-sharing routine is a two-level mechanism. Thread blocks dynamically organize loop iterations into batches and execute the batches in a depth-first order. Different thread blocks share iterations among one another with an iteration-stealing mechanism. PFACC generates CUDA programs with reasonable memory usage because of the depth-first execution order. The two-level iteration-sharing mechanism is implemented purely in software and fits well with the CUDA thread hierarchy. Experiments show that PFACC outperforms CUDA dynamic parallelism in terms of performance and code size on most benchmarks.  相似文献   

18.
LilyTask是一种以任务为单位、基于任务并行的计算模型和程序设计模型。本文介绍的LilyTask系统基于LilyTask模型,对在分布内存环境下实现任务池系统进行了有益的尝试,较好地解决了任务并行在分布存储环境下遇到的任务间关系、嵌套任务、一致性等相关问题。此外,本系统还采用函数索引技术实现分布环境下的任务迁移,通过任务窃取策略有效地实现负载平衡。  相似文献   

19.
为研究并行图形绘制技术,介绍图形绘制的流水线过程,对其内在的可并行性进行分析,研究并行绘制的实现方式,包括流水线并行、数据并行和作业并行,以及前分布拼接合成、中分布拼接合成和后分布拼接合成,讨论并行绘制面临的主要问题及其发展趋势。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号