本公开的实施例涉及一种模拟方法、模拟装置、电子设备和计算机可读存储介质。
背景技术:
1、随着处理器、高性能网络的发展,运行在各种大规模并行处理(massivelyparallel processing,缩写mpp)环境下的高性能计算(high performance computing,缩写hpc)应用的规模也迅速增长。这类应用通常涉及超大规模进程间通过高速互连网络通信,协作完成一个大型课题的求解。
技术实现思路
1、本公开至少一个实施例提供一种模拟方法,包括:确定并行的多个进程的模拟操作过程,其中,所述模拟操作过程包括进程间通信过程;根据所述模拟操作过程,汇总所述多个进程在所述模拟操作过程的每个时间片内的进程间通信消息,其中,在所述模拟操作过程中每经过预定时长为一个所述时间片;根据传输带宽,确定所述进程间通信消息在所述每个时间片的传输进度,以根据所述传输进度得到所述进程间通信过程所需的时间片数。
2、例如,在本公开上述实施例的至少一个示例提供的模拟方法中,所述模拟操作过程包括第一时间片,在所述第一时间片内具有多个进程间通信消息;根据传输带宽,确定所述进程间通信消息在所述每个时间片的传输进度,包括:针对所述第一时间片,将所述传输带宽分配给所述多个进程间通信消息,以得到每个所述进程间通信消息在所述第一时间片内对应的带宽;基于每个所述进程间通信消息在所述第一时间片内对应的带宽,确定每个所述进程间通信消息在所述第一时间片内的传输数据量;根据每个所述进程间通信消息在所述第一时间片内的传输数据量,确定每个所述进程间通信消息在所述第一时间片的传输进度。
3、例如,在本公开上述实施例的至少一个示例提供的模拟方法中,所述多个进程间通信消息包括第一进程间通信消息;基于每个所述进程间通信消息在所述第一时间片内对应的带宽,确定每个所述进程间通信消息在所述第一时间片内的传输数据量,包括:计算所述第一进程间通信消息在所述第一时间片内对应的带宽与所述第一时间片的乘积,将所述乘积作为所述第一进程间通信消息在所述第一时间片内的传输数据量。根据每个所述进程间通信消息在所述第一时间片内的传输数据量,确定每个所述进程间通信消息在所述第一时间片的传输进度,包括:根据所述第一进程间通信消息在所述第一时间片内的传输数据量以及所述第一进程间通信消息在所述第一时间片之前的传输数据量,确定所述第一进程间通信消息的总传输数据量;根据第一进程间通信消息的总传输数据量以及所述第一进程间通信消息的消息数据量,确定所述第一进程间通信消息在所述第一时间片内的传输进度。
4、例如,在本公开上述实施例的至少一个示例提供的模拟方法中,将所述传输带宽分配给所述多个进程间通信消息,包括:将所述传输带宽均分给所述多个进程间通信消息。
5、例如,在本公开上述实施例的至少一个示例提供的模拟方法中,所述模拟操作过程还包括计算过程;所述模拟方法还包括:获取所述计算过程的时长,并将所述计算过程的时长换算为时间片数。基于所述进程间通信过程所需的时间片数和所述计算过程换算的时间片数,确定所述模拟操作过程所需的时间片数。
6、例如,在本公开上述实施例的至少一个示例提供的模拟方法中,确定并行的多个进程的模拟操作过程,包括:根据预定测试流程,确定并行的多个进程的模拟操作过程;其中,所述预定测试流程包括:将所述多个进程排列为mp*np矩阵,其中,mp和np均为正整数;位于所述mp*np矩阵的同一行的多个进程进行行方向通信;位于所述mp*np矩阵的同一列的多个进程进行列方向通信;其中,所述进程间通信过程包括该行方向通信和列方向通信。
7、例如,在本公开上述实施例的至少一个示例提供的模拟方法中,所述预定测试流程还包括:选取所述mp*np矩阵中的一列作为主列;在执行所述行方向通信和所述列方向通信前,对位于所述主列的多个进程执行第一计算操作,得到计算结果;在执行所述行方向通信和所述列方向通信后,接收所述进程间通信消息的进程利用接收的所述进程间通信消息执行第二计算操作,其中,所述计算过程包括所述第一计算操作和所述第二计算操作;其中,位于所述mp*np矩阵的同一行的多个进程进行行方向通信,包括:位于所述主列的多个进程向同行的其他进程广播进程间通信消息,其中,所述进程间消息包括所述计算结果。
8、例如,在本公开上述实施例的至少一个示例提供的模拟方法中,所述多个进程分布在多个节点运行;所述多个进程间通信消息包括至少一个跨节点的进程间通信消息;所述传输带宽包括节点间的传输带宽。将所述传输带宽分配给所述多个进程间通信消息,以得到每个所述进程间通信消息在所述第一时间片内对应的带宽,包括:将所述节点间的传输带宽分配给所述至少一个跨节点的进程间通信消息,以得到每个所述跨节点的进程间通信消息在所述第一时间片内对应的带宽。
9、例如,在本公开上述实施例的至少一个示例提供的模拟方法中,所述多个进程间通信消息包括至少一个节点内的进程间通信消息;所述传输带宽包括节点内的传输带宽。将所述传输带宽分配给所述多个进程间通信消息,以得到每个所述进程间通信消息在所述第一时间片内对应的带宽,包括:将所述节点内的传输带宽分配给所述至少一个节点内的进程间通信消息,以得到每个所述节点内的进程间通信消息在所述第一时间片内对应的带宽。
10、本公开至少一个实施例提供一种模拟装置,包括确定单元、汇总单元和进度单元,确定单元配置为确定并行的多个进程的模拟操作过程,其中,所述模拟操作过程包括进程间通信过程;汇总单元配置为根据所述模拟操作过程,汇总所述多个进程在所述模拟操作过程的每个时间片内的进程间通信消息,其中,在所述模拟操作过程中每经过预定时长为一个所述时间片;进度单元配置为根据传输带宽,确定所述进程间通信消息在所述每个时间片的传输进度,以根据所述传输进度得到所述进程间通信过程所需的时间片数。
11、本公开至少一个实施例提供一种电子设备,包括处理器;存储器,存储有一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被配置为由所述处理器执行,用于实现本公开任一实施例提供的模拟方法。
12、本公开至少一个实施例提供一种计算机可读存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例提供的模拟方法。
1.一种模拟方法,包括:
2.根据权利要求1所述的模拟方法,其中,所述模拟操作过程包括第一时间片,在所述第一时间片内具有多个进程间通信消息;
3.根据权利要求2所述的模拟方法,其中,所述多个进程间通信消息包括第一进程间通信消息;
4.根据权利要求2所述的模拟方法,其中,将所述传输带宽分配给所述多个进程间通信消息,包括:
5.根据权利要求1至4任一项所述的模拟方法,其中,所述模拟操作过程还包括计算过程;
6.根据权利要求1至4任一项所述的模拟方法,其中,确定并行的多个进程的模拟操作过程,包括:
7.根据权利要求6所述的模拟方法,其中,所述预定测试流程还包括:
8.根据权利要求2所述的模拟方法,其中,所述多个进程分布在多个节点运行;所述多个进程间通信消息包括至少一个跨节点的进程间通信消息;所述传输带宽包括节点间的传输带宽;
9.根据权利要求8所述的模拟方法,其中,所述多个进程间通信消息包括至少一个节点内的进程间通信消息;所述传输带宽包括节点内的传输带宽;
10.一种模拟装置,包括:
11.根据权利要求10所述的模拟装置,其中,所述模拟操作过程包括第一时间片,在所述第一时间片内具有多个进程间通信消息;
12.根据权利要求11所述的模拟装置,其中,所述多个进程间通信消息包括第一进程间通信消息;
13.根据权利要求11所述的模拟装置,其中,所述分配子单元进一步配置为:将所述传输带宽均分给所述多个进程间通信消息。
14.一种电子设备,包括:
15.一种计算机可读存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现权利要求1-9任一项所述的模拟方法。