一种隐藏异构编程多线程的关联结构及其映射方法与流程

文档序号:36501632发布日期:2023-12-28 04:55阅读:28来源:国知局
一种隐藏异构编程多线程的关联结构及其映射方法与流程

本发明涉及计算机编程语言,特别涉及一种隐藏异构编程多线程的关联结构及其映射方法。


背景技术:

1、在多线程编程中,线程和计算资源之间的关联结构对程序的性能有着重要的影响。传统的多线程编程模型中,线程和计算资源之间的关联结构是显式的,即程序员需要手动指定线程和计算资源之间的映射关系。这种显式的关联结构存在着以下缺点:一方面,程序员需要具备较高的编程能力和经验,才能设计出高效的映射关系;另一方面,显式的关联结构会导致程序的可移植性较差,因为在不同的计算平台上,映射关系需要重新设计和实现。


技术实现思路

1、本发明的目的在于提供一种隐藏异构编程多线程的关联结构及其映射方法,以解决上述背景技术中提出的问题。

2、为实现上述目的,本发明提供如下技术方案:一种隐藏异构编程多线程的关联结构,所述关联结构包括线程池、任务队列、资源管理器和隐式关联结构;

3、所述线程池用于管理线程的创建和销毁,以及线程的调度和执行;

4、所述任务队列用于存储需要执行的任务,线程从任务队列中获取任务并执行;

5、所述资源管理器用于监测和管理计算资源,包括cpu、gpu和fpga,以及它们之间的数据传输;

6、所述隐式关联结构用于描述不同任务之间的依赖关系,以及任务和计算资源之间的映射关系。

7、优选的,所述线程池包括线程池管理器、工作队列、线程池线程;

8、所述线程池管理器用于线程池的创建、销毁和管理操作;

9、所述工作队列用于存放需要执行的任务;

10、所述线程池线程为线程池中的工作线程,用于执行工作队列中的任务。

11、优选的,所述线程池的表现形式包括固定大小线程池、可变大小线程池和定时线程池。

12、优选的,所述任务队列包括任务单元、队列头指针和队列尾指针以及任务队列锁;

13、所述任务单元包含待执行的任务及其相关的元数据;

14、所述队列头指针指向任务队列中的第一个任务单元,所述队列尾指针指向任务队列中的最后一个任务单元;

15、所述用于保护任务队列的访问,防止多个线程同时对任务队列进行修改。

16、优选的,所述任务队列的表现形式包括先进先出队列、后进先出队列和优先级队列,所述先进先出队列按照任务的添加顺序执行任务,所述优先级队列根据任务的优先级来调度任务的执行顺序。

17、优选的,所述资源管理器根据线程的需求对计算资源进行动态分配,实现并行计算性能,所述资源管理器对线程进行调度和优先级管理,保证线程的公平性和稳定性。

18、优选的,所述资源管理器可以通过调用操作系统提供的api或者使用第三方库来实现。

19、优选的,所述隐式关联结构通过程序运行时动态分配计算资源,实现线程和计算资源之间的高效映射,进而提高程序的并行计算性能。

20、一种隐藏异构编程多线程的关联结构的映射方法,采用所述的关联结构,所述映射方法的实施步骤包括;

21、第一步,创建线程池,首先创建一个线程池来管理所有的线程;

22、第二步,创建任务队列,创建一个任务队列来存储所有的任务,其中任务队列中的任务可以根据优先级和执行时间进行排序;

23、第三步,创建资源管理器,利用资源管理器根据任务的需求和计算资源的可用性来动态地分配计算资源;

24、第四步,创建隐式关联结构,通过隐式的关联结构来将任务映射到计算资源上。

25、优选的,所述线程池中的线程数量根据可用的计算资源和任务需求进行动态调整。

26、本发明的技术效果和优点:

27、本发明关联结构的组成包括线程池、任务队列、资源管理器和隐式关联结构,这样采用隐式的关联结构,避免了程序员手动指定映射关系的复杂性,同时也提高了程序的可移植性,此外,通过线程池、任务队列和资源管理器之间的配合设计使得本方法能够动态地分配计算资源,提高了程序的并行计算性能。



技术特征:

1.一种隐藏异构编程多线程的关联结构,其特征在于,所述关联结构包括线程池、任务队列、资源管理器和隐式关联结构;

2.根据权利要求1所述的一种隐藏异构编程多线程的关联结构,其特征在于,所述线程池包括线程池管理器、工作队列、线程池线程;

3.根据权利要求2所述的一种隐藏异构编程多线程的关联结构,其特征在于,所述线程池的表现形式包括固定大小线程池、可变大小线程池和定时线程池。

4.根据权利要求1所述的一种隐藏异构编程多线程的关联结构,其特征在于,所述任务队列包括任务单元、队列头指针和队列尾指针以及任务队列锁;

5.根据权利要求4所述的一种隐藏异构编程多线程的关联结构,其特征在于,所述任务队列的表现形式包括先进先出队列、后进先出队列和优先级队列,所述先进先出队列按照任务的添加顺序执行任务,所述优先级队列根据任务的优先级来调度任务的执行顺序。

6.根据权利要求1所述的一种隐藏异构编程多线程的关联结构,其特征在于,所述资源管理器根据线程的需求对计算资源进行动态分配,实现并行计算性能,所述资源管理器对线程进行调度和优先级管理,保证线程的公平性和稳定性。

7.根据权利要求6所述的一种隐藏异构编程多线程的关联结构,其特征在于,所述资源管理器可以通过调用操作系统提供的api或者使用第三方库来实现。

8.根据权利要求1所述的一种隐藏异构编程多线程的关联结构,其特征在于,所述隐式关联结构通过程序运行时动态分配计算资源,实现线程和计算资源之间的高效映射,进而提高程序的并行计算性能。

9.一种隐藏异构编程多线程的关联结构的映射方法,其特征在于,采用如权利要求1-8任一项所述的关联结构,所述映射方法的实施步骤包括;

10.根据权利要求9所述的一种隐藏异构编程多线程的关联结构的映射方法,其特征在于,所述线程池中的线程数量根据可用的计算资源和任务需求进行动态调整。


技术总结
本发明公开了一种隐藏异构编程多线程的关联结构及其映射方法,关联结构包括线程池、任务队列、资源管理器和隐式关联结构;线程池用于管理线程的创建和销毁;任务队列用于存储需要执行的任务;资源管理器用于监测和管理计算资源,包括CPU、GPU和FPGA;隐式关联结构用于描述不同任务之间的依赖关系,以及任务和计算资源之间的映射关系。本发明关联结构的组成包括线程池、任务队列、资源管理器和隐式关联结构,这样采用隐式的关联结构,避免了程序员手动指定映射关系的复杂性,同时也提高了程序的可移植性,此外,通过线程池、任务队列和资源管理器之间的配合设计使得本方法能够动态地分配计算资源,提高了程序的并行计算性能。

技术研发人员:董贇,张丽媛,艾徐华,银源,刘凯杰,谭期文,杨崇富
受保护的技术使用者:广西电网有限责任公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1