预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

多核平台上非规则应用的并行算法和并行编程模型研究 随着计算机技术的不断发展,多核平台的应用越来越普及。在这样的平台下,非规则应用的并行算法和并行编程模型成为了研究的热点,这是因为非规则应用复杂度高、算法难度大,而多核平台又具有大规模并行计算的优势。 一、非规则应用 在计算机应用中,规则应用和非规则应用常常被提到。规则应用是指具备可度量性,可重复性,可调节性的应用,例如图像处理、数据挖掘等,这些应用有比较清晰的算法和计算流程,容易刻画和推广。 而非规则应用则具有不可预测性、不确定性以及高度复杂性等特点,常见的非规则应用有生物计算、气象学模型、计算流体力学等,这些应用的算法和计算流程并不清晰,需要一定的分析和模型来展现他们的内在规律。比如生物计算需要对不同的因素进行分析,而计算流体力学则需要对各种物性参数进行求解。 二、并行算法 在多核平台上,非规则应用需要通过并行算法来进行计算,这样才能最大化地利用硬件资源,提高计算效率。但是,与规则应用不同的是,非规则应用的并行算法不容易“均匀切分”,因此更需要特殊的算法设计和分析。 基于“WorkStealing”思想的并行执行算法是非常高效的一种,并行程序基于递归的分割策略,在执行步骤中进行动态调度,从而实现均衡的处理器负载,进而提高执行效率。此外,也可以应用分治算法,完成任务的分割和子问题的求解。 三、并行编程模型 除了并行算法外,多核平台上非规则应用的并行编程模型也是一个需要研究的方向。当前主流的编程模型包括MPI(MessagePassingInterface)和OpenMP两类,其中,MPI主要用于集群的编程实现,基于消息传递的并行模型可以有效地处理分布式内存共享;而OpenMP则是一种基于线程的并行模型,可以方便地迁移到多核平台上,是一种较为流行的并行编程技术。 此外,近年来还出现了一些基于异步执行的编程机制,如Cilk和TBB。这些编程机制对于非规则应用非常适用,通常采用递归的方法进行任务分割,让每个线程在处理自己的任务的同时也负责获取其它线程可能空闲出来的任务自行执行,从而实现异步执行。 四、结论 总的来说,在多核平台上进行非规则应用的并行计算需要特殊的并行算法和并行编程模型,目前也有很多实用的工具和技术,如OpenMP、Cilk、TBB等。但是,由于非规则应用的复杂性和实现方式的多样性,每个应用需要采用不同的算法和工具来实现并行化。因此,未来的研究重点应该既包括基于算法、编程模型的探索,也需要充分考虑实际应用中以及硬件的优化和适应性。