一种协同调度方法和相关设备与流程

文档序号:37057647发布日期:2024-02-20 21:05阅读:18来源:国知局
一种协同调度方法和相关设备与流程

本技术实施例涉及计算机领域,并且更具体地,涉及一种协同调度的方法、计算装置、计算设备、芯片系统和计算机可读存储介质。


背景技术:

1、随着云与互联网场景数据的爆炸性增长,非结构化数据的比例大幅上升,计算设备中上层应用的业务特征也随之发生变化。目前计算设备中的主流负载特征从中央处理器(central processing unit,cpu)密集型演变为输入输出(input output,io)密集型。随着应用的业务特征的变化,在计算设备中,异构众核的处理器架构成为了主流。异构众核的处理器架构可以通过非一致性内存访问(non-uniform memory access,numa)实现处理器算力的大幅横向扩展,还可以通过大小核非对称多处理器(asymmetric multi-processing,amp)架构面向不同的应用场景,从而进一步提升计算设备的算力。numa技术可以使计算设备的多个处理器(例如cpu)中的每个处理器均可以快速地访问部分内存,从而提升处理器访问内存的速度。大小核amp技术可以将计算设备中的部分处理器(大核)用于应对计算密集型任务,并将部分处理器(小核)用于处理轻量型任务,从而为计算设备提供优秀的能效比。

2、在虚拟化场景下,计算设备中一般存在多种运行环境,例如第一运行环境(例如物理运行环境)和第二运行环境(例如虚拟运行环境)。目前可以通过统计第二运行环境中的第一处理单元(例如虚拟处理器)在每个时钟周期内可以执行的指令数(instruction perclock,ipc)和第一处理单元的利用率的乘积,并根据该乘积确定是否需要将该第一处理单元从第一运行环境中的第三处理单元(例如物理小核处理器)迁移至第一运行环境中的第二处理单元(例如物理大核处理器)中运行。但该方法通过第一处理单元的历史数据预测第一处理单元的实际算力需求,存在预测误差,容易出错。或者,目前还可以通过静态配置的方法将第二运行环境中的第一处理单元(例如虚拟小核处理器)固定在第一运行环境中的第三处理单元(例如物理小核处理器)中运行,并将第二运行环境中的第四处理单元(例如虚拟大核处理器)固定在第一运行环境中的第二处理单元(例如物理大核处理器)中运行。但该方法在第一处理单元或第四处理单元的运行过程中,无法更改第一处理单元或第四处理单元的调度配置,因此无法在第一处理单元或第四处理单元中线程的算力需求变更时进行及时的调度调整。也就是说,上述方法均无法实时地在第一运行环境中确定第二运行环境中的算力需求,无法快速准确地对第一运行环境或第二运行环境中的处理单元进行调度,从而无法使第二运行环境中的线程可以在合适算力的处理单元中运行,不能发挥计算设备中硬件的最大计算能效。

3、因此,如何在第一运行环境中实时地确定第二运行环境中的算力需求,从而较为快速准确地对第一运行环境或第二运行环境中的处理单元进行调度成为亟待解决的问题。


技术实现思路

1、本技术实施例提供一种协同调度的方法、计算装置、计算设备、芯片系统和计算机可读存储介质,可以实时地在第一运行环境和第二运行环境中同步第二运行环境中的算力需求,从而可以较为快速准确地对第一运行环境或第二运行环境中的处理单元进行协同调度,进而可以有效提升计算设备的计算性能。

2、第一方面,提供了一种协同调度方法。该方法包括:通过第一运行环境中的第一接口接收第一信息;在第一任务的算力信息与第一处理单元的算力信息不匹配的情况下,在第一运行环境中,根据第一任务的算力信息确定第二处理单元;在第一运行环境中,通过第二处理单元运行第一处理单元。

3、其中,第一信息包括第一任务的算力信息。第一任务为第二运行环境中的第一处理单元中待运行的任务,第一任务的算力信息用于指示运行第一任务的处理单元的最小算力。第一处理单元的算力信息根据第三处理单元的算力信息确定,第三处理单元用于在第一运行环境中运行第一处理单元。

4、本技术实施例中,计算设备可以通过第一接口,实时地将第二运行环境中任务的算力信息传递至第一运行环境中,从而便于计算设备在第一运行环境中调度处理单元,进而满足第二运行环境中的算力需求。通过本技术实施例中的方法,计算设备可以实时地在第一运行环境和第二运行环境中同步第二运行环境中的算力需求,从而可以较为快速准确地对第一运行环境与第二运行环境中的处理单元进行协同调度,进而可以提高计算设备的计算性能。

5、结合第一方面,在第一方面的某些实现方式中,第一接口包括超级调用hypercall接口。

6、本技术实施例中,计算设备可以通过hypercall接口,将第二运行环境中的任务的算力信息传递至第一运行环境中,从而便于计算设备根据第二运行环境中的算力需求,对第一运行环境和第二运行环境中的处理单元进行协同调度。

7、结合第一方面,在第一方面的某些实现方式中,在第二运行环境中,确定第一任务的算力信息和第一处理单元的算力信息不匹配;在第二运行环境中,调用第一接口,从第二运行环境转换为第一运行环境。

8、本技术实施例中,计算设备可以在确定第一任务的算力信息与第一处理单元的算力信息不匹配时,通过第一接口,将第一任务的算力信息传递至第一运行环境中,即实现第一任务的算力信息的透传通道。通过本技术实施例的方法,可以避免计算设备在第一运行环境与第二运行环境之间的频繁转换,从而避免转换导致的性能损耗。

9、结合第一方面,在第一方面的某些实现方式中,该方法还包括:在第一运行环境中,根据第二处理单元的算力信息,更新第一处理单元的算力信息。

10、本技术实施例中可以根据目前运行第一处理单元的第二处理单元,更新第一处理单元的算力信息,从而便于计算设备可以及时的在第一运行环境和第二运行环境中同步第一处理单元的算力信息。

11、结合第一方面,在第一方面的某些实现方式中,第一处理单元的算力信息存储在共享内存中,共享内存由运行在第一运行环境或第二运行环境中的计算设备访问。

12、本技术实施例中,通过在计算设备中设置共享内存,从而使得计算设备无论在第一运行环境还是第二运行环境中,均可以访问该共享内存,进而可以获得第二运行环境中的第一处理单元的算力信息。

13、结合第一方面,在第一方面的某些实现方式中,共享内存包括模型特定msr寄存器或系统寄存器。

14、本技术实施例中,可以通过msr寄存器或系统寄存器实现共享内存的功能,从而使得计算设备可以通过该msr寄存器或系统寄存器在第一运行环境或第二运行环境中均可以获得第一处理单元的算力信息。

15、结合第一方面,在第一方面的某些实现方式中,根据第二运行环境中的第二接口,获得第一处理单元的第一算力信息;在第一处理单元的第二算力信息与第一算力信息不匹配的情况下,在第二运行环境中,根据第二任务的算力信息和第一算力信息确定第四处理单元;在第二运行环境中,通过第四处理单元运行第二任务。

16、其中,第一处理单元的第一算力信息根据第二处理单元的算力信息确定。第二算力信息根据第三处理单元的算力信息确定。第二任务为第一处理单元中待运行的任务。

17、本技术实施例中,计算设备可以通过第二接口,实时地将第一运行环境或第二运行环境中的处理单元已被重新调度的信息传递至第二运行环境中,从而便于在第二运行环境中及时地对线程进行调度。通过本技术实施例中的方法,计算设备可以实时地在第一运行环境和第二运行环境中同步处理单元的算力信息,从而可以较为快速准确地对第一运行环境与第二运行环境中的处理单元进行协同调度,进而可以提高计算设备的计算性能。

18、结合第一方面,在第一方面的某些实现方式中,第二接口包括虚拟中断或虚拟高级配置和电源管理接口acpi事件,虚拟中断或虚拟acpi事件用于指示第一处理单元的算力信息已更新。

19、本技术实施例中,计算设备可以通过虚拟中断或虚拟acpi事件,将第一处理单元的算力信息已更新的信息传递至第二运行环境中,从而便于计算设备在第二运行环境中确定是否需要对第一处理单元中待运行的部分线程进行重新调度,进而使得第二运行环境中的每个线程可以运行在具有合适算力的处理单元中。

20、结合第一方面,在第一方面的某些实现方式中,将第一算力信息更新至第二运行环境中的第一存储空间中。

21、本技术实施例中,计算设备可以在第二运行环境中的第一存储空间中存储第一处理单元的算力信息,还可以在第一处理单元的算力信息已更新的情况下,在第一存储空间中更新第一处理单元的算力信息。通过本技术实施例中的方法,计算设备可以在第二运行环境中,从第一存储空间中获得第一处理单元的算力信息,从而便于实时地确定第二运行环境中的算力需求是否满足,进而及时地进行调度。

22、结合第一方面,在第一方面的某些实现方式中,在第一运行环境中,确定第一算力信息与第二算力信息不匹配;在第一运行环境中,调用第二接口,从第一运行环境转换为第二运行环境。

23、本技术实施例中,计算设备可以在确定第一算力信息与第二算力信息不匹配时,通过第二接口,将第一处理单元的算力信息已被更新的信息传递至第二运行环境中,即实现算力信息更新的通知通道。通过本技术实施例的方法,可以避免计算设备在第一运行环境与第二运行环境之间的频繁转换,从而避免转换导致的性能损耗。

24、结合第一方面,在第一方面的某些实现方式中,第一算力信息和第二算力信息存储在共享内存中,共享内存由运行在第一运行环境或第二运行环境中的计算设备访问。

25、本技术实施例中,通过在计算设备中设置共享内存,从而使得计算设备可以及时地在该共享内存中更新第一处理单元的算力信息,即将第二算力信息更新为第一算力信息。通过本技术实施例中的方法,可以使得计算设备在第二运行环境中也可获得第一处理单元更新后的算力信息,进而可以及时地对第一处理单元中的部分线程进行重新调度。

26、结合第一方面,在第一方面的某些实现方式中,共享内存包括模型特定msr寄存器或系统寄存器。

27、本技术实施例中,可以通过msr寄存器或系统寄存器实现共享内存的功能,从而使得计算设备可以通过该msr寄存器或系统寄存器在第二运行环境中获得第一处理单元更新后的算力信息,即第一算力信息。

28、第二方面,提供了一种协同调度方法。该方法包括:根据第二运行环境中的第二接口,获得第一处理单元的第一算力信息;在第一处理单元的第二算力信息与第一算力信息不匹配的情况下,在第二运行环境中,根据第二任务的算力信息和第一算力信息确定第四处理单元;在第二运行环境中,通过第四处理单元运行第二任务。

29、其中,第一处理单元的第一算力信息根据第二处理单元的算力信息确定。第二算力信息根据第三处理单元的算力信息确定。第二任务为第一处理单元中待运行的任务。

30、本技术实施例中,计算设备可以通过第二接口,实时地将第一运行环境或第二运行环境中的处理单元已被重新调度的信息传递至第二运行环境中,从而便于在第二运行环境中及时地对线程进行调度。通过本技术实施例中的方法,计算设备可以实时地在第一运行环境和第二运行环境中同步处理单元的算力信息,从而可以较为快速准确地对第一运行环境与第二运行环境中的处理单元进行协同调度,进而可以提高计算设备的计算性能。

31、结合第二方面,在第二方面的某些实现方式中,第二接口包括虚拟中断或虚拟高级配置和电源管理接口acpi事件,虚拟中断或虚拟acpi事件用于指示第一处理单元的算力信息已更新。

32、本技术实施例中,计算设备可以通过虚拟中断或虚拟acpi事件,将第一处理单元的算力信息已更新的信息传递至第二运行环境中,从而便于计算设备在第二运行环境中确定是否需要对部分线程进行重新调度,进而使得第二运行环境中的每个线程可以运行在具有合适算力的处理单元中。

33、结合第二方面,在第二方面的某些实现方式中,将第一算力信息更新至第二运行环境中的第一存储空间中。

34、本技术实施例中,计算设备可以在第二运行环境中的第一存储空间中存储第一处理单元的算力信息,还可以在第一处理单元的算力信息已更新的情况下,在第一存储空间中更新第一处理单元的算力信息。通过本技术实施例中的方法,计算设备可以在第二运行环境中,从第一存储空间中获得第一处理单元的算力信息,从而便于实时地确定第二运行环境中的算力需求是否满足,进而及时地进行调度。

35、结合第二方面,在第二方面的某些实现方式中,在第一运行环境中,确定第一算力信息与第二算力信息不匹配;在第一运行环境中,调用第二接口,从第一运行环境转换为第二运行环境。

36、本技术实施例中,计算设备可以在确定第一算力信息与第二算力信息不匹配时,通过第二接口,将第一处理单元的算力信息已被更新的信息传递至第二运行环境中,即实现算力信息更新的通知通道。通过本技术实施例的方法,可以避免计算设备在第一运行环境与第二运行环境之间的频繁转换,从而避免转换导致的性能损耗。

37、结合第二方面,在第二方面的某些实现方式中,第一算力信息和第二算力信息存储在共享内存中,共享内存由运行在第一运行环境或第二运行环境中的计算设备访问。

38、本技术实施例中,通过在计算设备中设置共享内存,从而使得计算设备可以及时地在该共享内存中更新第一处理单元的算力信息,即将第二算力信息更新为第一算力信息。通过本技术实施例中的方法,可以使得计算设备在第二运行环境中也可获得第一处理单元更新后的算力信息,进而可以及时地对第一处理单元中的部分线程进行重新调度。

39、结合第二方面,在第二方面的某些实现方式中,共享内存包括模型特定msr寄存器或系统寄存器。

40、本技术实施例中,可以通过msr寄存器或系统寄存器实现共享内存的功能,从而使得计算设备可以通过该msr寄存器或系统寄存器在第二运行环境中获得第一处理单元更新后的算力信息,即第一算力信息。

41、第三方面,本技术实施例提供一种计算装置,该计算装置包括用于实现第一方面或第一方面的任一种可能的实现方式的单元。

42、第四方面,本技术实施例提供一种计算装置,该计算装置包括用于实现第二方面或第二方面的任一种可能的实现方式的单元。

43、第五方面,本技术实施例提供一种计算机设备,该计算机设备包括处理器,该处理器用于与存储器耦合,读取并执行该存储器中的指令和/或程序代码,以执行第一方面或第一方面的任一种可能的实现方式,或者执行第二方面或第二方面的任一种可能的实现方式。

44、第六方面,本技术实施例提供一种芯片系统,该芯片系统包括逻辑电路,该逻辑电路用于与输入/输出接口耦合,通过该输入/输出接口传输数据,以执行第一方面或第一方面任一种可能的实现方式,或者执行第二方面或第二方面的任一种可能的实现方式。

45、第七方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该计算机存储介质在计算机上运行时,使得计算机执行如第一方面或第一方面的任一种可能的实现方式,或者执行第二方面或第二方面的任一种可能的实现方式。

46、第八方面,本技术实施例提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行如第一方面或第一方面的任一种可能的实现方式,或者执行第二方面或第二方面的任一种可能的实现方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1