1.一种用于DFPT分析的多级GPU负载均衡方法,其特征在于,包括以下步骤:步骤一、基于密度泛函微扰分析的数据集,通过预运行确定批次负载,具体过程为:1.1、对将要进行密度泛函微扰分析的数据集,使用与实际运行相同的进程数与GPU卡数设置进行预运行;1.2、针对预运行的密度泛函微扰分析,通过运行逻辑保证每次运行一个批次的数据进行循环迭代,得到每个批次的负载;1.3、使用每个批次的负载作为负载划分权重,对每一个运行批次设置其唯一索引与其权重一一对应;步骤二、根据批次负载进行一级负载划分:进行卡间负载均衡划分,实现GPU卡间负载均衡,具体过程为:2.1、使用步骤一所述的每个批次的负载划分权重与唯一索引,确定实际运行中所有批次的负载划分权重;2.2、使用卡间负载划分算法完成卡间负载划分;步骤三、进行二级负载划分:进行卡内负载均衡划分,实现GPU卡内负载均衡,具体过程为:3.1、在步骤二卡间负载均衡划分的基础上,对于每张GPU卡设计了批次结构体和线程块结构体两个数据结构;批次结构体用于表示每个批次的权重以及索引信息;线程块结构体用于表示卡内每个线程块内分配的总权重以及索引信息;3.2、使用卡内负载划分算法进行卡内负载划分。
2.根据权利要求1所述的一种用于DFPT分析的多级GPU负载均衡方法,其特征在于,步骤2.2所述卡间负载划分算法具体过程如下:2.2.1、通过进程间通信获得所有GPU卡上目前批次的权重信息,以及批次几何中心坐标;2.2.2、使用所有待划分批次几何中心坐标以及权重信息在GPU集合上进行二分划分,使得左右两半GPU集合的权重达到均衡;2.2.3、递归进行上述二分划分,直至每张GPU卡上的权重相对总权重达到均衡;2.2.4、通过进程间通信使每张GPU卡获得划分后的批次信息。
3.根据权利要求2所述的一种用于DFPT分析的多级GPU负载均衡方法,其特征在于,步骤3.2所述卡内负载划分算法具体过程如下:3.2.1、对3.1所述批次结构体的集合,按权重信息从大到小进行排序;3.2.2、根据使用的线程块数,以3.1所述的线程块结构体为基础,以线程块内分配的总权重为关键字创建对应大小的最小堆;3.2.3、从最小堆堆顶取出总权重最小的线程块,将集合中权重最大的批次分配给此线程块并更新线程块总权重,再将更新后的线程块重新放入最小堆;3.2.4、重复3.2.1至3.2.4,直至所有批次都完成分配。
4.一种用于DFPT分析的多级GPU负载均衡系统,用于实现权利要求1至3任一所述的负载均衡方法,其特征在于,包括负载确定模块、一级负载划分模块和二级负载划分模块;所述负载确定模块,通过预运行确定批次负载;所述一级负载划分模块,根据批次负载进行卡间负载均衡划分;所述二级负载划分模块,在实现卡间负载均衡后进行卡内负载均衡划分。