同步完成检测方法、设备和存储介质与流程
本发明涉及协同计算,尤其涉及一种同步完成检测方法、设备和存储介质。
背景技术:
1、在多处理器协同计算系统中,多个参与方并行执行各自任务后,需要检测所有参与方是否全部完成,以便触发后续处理流程。
2、目前用于同步完成检测的方案中,基于互连协议原子操作的方案需要软件额外执行读操作并与参与方数量比较方能判定完成,软件复杂度高,且存在检测延迟。而基于软件的轮询方案则需要预先感知参与方数量,面向参与方数量动态变化的情况缺乏灵活性,并且持续轮询会引入额外读取开销和不确定的检测延迟。
技术实现思路
1、本发明提供一种同步完成检测方法、设备和存储介质,用以解决相关技术中同步完成检测灵活性差、复杂度高的缺陷。
2、本发明提供一种同步完成检测方法,包括:
3、接收条件原子递增命令,基于所述条件原子递增命令确定计数器地址、参与方数量、标志地址和递增值;所述条件原子递增命令是发起方在并行执行的多个任务中的任意任务执行完毕时发送的,所述多个任务的数量为所述参与方数量;
4、控制硬件以原子形式执行所述条件原子递增命令对应的操作序列;所述操作序列在执行过程中不对外暴露中间状态,所述操作序列包括:
5、从所述计数器地址中读取计数值,将所述计数值与所述递增值相加得到递增后的计数值,将所述递增后的计数值写回所述计数器地址,并在所述递增后的计数值等于所述参与方数量的情况下,向所述标志地址写入同步完成标志。
6、根据本发明提供的一种同步完成检测方法,所述条件原子递增命令包括所述计数器地址、地址偏移量、所述参与方数量和所述递增值,所述地址偏移量用于以所述计数器地址为基准确定所述标志地址。
7、根据本发明提供的一种同步完成检测方法,所述条件原子递增命令包括:
8、事务操作码字段,用于指示条件原子递增操作;
9、写地址字段,用于承载所述计数器地址;
10、写数据字段,用于承载所述递增值;
11、扩展字段,用于承载所述地址偏移量和所述参与方数量。
12、根据本发明提供的一种同步完成检测方法,还包括:
13、在执行所述操作序列的过程中,锁定所述计数器地址所在的缓存行或者存储控制器端口;
14、在所述操作序列执行完成后,释放所述计数器地址所在的缓存行或者存储控制器端口。
15、根据本发明提供的一种同步完成检测方法,所述计数器地址和所述标志地址均为内存地址。
16、根据本发明提供的一种同步完成检测方法,在所述标志地址所在的存储区域被配置为可触发中断的地址范围的情况下,还包括:
17、在向所述标志地址写入同步完成标志之后,自动触发硬件中断信号。
18、本发明还提供一种同步完成检测方法,应用于发起方,所述方法包括:
19、在并行执行的多个任务中的任意任务执行完毕时,向执行方发送条件原子递增命令;所述多个任务的数量为参与方数量;
20、所述条件原子递增命令用于确定计数器地址、参与方数量、标志地址和递增值,还用于触发所述执行方控制硬件以原子形式执行所述条件原子递增命令对应的操作序列;所述操作序列在执行过程中不对外暴露中间状态,所述操作序列包括:从所述计数器地址中读取计数值,将所述计数值与所述递增值相加得到递增后的计数值,将所述递增后的计数值写回所述计数器地址,并在所述递增后的计数值等于所述参与方数量的情况下,向所述标志地址写入同步完成标志。
21、根据本发明提供的一种同步完成检测方法,还包括:
22、轮询所述执行方的标志地址,在从所述标志地址处检测到所述同步完成标志的情况下,确定所述多个任务同步完成。
23、根据本发明提供的一种同步完成检测方法,在所述标志地址所在的存储区域被配置为可触发中断的地址范围的情况下,还包括:
24、在检测到硬件中断信号的情况下,确定所述多个任务同步完成。
25、根据本发明提供的一种同步完成检测方法,还包括:
26、在确定所述多个任务同步完成的情况下,将所述计数器地址和所述标志地址置零。
27、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述同步完成检测方法。
28、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述同步完成检测方法。
29、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述同步完成检测方法。
30、本发明提供的同步完成检测方法、设备和存储介质,通过发送条件原子递增命令,将原子递增、条件判定和完成通知整合为单次原子事务,在执行方硬件内部以原子形式完成读、改、写、条件写的操作序列,并且保证中间状态对外不可见,有效避免了计数值递增和完成判定之间时间窗口问题;并且,上述操作序列在执行方硬件上执行,软件层面仅需读取标志地址处的值即可判定全部参与方是否同步完成,无需感知参与方数量,无需读取计数器地址,也无需执行比较运算,显著降低了软件复杂度并减少了完成检测延迟。
1.一种同步完成检测方法,其特征在于,应用于执行方,所述方法包括:
2.根据权利要求1所述的同步完成检测方法,其特征在于,所述条件原子递增命令包括所述计数器地址、地址偏移量、所述参与方数量和所述递增值,所述地址偏移量用于以所述计数器地址为基准确定所述标志地址。
3.根据权利要求2所述的同步完成检测方法,其特征在于,所述条件原子递增命令包括:
4.根据权利要求1所述的同步完成检测方法,其特征在于,还包括:
5.根据权利要求1所述的同步完成检测方法,其特征在于,所述计数器地址和所述标志地址均为内存地址。
6.根据权利要求1至5中任一项所述的同步完成检测方法,其特征在于,在所述标志地址所在的存储区域被配置为可触发中断的地址范围的情况下,还包括:
7.一种同步完成检测方法,其特征在于,应用于发起方,所述方法包括:
8.根据权利要求7所述的同步完成检测方法,其特征在于,还包括:
9.根据权利要求7所述的同步完成检测方法,其特征在于,在所述标志地址所在的存储区域被配置为可触发中断的地址范围的情况下,还包括:
10.根据权利要求8或9所述的同步完成检测方法,其特征在于,还包括:
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至10任一项所述同步完成检测方法。
12.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述同步完成检测方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述同步完成检测方法。