CN112612615B - 基于多线程内存分配和上下文调度的数据处理方法及系统 - Google Patents

基于多线程内存分配和上下文调度的数据处理方法及系统 Download PDF

Info

Publication number
CN112612615B
CN112612615B CN202011580433.0A CN202011580433A CN112612615B CN 112612615 B CN112612615 B CN 112612615B CN 202011580433 A CN202011580433 A CN 202011580433A CN 112612615 B CN112612615 B CN 112612615B
Authority
CN
China
Prior art keywords
coroutine
task
scheduling
memory
producer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011580433.0A
Other languages
English (en)
Other versions
CN112612615A (zh
Inventor
王金国
苗功勋
崔新安
宋树达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD
Nanjing Zhongfu Information Technology Co Ltd
Zhongfu Information Co Ltd
Zhongfu Safety Technology Co Ltd
Original Assignee
BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD
Nanjing Zhongfu Information Technology Co Ltd
Zhongfu Information Co Ltd
Zhongfu Safety Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD, Nanjing Zhongfu Information Technology Co Ltd, Zhongfu Information Co Ltd, Zhongfu Safety Technology Co Ltd filed Critical BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD
Priority to CN202011580433.0A priority Critical patent/CN112612615B/zh
Publication of CN112612615A publication Critical patent/CN112612615A/zh
Application granted granted Critical
Publication of CN112612615B publication Critical patent/CN112612615B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

本发明公开了基于多线程内存分配和上下文调度的数据处理方法及系统,包括:对待处理的业务代码分别做抽象化包装,包装成对应的协程任务;根据协程任务的类型,对协程任务进行调度处理:如果协程任务为单个协程任务或者为多个无相关的协程任务,则基于用户态实现的任务调度算法并行执行;其中,在并行执行的过程中,采用多线程下的内存动态分配策略对内存进行分配;如果协程任务为多个相关联的协程任务,则根据happen before法则,单次或多次投递到多生产者多消费者队列,通过多生产者多消费者队列完成协程任务的处理,并根据调度情况进行多线程并行处理;将协程任务的处理结果通过数据的形式进行可视化。

Description

基于多线程内存分配和上下文调度的数据处理方法及系统
技术领域
本申请涉及多线程任务处理技术领域,特别是涉及基于多线程内存分配和上下文调度的数据处理方法及系统。
背景技术
本部分的陈述仅仅是提到了与本申请相关的背景技术,并不必然构成现有技术。
众所周知,使用编程语言C/C++开发出来的程序,可以拥有更快的运行速度,更低的硬件资源占用。为了追求极致运行速度,多线程下的并行编程被C/C++程序员广泛使用。同时,在极致的运行速度下,为了追求逻辑一致性,并行编程带来了严重的心智负担。可以说,稍有考虑不慎,就会带来严重的错误。
编程语言Golang的出现,从编程语言角度解决了并行编程带来的心智负担,但其运行速度、资源占用远达不到C/C++水准,且无法在龙芯mips、申威sw_64芯片平台下使用。
发明内容
为了解决现有技术的不足,本申请提供了基于多线程内存分配和上下文调度的数据处理方法及系统;
第一方面,本申请提供了基于多线程内存分配和上下文调度的数据处理方法;
基于多线程内存分配和上下文调度的数据处理方法,包括:
对待处理的业务代码分别做抽象化包装,包装成对应的协程任务;
根据协程任务的类型,对协程任务进行调度处理:如果协程任务为单个协程任务或者为多个无相关的协程任务,则基于用户态实现的任务调度算法并行执行;其中,在并行执行的过程中,采用多线程下的内存动态分配策略对内存进行分配;如果协程任务为多个相关联的协程任务,则根据happen before法则,单次或多次投递到多生产者多消费者队列,通过多生产者多消费者队列完成协程任务的处理,并根据调度情况进行多线程并行处理;
将协程任务的处理结果通过数据的形式进行可视化。
第二方面,本申请提供了基于多线程内存分配和上下文调度的数据处理系统;
基于多线程内存分配和上下文调度的数据处理系统,包括:
包装模块,其被配置为:对待处理的业务代码分别做抽象化包装,包装成对应的协程任务;
调度处理模块,其被配置为:根据协程任务的类型,对协程任务进行调度处理:如果协程任务为单个协程任务或者为多个无相关的协程任务,则基于用户态实现的任务调度算法并行执行;其中,在并行执行的过程中,采用多线程下的内存动态分配策略对内存进行分配;如果协程任务为多个相关联的协程任务,则根据happen before法则,单次或多次投递到多生产者多消费者队列,通过多生产者多消费者队列完成协程任务的处理,并根据调度情况进行多线程并行处理;
可视化模块,其被配置为:将协程任务的处理结果通过数据的形式进行可视化。
与现有技术相比,本申请的有益效果是:
1.适用于多芯片架构平台(普通x86、龙芯、兆芯、飞腾、申威)的多系统平台(Windows、Linux、OSX)。
2.高性能,如在网络编程中使用可轻松实现单机百万、千万级接入。
3.依赖少,只依赖于boost::context。
4.简单易用,没有心智负担,可轻松上手使用。
5.应用场景包括:低延迟交易平台、大数据计算平台、高并发网络平台和多接入业务平台。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为第一个实施例的协程框架整体结构图;
图2为第一个实施例的协程调度系统的三个组成部分示意图;
图3为第一个实施例的并行编程下最大的心智问题就是数据逻辑一致性,使用zf_co只需两行代码就能解决问题,两行代码示意图;
图4为第一个实施例的普通多线程模式、Lock-free模式、Wait-free模式的内存占用与执行效率示意图;
图5为第一个实施例的本发明的整体流程图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
本实施例提供了基于多线程内存分配和上下文调度的数据处理方法;
基于多线程内存分配和上下文调度的数据处理方法,包括:
S101:对待处理的业务代码分别做抽象化包装,包装成对应的协程任务;
S102:根据协程任务的类型,对协程任务进行调度处理:
如果协程任务为单个协程任务或者为多个无相关的协程任务,则基于用户态实现的任务调度算法并行执行;其中,在并行执行的过程中,采用多线程下的内存动态分配策略对内存进行分配;
如果协程任务为多个相关联的协程任务,则根据happen before法则,单次或多次投递到多生产者多消费者队列,通过多生产者多消费者队列完成协程任务的处理,并根据调度情况进行多线程并行处理;
S103:将协程任务的处理结果通过数据的形式进行可视化。
作为一个或多个实施例,所述S101:对待处理的业务代码分别做抽象化包装,包装成对应的协程任务;具体包括:
S1011:将待处理的业务代码,细化成最小协程任务;
S1012:为每个最小协程任务增加执行上下文信息段(执行状态信息)和优先级信息;
S1013:依据“happen before”原则,为每个最小协程任务增加执行关联信息。
作为一个或多个实施例,所述S102:如果协程任务为单个协程任务或者为多个无相关的协程任务;
其中,单个协程任务,是指单次执行的协程任务;
多个无相关的协程任务,是指多个单次执行的协程任务,且彼此之间没有关联。
作为一个或多个实施例,所述S102:如果协程任务为单个协程任务或者为多个相关的协程任务,则基于用户态实现的任务调度算法并行执行;具体包括:
S102b1:将协程任务放入无锁队列;
S102b2:无锁队列并行执行协程任务;无锁队列不区分优先级。
作为一个或多个实施例,所述S102:在并行执行的过程中,采用多线程下的内存动态分配策略对内存进行分配;具体包括:
S102c1:协程创建前,自动创建内存池;
S102c2:从预分配的内存池,按需分配内存给协程任务。
作为一个或多个实施例,所述S102:如果协程任务为多个相关联的协程任务,则根据happen before法则,单次或多次投递到多生产者多消费者队列;具体包括:
S102d1:区分若干个协程任务彼此之间的执行先后顺序;最先执行的协程任务,其优先级被标注为最高;
S102d2:根据happen before法则,单次或多次投递到多生产者多消费者队列。
作为一个或多个实施例,所述S102:通过多生产者多消费者队列完成协程任务的处理,并根据调度情况进行多线程并行处理;具体包括:
S102e1:协程任务根据优先级插入到多生产者多消费者队列;多生产者多消费者队列是一个无锁队列;无锁队列是多线程的;无锁队列的线程数和CPU物理线程数一致;无锁队列的每个线程绑定了物理线程,以减少cache miss;
S102e2:多生产者多消费者队列,依据协程任务的优先级和执行关联信息并行执行。
如图1所示,zf_corutine协程框架整体分为两大部分,zf_co和zf_channel。
如图2所示,协程调度系统分三部分:上下文调度zf_context、多线程内存分配器zfmalloc、任务包装器zf_co_task。其中上下文zf_context和多线程内存分配器组成zf_co语法糖,用于处理任务包装器zf_co_task包装的抽象化任务。
如图3所示,并行编程下最大的心智问题就是数据逻辑一致性,使用zf_co只需两行代码就能解决问题。
上下文调度zf_context基于c++准标准库boost::context,在此之上进行了大幅魔改优化,使其支持龙芯mips、申威sw_64芯片架构的Linux系统。zf_context的作用是模拟操作系统的线程调度算法,构成了用户态的线程——协程,创建、维护、保存和切换CPU寄存器的执行状态。
C++默认内存分配策略在多线程环境下存在开销高、效率极低的问题。为解决此问题,zfmalloc借鉴了微软开源的mimalloc内存分配策略,并在此之上魔改优化,使其支持龙芯mips、申威sw_64芯片架构的Linux系统,最终达到了多线程环境下内存分配开销低、高效率的功能特点。
zf_co_task是一个任务包装器,可以将任意的业务代码进行包装,供zf_co语法糖执行使用。
zf_channel是仿照Golang的channel做的一个多生产者多消费者无锁队列。它的用法类似于Golang的channel,但内部实现完全不同于Golang的channel。
如图4所示,zf_channel分为三种模式——普通多线程模式、Lock-free模式、Wait-free模式。
普通多线程模式:在多生产者多消费者业务高峰下,效率最低,内存占用最低。
Lock-free模式:在多生产者多消费者业务高峰下,效率一般,内存占用高于普通多线程模式,低于Wait-free模式。
Wait-free模式:在多生产者多消费者业务高峰下,效率最高,内存占用高也是最高。
zf_corutine协程框架默认会根据硬件参数来决定使用哪种队列模式,也可以配置选择指定的队列模式。
如图5所示,实现步骤:
步骤一:任务包装器(zf_co_task),用于对现有业务代码做抽象化包装,包装成协程任务。
步骤二:多生产者多消费者队列(zf_channel),用于保存和消化多生产者多消费者模型下的抽象化数据。
步骤三:多线程内存分配器(zf_molloc),其主要目的是分配内存,用于解决多线程模式下传统内存分配器效在内存分配、销毁效率低的问题。
步骤四:上下文调度器(zf_context),用户态实现的任务调度算法。
步骤五:多线程内存分配器和上下文调度器共同组成了协程调度系统(zf_co),用于协程任务的调度。
当单个/多个无相关协程任务被创建后,则进入协程调度系统并行执行;当多个相关联协程任务被创建后,会根据“happen befor”法则,单次/多次投递到多生产者多消费者队列,并由调度情况多线性并行处理。
步骤六:协程执行结果会以数据形式由编码人员处理。
实施例二
本实施例提供了基于多线程内存分配和上下文调度的数据处理系统;
基于多线程内存分配和上下文调度的数据处理系统,包括:
包装模块,其被配置为:对待处理的业务代码分别做抽象化包装,包装成对应的协程任务;
调度处理模块,其被配置为:根据协程任务的类型,对协程任务进行调度处理:如果协程任务为单个协程任务或者为多个无相关的协程任务,则基于用户态实现的任务调度算法并行执行;其中,在并行执行的过程中,采用多线程下的内存动态分配策略对内存进行分配;如果协程任务为多个相关联的协程任务,则根据happen before法则,单次或多次投递到多生产者多消费者队列,通过多生产者多消费者队列完成协程任务的处理,并根据调度情况进行多线程并行处理;
可视化模块,其被配置为:将协程任务的处理结果通过数据的形式进行可视化。
此处需要说明的是,上述包装模块、调度处理模块和可视化模块对应于实施例一中的步骤S101至S103,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (9)

1.基于多线程内存分配和上下文调度的数据处理方法,其特征是,包括:
对待处理的业务代码分别做抽象化包装,包装成对应的协程任务;
根据协程任务的类型,对协程任务进行调度处理:
如果协程任务为单个协程任务或者为多个无相关的协程任务,则基于用户态实现的任务调度算法并行执行;其中,在并行执行的过程中,采用多线程下的内存动态分配策略对内存进行分配;
如果协程任务为多个相关联的协程任务,则根据happen before法则,单次或多次投递到多生产者多消费者队列,通过多生产者多消费者队列完成协程任务的处理,并根据调度情况进行多线程并行处理;
将协程任务的处理结果通过数据的形式进行可视化;
在并行执行的过程中,采用多线程下的内存动态分配策略对内存进行分配;具体包括:
协程创建前,自动创建内存池;
从预分配的内存池,按需分配内存给协程任务。
2.如权利要求1所述的基于多线程内存分配和上下文调度的数据处理方法,其特征是,对待处理的业务代码分别做抽象化包装,包装成对应的协程任务;具体包括:
将待处理的业务代码,细化成最小协程任务;
为每个最小协程任务增加执行上下文信息段和优先级信息;
依据happen before原则,为每个最小协程任务增加执行关联信息。
3.如权利要求1所述的基于多线程内存分配和上下文调度的数据处理方法,其特征是,如果协程任务为单个协程任务或者为多个无相关的协程任务;
其中,单个协程任务,是指单次执行的协程任务;
多个无相关的协程任务,是指多个单次执行的协程任务,且彼此之间没有关联。
4.如权利要求1所述的基于多线程内存分配和上下文调度的数据处理方法,其特征是,如果协程任务为单个协程任务或者为多个相关的协程任务,则基于用户态实现的任务调度算法并行执行;具体包括:
将协程任务放入无锁队列;
无锁队列并行执行协程任务;无锁队列不区分优先级。
5.如权利要求1所述的基于多线程内存分配和上下文调度的数据处理方法,其特征是,如果协程任务为多个相关联的协程任务,则根据happen before法则,单次或多次投递到多生产者多消费者队列;具体包括:
区分若干个协程任务彼此之间的执行先后顺序;最先执行的协程任务,其优先级被标注为最高;
根据happen before法则,单次或多次投递到多生产者多消费者队列。
6.如权利要求1所述的基于多线程内存分配和上下文调度的数据处理方法,其特征是,通过多生产者多消费者队列完成协程任务的处理,并根据调度情况进行多线程并行处理;具体包括:
协程任务根据优先级插入到多生产者多消费者队列;多生产者多消费者队列是一个无锁队列;无锁队列是多线程的;无锁队列的线程数和CPU物理线程数一致;无锁队列的每个线程绑定了物理线程,以减少cache miss;
多生产者多消费者队列,依据协程任务的优先级和执行关联信息并行执行。
7.基于多线程内存分配和上下文调度的数据处理系统,其特征是,包括:
包装模块,其被配置为:对待处理的业务代码分别做抽象化包装,包装成对应的协程任务;
调度处理模块,其被配置为:根据协程任务的类型,对协程任务进行调度处理:如果协程任务为单个协程任务或者为多个无相关的协程任务,则基于用户态实现的任务调度算法并行执行;其中,在并行执行的过程中,采用多线程下的内存动态分配策略对内存进行分配;如果协程任务为多个相关联的协程任务,则根据happen before法则,单次或多次投递到多生产者多消费者队列,通过多生产者多消费者队列完成协程任务的处理,并根据调度情况进行多线程并行处理;
可视化模块,其被配置为:将协程任务的处理结果通过数据的形式进行可视化;
在并行执行的过程中,采用多线程下的内存动态分配策略对内存进行分配;具体包括:
协程创建前,自动创建内存池;
从预分配的内存池,按需分配内存给协程任务。
8.如权利要求7所述的基于多线程内存分配和上下文调度的数据处理系统,其特征是,对待处理的业务代码分别做抽象化包装,包装成对应的协程任务;具体包括:
将待处理的业务代码,细化成最小协程任务;
为每个最小协程任务增加执行上下文信息段和优先级信息;
依据happen before原则,为每个最小协程任务增加执行关联信息。
9.如权利要求7所述的基于多线程内存分配和上下文调度的数据处理系统,其特征是,如果协程任务为单个协程任务或者为多个无相关的协程任务;
其中,单个协程任务,是指单次执行的协程任务;
多个无相关的协程任务,是指多个单次执行的协程任务,且彼此之间没有关联。
CN202011580433.0A 2020-12-28 2020-12-28 基于多线程内存分配和上下文调度的数据处理方法及系统 Active CN112612615B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011580433.0A CN112612615B (zh) 2020-12-28 2020-12-28 基于多线程内存分配和上下文调度的数据处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011580433.0A CN112612615B (zh) 2020-12-28 2020-12-28 基于多线程内存分配和上下文调度的数据处理方法及系统

Publications (2)

Publication Number Publication Date
CN112612615A CN112612615A (zh) 2021-04-06
CN112612615B true CN112612615B (zh) 2022-12-06

Family

ID=75248460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011580433.0A Active CN112612615B (zh) 2020-12-28 2020-12-28 基于多线程内存分配和上下文调度的数据处理方法及系统

Country Status (1)

Country Link
CN (1) CN112612615B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113608843B (zh) * 2021-07-08 2023-08-25 广东开放大学(广东理工职业学院) 协程实现方法和系统
CN113806044B (zh) * 2021-08-31 2023-11-07 天津大学 一种用于计算机视觉应用的异构平台任务瓶颈消除方法
CN116821893B (zh) * 2023-08-31 2023-11-28 北京华云安信息技术有限公司 代码执行方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110554909A (zh) * 2019-09-06 2019-12-10 腾讯科技(深圳)有限公司 任务的调度处理方法、装置及计算机设备
CN111078323A (zh) * 2019-10-12 2020-04-28 平安科技(深圳)有限公司 基于协程的数据处理方法、装置、计算机设备及存储介质
CN111694675A (zh) * 2019-03-15 2020-09-22 上海商汤智能科技有限公司 任务调度方法及装置、存储介质
CN111813554A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种任务调度处理方法、装置及电子设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107943577B (zh) * 2016-10-12 2022-03-04 上海优扬新媒信息技术有限公司 用于调度任务的方法和装置
US10387207B2 (en) * 2016-12-06 2019-08-20 International Business Machines Corporation Data processing
CN110955503B (zh) * 2018-09-27 2023-06-27 深圳市创客工场科技有限公司 任务调度方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694675A (zh) * 2019-03-15 2020-09-22 上海商汤智能科技有限公司 任务调度方法及装置、存储介质
CN110554909A (zh) * 2019-09-06 2019-12-10 腾讯科技(深圳)有限公司 任务的调度处理方法、装置及计算机设备
CN111078323A (zh) * 2019-10-12 2020-04-28 平安科技(深圳)有限公司 基于协程的数据处理方法、装置、计算机设备及存储介质
CN111813554A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种任务调度处理方法、装置及电子设备和存储介质

Also Published As

Publication number Publication date
CN112612615A (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
CN112612615B (zh) 基于多线程内存分配和上下文调度的数据处理方法及系统
CN105893126B (zh) 一种任务调度方法及装置
Tanasic et al. Enabling preemptive multiprogramming on GPUs
JP6949857B2 (ja) タイミングを中断させるモードにおけるソフトウェアの後方互換性テスト
Wang et al. Laperm: Locality aware scheduler for dynamic parallelism on gpus
CN103336718B (zh) 一种gpu线程调度优化方法
CN102880447B (zh) 一种在处理器中挂起和释放执行过程中计算线程的整体机制
US20070150895A1 (en) Methods and apparatus for multi-core processing with dedicated thread management
US7925869B2 (en) Instruction-level multithreading according to a predetermined fixed schedule in an embedded processor using zero-time context switching
US9811340B2 (en) Method and apparatus for reconstructing real program order of instructions in multi-strand out-of-order processor
US8869162B2 (en) Stream processing on heterogeneous hardware devices
CN103729480B (zh) 一种多核实时操作系统多个就绪任务快速查找及调度方法
JP5607545B2 (ja) マイクロプロセッサシステムにおける命令フェッチングの優先順位付け
US20120185866A1 (en) System and method for managing the interleaved execution of threads
US20080046689A1 (en) Method and apparatus for cooperative multithreading
JPH07191847A (ja) 静的インタリーブを用いたマルチスレッドマイクロコンピュータ
US10268519B2 (en) Scheduling method and processing device for thread groups execution in a computing system
JP2005284749A (ja) 並列処理コンピュータ
KR20050000487A (ko) 스케줄링 방법 및 실시간 처리시스템
KR20050004688A (ko) 스케줄링 방법 및 정보처리시스템
Göhringer et al. CAP-OS: Operating system for runtime scheduling, task mapping and resource management on reconfigurable multiprocessor architectures
WO2021218633A1 (zh) Cpu指令处理方法、控制器和中央处理单元
CN111209046A (zh) 一种面向多任务处理的嵌入式sparc处理器操作系统设计方法
KR20130066900A (ko) 연성 실시간 운영체제의 실시간성 확보방법
GB2458487A (en) Processor with multiple execution pipeline paths

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant