基于异构平台的LHS算法在心电仿真中的应用
作者单位:上海大学
学位级别:硕士
导师姓名:沈文枫
授予年度:2015年
学科分类:0831[工学-生物医学工程(可授工学、理学、医学学位)] 08[工学] 1010[医学-医学技术(可授医学、理学学位)] 081202[工学-计算机软件与理论] 10[医学] 0812[工学-计算机科学与技术(可授工学、理学学位)]
摘 要:心电仿真计算是心脏生物电现象研究的一个重要课题,具有很高的科研价值和实用价值。随着计算机技术的发展,用计算机进行心电仿真计算成为了心电领域研究的一个重要手段。心电仿真由于计算量大,仿真模型复杂,通常使用超级计算机来进行,但是这些超级计算机价格昂贵,体积庞大又不易使用和维护,如果能对心电仿真计算进行大幅度的加速,甚至使用普通个人计算机完成心电仿真的计算,无疑将会对心脏病的研究和治疗产生巨大的推动作用。本文针对心电仿真目前遇到的计算能力不足的问题,将心电仿真计算的并行作为研究的重点。通过对心电仿真模型和心电仿真串行算法进行分析和研究,本文尝试运用基于多核CPU和GPU的异构计算平台来进行心电仿真计算的加速,为了充分发挥异构平台的计算能力,本文还提出了一种调度算法来合理的分配计算任务。本文的主要工作如下:基于GPU的心电仿真算法。本文通过对心电仿真串行算法进行实验分析,将心电仿真计算分为心电兴奋传播的仿真,心电仿真电势的计算,处理计算结果三个步骤,其中心电仿真电势计算部分是并行计算的重点。结合Amdahl定律进行了加速比的分析后,本文选择使用NVIDIA的CUDA软件编程框架和GPU分别作为软硬件环境实现了基于GPU的心电仿真算法,并进行了性能优化。基于负载预测的混合调度算法(Load-prediction based Hybrid Scheduling Algorithm,简称LHS算法)。为了能够充分利用系统的计算资源,本文使用Open MP实现了多核CPU的并行。此时,多核CPU和GPU组成的异构环境下不同计算部件间的任务分配成了新的问题,为了能在异构环境下将心电仿真的任务合理分配给具有不同性能的计算部件,本文提出了LHS算法,LHS算法运用负载预测的方法,消除分支结构,充分发挥GPU的性能并根据CPU和GPU的特点将计算任务进行合理的任务分配,提高了CPU和GPU的综合利用率,从而进一步提高了系统的整体性能。实验结果表明,本文提出的基于GPU的心电仿真算法相比心电仿真的串行算法达到了16.83的加速比,达到了预期的加速效果。使用LHS算法之后系统的计算能力进一步提升,获得了相比一般动态调度算法更好的加速效果。