任务并行编程模型研究与进展
近些年来,任务并行编程模型是近年来多核平台上广泛研究和使用的并行编程模型,其作用是在于简便并行编程和提高多核利用率。处理器从单核升级到多核,芯片的并行计算能力得到了显著增强,性能也得到了明显提高。但是,由于组成结构非常复杂,传统的处理器有着巨大发能源消耗的问题,不能通过增加核的数量来达到提升性能的效果。于是现在有了CPU和一个或者多个加速设备在主板或者片互相连接组成的异构系统,可以从根本提升计算机的性能和计算能力。并行编程模型和框架不能有效利用和发挥并行系统的特点,应用开发和性能优化难度大。面向GPU异构并行系统的多任务流编程模式,消息通信和任务内数据共享的通信方式运行时实现了一个系统原型。
【关键词】任务并行 并行编程模型 处理器 研究与进展
1 多核处理器并行编程模型的分析
采用单芯片多处理器的多核处理器系统设计模式,这样的处理器核工作相互独立,各个核的硬件都单独存在一个环境,这样就能一同执行很多条指令。从高速缓存这个方面的设计来说,每个核的缓存设计都是单独存在的,各个核的最后一集缓存是单独的片上缓存的。基于多核处理器的系统特性,在多核环境下并行程序的影响因素主要有存储带宽、负载均衡和片上缓存一致性。在多核处理器∞的系统运行过程中,每个核所共享的是缓存的最后一级,但是同一时间多个线程位于不同的核上的对不同的数据集进行操作,这将会使最后一级的缓存与主缓存之间频繁地进行数据传送。
片上缓存一致性。多核处理器系统中的每个芯片的位置在同一个存储备☑空间的数据。负载均衡。程序性能是每个核的负载均衡影响的重要因素之一,其中如果有的核上正在进行计算的同一时间其它的核在空置等待的问题发生,这样就是不均衡的负载,多核资源负载的利ร用率没有达到要求。怎样减少存储带宽上有限的资源利用。对于很多相同的核在一个大的数据上进行操作的问题,如果数据集容量的最后一级共享缓存超过大小,但是因为不同核的操作数据不同,就会在主存和高速缓存之间频繁的数据传送,那些不需要传送的数据可以使用cache块技术减少。
现在设计的多核处理器并行编辑模型是一种基于任务密取的把任务作为处理对象的并行程序库,主要包含了单任务数据并行和多任务并行、原子操作类、cache行对齐的内存管理、栅栏机制的一些基本的功能特性。多核处理器提供了一种快捷便利高效的在平台下开发并行程序的接口。同时如果想解决更多困难,多核处理器并行编程模型所提供单任务数据并行和多任务数据并行的两种并行处理的方式。可以将单任务数据并行和多任务数据并行分为一个任务操作的一个大数据平均分配到多个核上去操作,然后再合并所有的核上计算所得到的结果。在多核处理器的环境中,片上缓存的一致性有的时候会严重影响并行程序的操作效果,所以一个高性能多核并行程序的重要前提是能有效的开发管理和分配内存。
2 异构并行系统的多任务流编程模型
伴随着CPU在通用计算机领域的快速进步与不断发展,很多的研究机构和组织都开展了针对GPU异构并行系统的编程的研究与探索,为了开发出性能更加优化效果更加高效的并行系统的编程,将高效语言程序自动转化成CUDA程序。异构并行编程模型依靠编程接口及编译和运行时系统解决技术调整,其主要任务 要保证任务的映射,就是任务具体哪个设备或者计算单元上执行和以哪种顺序执行。更要对任务的数据分布和通信、划分以及同步机制进行全面系统的优化升级。建立单一的GPU上下文以降低开销,同时要实现任务流内消息的通信传递和任务数据流内的数据共享通信,这样就可以提高数据通信的效率,并减少开发的困难。
多任务流模型中的数据通信包括并行任务间的通信和单个任务间的通信两个方面。但因为GPU异构并行系统具有分布式的存储信息和共享存储信息的特性,并行任务之间使用的消息传递的通信方法与传统的消息通信接口MPI相同,这样可以更便捷的让用户使用和掌握,并且对于开发应用也保持了良好的扩展性和有效的并行应用继承。对于单个的任务流内提供数据共享的通信机制,降低不同存储给编程开发带来的复杂性,减轻应用开发负担。基于程序对于共享空间的读写访问属性,按照不同的读写操作进行状态转换和数据更新。4种访问操作下的状态转换,保持读写的一致性更新状态的转换,其有3种共享空间存在状态。这种类型的访问更新数据 操作可以保障程序访问的数据为最新的数据。
建立一种多任务流编程模型,这种设计实现了半场运行时支持系统原型GMMP,利用多级硬件并行性特点实现了应用程序的数据级并行和任务级并行,模型采用了任务内数据共享与任务之间消息传递的通信方式,如此不但可以简便开发移植的过程,而且还能降低程序的开放困难。
3 结束语
近些年来,任务并行编辑模型是多芯片出现后为了简化并行编程✪而开发研究出来的一种新型的并行编程模型。并行性的问题是运行时系统进行负载平衡的任务窃取调度。虽然现在任务窃取调度在共享存储多核芯片的基础上,采用移动计算机而不移动数据的方式。但经过很多年的发展进步,任务并行机制已经被很多的并行语言所支持,现在所有的任务并行机制已经可以更加广阔的表述的出并行性¢。而且这样的管理机制支持很多种的数据属性和任务调度技术的专业研究。虽然这几年来,软件和硬件的各种反面都发生了翻天覆地的变化,任务并行编程的研究与更新也在稳定的发展。
参考文献
[1]田跃欣.基于SMP集群系统的并行编程模式研究[J].福建电脑,2008(02).
[2]王船海,曾贤敏.Windows环境下河网水流多线程并行计算[J].河海大学学报(自然科学版),2008(01).
[3]彭林,谢伦国,张小强.事务存储系统[J].计算机研究与发展,2009(08).
[4]李艳,柳青,彭世宇.面向构件的并行程序设计[J].计算机与信息技术,2005(05).
[5]王庆先,孙世新,尚明生,刘宴兵.并行计算模型研究[J].计算机科学,2004(09).