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

技术编号:39859763 阅读:7 留言:0更新日期:2023-12-30 12:55
本发明专利技术公开了一种隐藏异构编程多线程的关联结构及其映射方法,关联结构包括线程池

【技术实现步骤摘要】
一种隐藏异构编程多线程的关联结构及其映射方法


[0001]本专利技术涉及计算机编程语言
,特别涉及一种隐藏异构编程多线程的关联结构及其映射方法


技术介绍

[0002]在多线程编程中,线程和计算资源之间的关联结构对程序的性能有着重要的影响

传统的多线程编程模型中,线程和计算资源之间的关联结构是显式的,即程序员需要手动指定线程和计算资源之间的映射关系

这种显式的关联结构存在着以下缺点:一方面,程序员需要具备较高的编程能力和经验,才能设计出高效的映射关系;另一方面,显式的关联结构会导致程序的可移植性较差,因为在不同的计算平台上,映射关系需要重新设计和实现


技术实现思路

[0003]本专利技术的目的在于提供一种隐藏异构编程多线程的关联结构及其映射方法,以解决上述
技术介绍
中提出的问题

[0004]为实现上述目的,本专利技术提供如下技术方案:一种隐藏异构编程多线程的关联结构,所述关联结构包括线程池

任务队列

资源管理器和隐式关联结构;
[0005]所述线程池用于管理线程的创建和销毁,以及线程的调度和执行;
[0006]所述任务队列用于存储需要执行的任务,线程从任务队列中获取任务并执行;
[0007]所述资源管理器用于监测和管理计算资源,包括
CPU、GPU

FPGA
,以及它们之间的数据传输;
[0008]所述隐式关联结构用于描述不同任务之间的依赖关系,以及任务和计算资源之间的映射关系

[0009]优选的,所述线程池包括线程池管理器

工作队列

线程池线程;
[0010]所述线程池管理器用于线程池的创建

销毁和管理操作;
[0011]所述工作队列用于存放需要执行的任务;
[0012]所述线程池线程为线程池中的工作线程,用于执行工作队列中的任务

[0013]优选的,所述线程池的表现形式包括固定大小线程池

可变大小线程池和定时线程池

[0014]优选的,所述任务队列包括任务单元

队列头指针和队列尾指针以及任务队列锁;
[0015]所述任务单元包含待执行的任务及其相关的元数据;
[0016]所述队列头指针指向任务队列中的第一个任务单元,所述队列尾指针指向任务队列中的最后一个任务单元;
[0017]所述用于保护任务队列的访问,防止多个线程同时对任务队列进行修改

[0018]优选的,所述任务队列的表现形式包括先进先出队列

后进先出队列和优先级队列,所述先进先出队列按照任务的添加顺序执行任务,所述优先级队列根据任务的优先级
来调度任务的执行顺序

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

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

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

[0022]一种隐藏异构编程多线程的关联结构的映射方法,采用所述的关联结构,所述映射方法的实施步骤包括;
[0023]第一步,创建线程池,首先创建一个线程池来管理所有的线程;
[0024]第二步,创建任务队列,创建一个任务队列来存储所有的任务,其中任务队列中的任务可以根据优先级和执行时间进行排序;
[0025]第三步,创建资源管理器,利用资源管理器根据任务的需求和计算资源的可用性来动态地分配计算资源;
[0026]第四步,创建隐式关联结构,通过隐式的关联结构来将任务映射到计算资源上

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

[0028]本专利技术的技术效果和优点:
[0029]本专利技术关联结构的组成包括线程池

任务队列

资源管理器和隐式关联结构,这样采用隐式的关联结构,避免了程序员手动指定映射关系的复杂性,同时也提高了程序的可移植性,此外,通过线程池

任务队列和资源管理器之间的配合设计使得本方法能够动态地分配计算资源,提高了程序的并行计算性能

附图说明
[0030]图1为本专利技术映射方法的实时操作流程示意图

具体实施方式
[0031]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚

完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例

基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围

[0032]实施例一,本专利技术提供了一种隐藏异构编程多线程的关联结构,关联结构包括线程池

任务队列

资源管理器和隐式关联结构;
[0033]线程池用于管理线程的创建和销毁,以及线程的调度和执行;
[0034]需要说明的是,线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务

线程池线程都是后台线程

每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中

如果某个线程在托管代码中空闲
(
如正在等待某个事件
)
,则线程池将插入另一个辅助线程来使所有处理器保持繁忙

如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另
一个辅助线程但线程的数目永远不会超过最大值

超过最大值的线程可以排队,但他们要等到其他线程完成后才启动

[0035]具体的,线程池包括线程池管理器

工作队列

线程池线程;
[0036]线程池管理器用于线程池的创建

销毁和管理操作;
[0037]工作队列用于存放需要执行的任务;
[0038]线程池线程为线程池中的工作线程,用于执行工作队列中的任务

[0039]需要说明的是,线程的关联结构包括多个线程的关系,例如同步和互斥关系等,通过这些关系可以实现线程之间的协调和通信

计算资源的关联结构包括多个计算资源之间的关系,例如计算本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种隐藏异构编程多线程的关联结构,其特征在于,所述关联结构包括线程池

任务队列

资源管理器和隐式关联结构;所述线程池用于管理线程的创建和销毁,以及线程的调度和执行;所述任务队列用于存储需要执行的任务,线程从任务队列中获取任务并执行;所述资源管理器用于监测和管理计算资源,包括
CPU、GPU

FPGA
,以及它们之间的数据传输;所述隐式关联结构用于描述不同任务之间的依赖关系,以及任务和计算资源之间的映射关系
。2.
根据权利要求1所述的一种隐藏异构编程多线程的关联结构,其特征在于,所述线程池包括线程池管理器

工作队列

线程池线程;所述线程池管理器用于线程池的创建

销毁和管理操作;所述工作队列用于存放需要执行的任务;所述线程池线程为线程池中的工作线程,用于执行工作队列中的任务
。3.
根据权利要求2所述的一种隐藏异构编程多线程的关联结构,其特征在于,所述线程池的表现形式包括固定大小线程池

可变大小线程池和定时线程池
。4.
根据权利要求1所述的一种隐藏异构编程多线程的关联结构,其特征在于,所述任务队列包括任务单元

队列头指针和队列尾指针以及任务队列锁;所述任务单元包含待执行的任务及其相关的元数据;所述队列头指针指向任务队列中的第一个任务单元,所述队列尾指针指向任务队列中的最后一个任务单元;所述用于保护任务队列的访问,防止多个线程同时对任务队列进行修改
。5.
根据权利要求4所述的一种隐藏异...

【专利技术属性】
技术研发人员:董贇张丽媛艾徐华银源刘凯杰谭期文杨崇富
申请(专利权)人:广西电网有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1