论文部分内容阅读
半导体技术的进步,为芯片的设计者提供了更多的资源来实现高性能的芯片。而由于能耗墙的原因,仅靠提高单个CPU的主频已不能满足越来越多的科学研究领域,为了延续摩尔定律,充分利用片上的晶体管资源,处理器设计被迫从单核芯片设计转向多核芯片设计,通过增加片上的并行计算能力继续提高处理器性能。 多核体系结构的机器在其底层已经实现了并行,开发人员需要了解多核体系结构的运行机制,了解线程的调度机制,线程之间的同步、负载平衡等问题,方能使多核、众核平台发挥计算能力。如何充分发掘且利用多核、众核计算能力是高性能计算领域的一个研究热点。 本文是以AceMesh运行时调度系统为基础的。AceMesh运行时调度系统的调用过程主要包括:构图和调度执行两个阶段。已有的AceMesh运行时调度系统在构图阶段,要用主线程注册方式,即由主线程对所有计算任务进行注册;而调度执行阶段则是包括主线程在内的所有的线程来完成并行计算任务。该方式在可执行任务量庞大的情况下,因注册任务由主线程独立完成,主线程承担任务过多而成为系统瓶颈。 本文针对这一问题,研究了数据驱动的任务并行注册技术。将注册线程与计算线程相分离,使多个线程共同完成任务注册工作,消除系统瓶颈,提高系统并行计算效率。 为了进一步提高并行计算的整体性能,设计了将并行注册与已有的并发构图合并的方案,主要从数据结构并发安全性、调度器管理和哈希表更新策略几个方面进行了设计。 最后,论文在多核平台上针对两个测试程序对并行注册的效果进行测试,证明了论文方法的正确性。