CN108279976B - 一种编译资源调度方法、计算机及计算机可读存储介质 - Google Patents
一种编译资源调度方法、计算机及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108279976B CN108279976B CN201711434991.4A CN201711434991A CN108279976B CN 108279976 B CN108279976 B CN 108279976B CN 201711434991 A CN201711434991 A CN 201711434991A CN 108279976 B CN108279976 B CN 108279976B
- Authority
- CN
- China
- Prior art keywords
- compiling
- group
- source codes
- source
- resources
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种编译资源调度方法,所述方法包括:接收对多个源代码执行的编译操作;按照预设规则将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。此外,本发明还公开一种计算机及计算机可读存储介质。本实施例中,所述编译资源调度方法能够按照预设规则将多个源代码进行分组,并从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,这样,所述方法能够充分利用编译资源,提高编译资源的利用率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种编译资源调度方法、计算机及计算机可读存储介质。
背景技术
随着电子技术的不断发展,电子产品的功能越来越强大,能够实现各种功能的应用程序均是由源代码编译而来,现有技术中,源代码的编译均是在单一的计算机中完成,由于计算机的资源有限,且不同的源代码的编译的复杂程度不相同,容易导致编译资源的利用率低。
发明内容
有鉴于此,本发明提出一种编译资源调度方法、计算机及计算机可读存储介质,以解决上述技术问题。
首先,为实现上述目的,本发明提出一种编译资源调度方法,应用于计算机,所述方法包括:
接收对多个源代码执行的编译操作;
按照预设规则将所述多个源代码分为至少一组;
获取每个源代码对应的编译环境;
从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。
可选地,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源之后,所述方法还包括:
控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。
可选地,所述控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码之后,所述方法还包括:
编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。
可选地,所述按照预设规则将所述多个源代码分为至少一组,包括:
根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。
可选地,所述编译方式包括多线程编译方式以及单线程编译方式。
可选地,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:
根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。
可选地,所述按照预设规则将所述多个源代码分为至少一组,包括:
接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。
可选地,所述接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组,包括:
接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;
基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。
进一步地,为实现上述目的,本发明还提供一种计算机,所述计算机包括存储器、至少一个处理器及存储在所述存储器上并可在所述至少一个处理器执行的至少一个程序,所述至少一个程序被所述至少一个处理器执行时实现上述任一项所述的方法中的步骤。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行的至少一个程序,所述至少一个程序被所述计算机执行时使所述计算机执行上述方法中的步骤。
相较于现有技术,本发明所提出的编译资源调度方法接收对多个源代码执行的编译操作;按照预设规则将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本实施例中,所述编译资源调度方法能够按照预设规则将多个源代码进行分组,并从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,这样,所述方法能够充分利用编译资源,提高编译资源的利用率。
附图说明
图1是本发明实施例提供的一种编译资源调度方法的流程示意图;
图2是本发明实施例提供的另一种编译资源调度方法的流程示意图;
图3是本发明实施例提供的另一种编译资源调度方法的流程示意图;
图4是本发明实施例提供的另一种编译资源调度方法的流程示意图;
图5是本发明实施例提供的一种计算机的结构示意图;
图6是本发明实施例提供的一种计算机的功能模块示意图;
图7是本发明实施例提供的另一种计算机的功能模块示意图;
图8是本发明实施例提供的另一种计算机的功能模块示意图;
图9是本发明实施例提供的另一种计算机的功能模块示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
参阅图1,图1是本发明实施例提供的一种编译资源调度方法的步骤流程图,所述方法应用于一计算机中,如图1所示,所述方法包括:
步骤101、接收对多个源代码执行的编译操作。
该步骤中,所述方法接收对多个源代码执行的编译操作。可以理解的是,该步骤中,所述方法可以是接收一个用户对多个源代码执行的编译操作,也可以是接收多个用户对源代码执行的编译操作,其中,每个用户对至少一个源代码执行编译操作。所述多个源代码可以相同,也可以不同。可以理解的是,若所述方法接收到的是一个用户对多个源代码执行的编译操作,所述多个源代码为不同的源代码;若所述方法接收到的是多个用户对多个源代码执行的编译操作,所述多个源代码可以为互不相同的源代码,也可以包括相同的至少两个源代码,本发明实施例对此不作具体限定。
步骤102、按照预设规则将所述多个源代码分为至少一组。
该步骤中,所述方法按照预设规则将所述多个源代码分为至少一组,所述预设规则可以是根据用户的分组操作,也可以通过识别所述多个源代码的内容进行自动分组,本发明实施例对此不作具体限定。可以理解的是,在本发明一些实施例中,所述方法可以结合用户的分组操作以及识别到的源代码的内容两者一起对所述多个源代码进行分组。
本发明一些实施例中,用户可以对所述多个源代码进行查看,并对所述多个源代码执行分组操作,所述方法接收用户的分组操作,并基于所述分组操作对所述多个源代码进行分组。具体地,用户可以将具有相同的编译过程文件的源代码分为一组,所述方法接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作,并基于所述分组操作,对所述多个源代码进行分组,其中,每组源代码中的源代码具有相同的编译过程文件。
本发明另一些实施例中,所述方法可以通过识别所述多个源代码的具体内容的方式对所述多个源代码进行自动分组。具体地,所述方法可以判断所述多个源代码分别支持的编译方式,然后根据所述多个源代码分别支持的编译方式将所述多个源代码进行分组。所述编译方式包括多线程编译方式以及单线程编译方式,举例而言,所述方法可以根据所述多个源代码分别支持的线程数量对所述多个源代码进行分组,例如可以将支持线程数量相同的源代码分为一组。进一步地,所述方法还可以根据所述多个源代码分别支持的线程数量以及每个源代码的每个线程的线程长度对所述多个源代码进行分组。该实施例中,所述方法可以通过使用编译器对源代码特征进行提取,然后根据提取到的源代码特征确定源代码支持的线程数量。
本发明其他实施例中,所述方法可以结合用户选择以及自动分组两种方式一起对所述多个源代码进行分组。例如所述方法可以将支持的线程数量相同,且具有相同的编译过程文件分为同一组,也可以结合所述自动分组以及用户的其他选择方式两者结合对所述多个源代码进行分组,本发明实施例对此不作具体限定。
步骤103、获取每个源代码对应的编译环境。
该步骤中,所述方法获取每个源代码对应的编译环境。具体地,所述方法可以读取每个源代码的内容,然后根据每个源代码的内容确定每个源代码的编译环境,例如,可以通过使用编译器读取每个源代码的内容。可以理解的是,所述编译环境为源代码运行的不同系统,或者相同系统的不同版本。
步骤104、从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。
该步骤中,所述方法从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本发明实施例中,所述资源池中包括多个编译资源,即多个编译器以及多个内存,所述资源池可以理解成有多个计算机组成的资源池,例如由多个计算机组成的超级计算机。
具体地,对于一组仅支持单线程的源代码,所述方法可以从所述资源池中为该组源代码分配支持该组源代码的编译环境的处理器进行单进程单线程编译。对于支持多线程的一组源代码,所述方法可以从所述资源池中为该组源代码分配支持该组源代码的编译环境的处理器进行多线程并行编译。进一步地,所述方法还可以根据每个源代码的线程长度动态分配编译任务,这样,能够尽量少地让处理器进行不同线程的切换,提供处理器的利用率,提升编译速度。此外,对于具有相同编译过程文件的一组源代码,相同过程的文件源代码可以仅执行一次,得到对应的编译过程文件,其他源代码可以直接使用该编译过程文件,而不需要对相同的源代码进行重复编译,可以有效减轻处理器的编译任务,提升编译速度,提高编译性能。
本实施例中,所述编译资源调度方法接收对多个源代码执行的编译操作;按照预设规则将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本实施例中,所述编译资源调度方法能够按照预设规则将多个源代码进行分组,并从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,这样,所述方法能够充分利用编译资源,提高编译资源的利用率。
参见图2,图2是本发明实施例提供的另一种编译资源调度方法的流程示意图,如图2所示,所述方法包括:
步骤201、接收对多个源代码执行的编译操作。
步骤202、按照预设规则将所述多个源代码分为至少一组。
步骤203、获取每个源代码对应的编译环境。
步骤204、从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。
所述步骤201至步骤204与本发明图1所示的实施例中的步骤101至步骤104相同,此处不再赘述。
步骤205、控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。
该步骤中,所述方法控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。具体地,所述方法将每组源代码进行排队,并控制为该组源代码分配的编译资源编译该组源代码。这样,所述方法能够在编译资源对源代码进行编译之前将多个源代码进行分组排队,避免在编译过程还需要确定需要编译的源代码的情况,有效提高编译资源的利用率。
可选地,所述控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码之后,所述方法还包括:
编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接(link)。
该实施例中,所述方法在编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。具体地,所述一个处理器可以是为编译该组源代码的处理器,即当一个处理器A无论是单线程还是多线程编译一组源代码,当该组源代码生成多个过程文件后,所述方法控制该处理器A以单线程对所述多个过程文件进行链接,即将该处理器A由多线程编译方式调节为单线程编译方式对多个过程文件进行链接。所述一个处理器也可以不为编译该组源代码的处理器,即当处理器A编译一组源代码生成多个过程文件后,所述方法可以控制处理器B使用单线程对所述多个过程文件进行链接。本发明一些实施例中,所述使用单线程为所述多个过程文件进行链接的处理器为超频处理器。
参见图3,图3是本发明实施例提供的另一种编译资源调度方法的流程示意图,如图3所示,所述方法包括:
步骤301、接收对多个源代码执行的编译操作。
该步骤中,所述方法接收对多个源代码执行的编译操作。可以理解的是,该步骤中,所述方法可以是接收一个用户对多个源代码执行的编译操作,也可以是接收多个用户对源代码执行的编译操作,其中,每个用户对至少一个源代码执行编译操作。所述多个源代码可以相同,也可以不同。可以理解的是,若所述方法接收到的是一个用户对多个源代码执行的编译操作,所述多个源代码为不同的源代码;若所述方法接收到的是多个用户对多个源代码执行的编译操作,所述多个源代码可以为互不相同的源代码,也可以包括相同的至少两个源代码,本发明实施例对此不作具体限定。
步骤302、根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。
该实施例中,所述方法可以通过识别所述多个源代码的具体内容的方式对所述多个源代码进行自动分组。具体地,所述方法可以判断所述多个源代码分别支持的编译方式,然后根据所述多个源代码分别支持的编译方式将所述多个源代码进行分组。所述编译方式包括多线程编译方式以及单线程编译方式,举例而言,所述方法可以根据所述多个源代码分别支持的线程数量对所述多个源代码进行分组,例如可以将支持线程数量相同的源代码分为一组。进一步地,所述方法还可以根据所述多个源代码分别支持的线程数量以及每个源代码的每个线程的线程长度对所述多个源代码进行分组。该实施例中,所述方法可以通过使用编译器对源代码特征进行提取,然后根据提取到的源代码特征确定源代码支持的线程数量。
步骤303、获取每个源代码对应的编译环境。
该步骤中,所述方法获取每个源代码对应的编译环境。具体地,所述方法可以读取每个源代码的内容,然后根据每个源代码的内容确定每个源代码的编译环境,例如,可以通过使用编译器读取每个源代码的内容。可以理解的是,所述编译环境为源代码运行的不同系统,或者相同系统的不同版本。
步骤304、从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。
该步骤中,所述方法从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本发明实施例中,所述资源池中包括多个编译资源,即多个编译器以及多个内存,所述资源池可以理解成有多个计算机组成的资源池,例如由多个计算机组成的超级计算机。
具体地,对于具有相同编译过程文件的一组源代码,相同过程的文件源代码可以仅执行一次,得到对应的编译过程文件,其他源代码可以直接使用该编译过程文件,而不需要对相同的源代码进行重复编译,可以有效减轻处理器的编译任务,提升编译速度,提高编译性能。
可选地,所述编译方式包括多线程编译方式以及单线程编译方式。
可选地,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:
根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。
本实施例中,所述编译资源调度方法接收对多个源代码执行的编译操作;根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本实施例中,所述编译资源调度方法能够根据所述多个源代码分别支持的编译方式将多个源代码进行分组,并从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,这样,所述方法能够充分利用编译资源,提高编译资源的利用率。
参见图4,图4是本发明实施例提供的另一种编译资源调度方法的流程示意图,如图4所示,所述方法包括:
步骤401、接收对多个源代码执行的编译操作。
该步骤中,所述方法接收对多个源代码执行的编译操作。可以理解的是,该步骤中,所述方法可以是接收一个用户对多个源代码执行的编译操作,也可以是接收多个用户对源代码执行的编译操作,其中,每个用户对至少一个源代码执行编译操作。所述多个源代码可以相同,也可以不同。可以理解的是,若所述方法接收到的是一个用户对多个源代码执行的编译操作,所述多个源代码为不同的源代码;若所述方法接收到的是多个用户对多个源代码执行的编译操作,所述多个源代码可以为互不相同的源代码,也可以包括相同的至少两个源代码,本发明实施例对此不作具体限定。
步骤402、接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。
该实施例中,用户可以对所述多个源代码进行查看,并对所述多个源代码执行分组操作,所述方法接收用户的分组操作,并基于所述分组操作对所述多个源代码进行分组。具体地,用户可以将具有相同的编译过程文件的源代码分为一组,所述方法接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作,并基于所述分组操作,对所述多个源代码进行分组,其中,每组源代码中的源代码具有相同的编译过程文件。
步骤403、获取每个源代码对应的编译环境。
该步骤中,所述方法获取每个源代码对应的编译环境。具体地,所述方法可以读取每个源代码的内容,然后根据每个源代码的内容确定每个源代码的编译环境,例如,可以通过使用编译器读取每个源代码的内容。可以理解的是,所述编译环境为源代码运行的不同系统,或者相同系统的不同版本。
步骤404、从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。
该步骤中,所述方法从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本发明实施例中,所述资源池中包括多个编译资源,即多个编译器以及多个内存,所述资源池可以理解成有多个计算机组成的资源池,例如由多个计算机组成的超级计算机。
具体地,对于具有相同编译过程文件的一组源代码,相同过程的文件源代码可以仅执行一次,得到对应的编译过程文件,其他源代码可以直接使用该编译过程文件,而不需要对相同的源代码进行重复编译,可以有效减轻处理器的编译任务,提升编译速度,提高编译性能。
可选地,所述接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组,包括:
接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;
基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。
本实施例中,所述编译资源调度方法接收对多个源代码执行的编译操作;接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组;获取每个源代码对应的编译环境;从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。本实施例中,所述编译资源调度方法能够根据用户输入的分组操作将多个源代码进行分组,并从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,这样,所述方法能够充分利用编译资源,提高编译资源的利用率。
请参考图5,图5是本发明实施提供的一种计算机的结构示意图,如图5所示,该网络侧设备包括:处理器500、收发机510、存储器520、用户接口530和总线接口,其中:
处理器500,用于读取存储器520中的程序,执行下列过程:
接收对多个源代码执行的编译操作;
按照预设规则将所述多个源代码分为至少一组;
获取每个源代码对应的编译环境;
从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。
其中,收发机510,用于在处理器500的控制下接收和发送数据。
在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器500代表的一个或多个处理器和存储器520代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机510可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口530还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器500负责管理总线架构和通常的处理,存储器520可以存储处理器500在执行操作时所使用的数据。
可选地,所述处理器500执行从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源之后,还可实现如下步骤:
控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。
可选地,所述处理器500执行控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码之后,还可实现如下步骤:
编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。
可选地,所述处理器500执行的按照预设规则将所述多个源代码分为至少一组,包括:
根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。
可选地,所述编译方式包括多线程编译方式以及单线程编译方式。
可选地,所述处理器500执行的从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:
根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。
可选地,所述处理器500执行的按照预设规则将所述多个源代码分为至少一组,包括:
接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。
可选地,所述处理器500执行的接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组,包括:
接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;
基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。
参阅图6,图6是本发明实施例提供的一种计算机的功能模块示意图,如图6所示,所述计算机600包括:
接收模块601,用于接收对多个源代码执行的编译操作;
分组模块602,用于按照预设规则将所述多个源代码分为至少一组;
获取模块603,用于获取每个源代码对应的编译环境;
分配模块604,用于从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。
可选地,参见图7,图7是本发明实施例提供的另一种计算机的功能模块示意图,如图7所示,所述计算机600还包括:
第一控制模块605,用于控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。
可选地,参见图8,图8是本发明实施例提供的另一种计算机的功能模块示意图,如图8所示,所述计算机600还包括:
第二控制模块606,用于编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。
可选地,所述分组模块602,具体用于:
根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。
可选地,所述编译方式包括多线程编译方式以及单线程编译方式。
可选地,所述分配模块604,具体用于:
根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。
可选地,所述分组模块602,具体用于:
接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。
可选地,参见图9,图9是本发明实施例提供的另一种计算机的功能模块示意图,如图9所示,所述分组模块602,包括:
接收单元6021,用于接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;
分组单元6022,用于基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。
本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过至少一个程序指令相关的硬件来完成,所述至少一个程序可以存储于一计算机可读存储介质中,该至少一个程序在执行时,包括以下步骤:
接收对多个源代码执行的编译操作;
按照预设规则将所述多个源代码分为至少一组;
获取每个源代码对应的编译环境;
从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存。
可选地,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源之后,所述至少一个程序被执行时,还可实现如下步骤:
控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。
可选地,所述控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码之后,所述至少一个程序被执行时,还可实现如下步骤:
编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。
可选地,所述按照预设规则将所述多个源代码分为至少一组,包括:
根据所述多个源代码分别支持的编译方式将所述多个源代码分为至少一组。
可选地,所述编译方式包括多线程编译方式以及单线程编译方式。
可选地,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:
根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。
可选地,所述按照预设规则将所述多个源代码分为至少一组,包括:
接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组。
可选地,所述接收用户输入的分组操作,基于所述分组操作将所述多个源代码分为至少一组,包括:
接收用户输入的将具有相同的编译过程文件的源代码分为一组的分组操作;
基于所述分组操作,将所述多个源代码分为至少一组,其中,每组源代码中的源代码具有相同的编译过程文件。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种编译资源调度方法,应用于计算机,其特征在于,所述方法包括:
接收对多个源代码执行的编译操作;
按照预设规则将所述多个源代码分为至少一组;
获取每个源代码对应的编译环境;
从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,其中,所述编译资源包括处理器以及内存;
其中,所述按照预设规则将所述多个源代码分为至少一组,包括:
根据所述多个源代码分别支持的编译方式和用户输入的分组操作将所述多个源代码分为至少一组;其中,所述编译方式包括多线程编译方式以及单线程编译方式;所述用户输入的分组操作为将具有相同的编译过程文件的源代码分为一组的分组操作;
其中,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源,包括:
使用编译器对源代码特征进行提取,根据提取到的源代码特征确定源代码支持的线程数量;
根据每个源代码支持的线程数量以及每个线程长度,从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源。
2.如权利要求1所述的编译资源调度方法,其特征在于,所述从包括多个编译资源的资源池中为每组源代码分配支持该组内每个源代码对应的编译环境的编译资源之后,所述方法还包括:
控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码。
3.如权利要求2所述的编译资源调度方法,其特征在于,所述控制为每组源代码分配的编译资源并行编译每组源代码中的每个源代码之后,所述方法还包括:
编译每组源代码生成多个过程文件后,控制一个处理器使用单线程对所述多个过程文件进行链接。
4.一种计算机,其特征在于,所述计算机包括存储器、至少一个处理器及存储在所述存储器上并可在所述至少一个处理器执行的至少一个程序,所述至少一个程序被所述至少一个处理器执行时实现上述权利要求1~3任一项所述的方法中的步骤。
5.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行的至少一个程序,其特征在于,所述至少一个程序被所述计算机执行时使所述计算机执行上述权利要求1~3任一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711434991.4A CN108279976B (zh) | 2017-12-26 | 2017-12-26 | 一种编译资源调度方法、计算机及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711434991.4A CN108279976B (zh) | 2017-12-26 | 2017-12-26 | 一种编译资源调度方法、计算机及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108279976A CN108279976A (zh) | 2018-07-13 |
CN108279976B true CN108279976B (zh) | 2021-11-19 |
Family
ID=62802184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711434991.4A Active CN108279976B (zh) | 2017-12-26 | 2017-12-26 | 一种编译资源调度方法、计算机及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108279976B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110018830A (zh) * | 2019-04-04 | 2019-07-16 | 航天云网科技发展有限责任公司 | 一种基于分布式集群的大型软件编译装置 |
CN110286909B (zh) * | 2019-06-29 | 2023-01-24 | 潍柴动力股份有限公司 | Simulink模型资源使用数据的统计方法及装置 |
CN111414308B (zh) * | 2020-03-26 | 2023-08-22 | 抖音视界有限公司 | 应用程序包的处理方法和应用程序的运行方法、装置 |
CN112162851B (zh) * | 2020-09-14 | 2022-12-13 | Oppo(重庆)智能科技有限公司 | dex预编译方法、装置、计算机设备及存储介质 |
CN114168294A (zh) * | 2021-12-10 | 2022-03-11 | 北京鲸鲮信息系统技术有限公司 | 编译资源分配方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101076780A (zh) * | 2004-12-13 | 2007-11-21 | 皇家飞利浦电子股份有限公司 | 针对程序中循环的编译方法、编译设备和计算机系统 |
US9015680B1 (en) * | 2012-02-24 | 2015-04-21 | Google Inc. | Differential analysis of translation of software for the detection of flaws |
CN105224333A (zh) * | 2015-10-16 | 2016-01-06 | 中国工商银行股份有限公司 | 大机目标代码快速生成方法及系统 |
CN106095523A (zh) * | 2016-06-03 | 2016-11-09 | 北京奇虎科技有限公司 | 一种实现安卓编译隔离的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9736259B2 (en) * | 2015-06-30 | 2017-08-15 | Iheartmedia Management Services, Inc. | Platform-as-a-service with proxy-controlled request routing |
-
2017
- 2017-12-26 CN CN201711434991.4A patent/CN108279976B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101076780A (zh) * | 2004-12-13 | 2007-11-21 | 皇家飞利浦电子股份有限公司 | 针对程序中循环的编译方法、编译设备和计算机系统 |
US9015680B1 (en) * | 2012-02-24 | 2015-04-21 | Google Inc. | Differential analysis of translation of software for the detection of flaws |
CN105224333A (zh) * | 2015-10-16 | 2016-01-06 | 中国工商银行股份有限公司 | 大机目标代码快速生成方法及系统 |
CN106095523A (zh) * | 2016-06-03 | 2016-11-09 | 北京奇虎科技有限公司 | 一种实现安卓编译隔离的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108279976A (zh) | 2018-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108279976B (zh) | 一种编译资源调度方法、计算机及计算机可读存储介质 | |
CN107343045B (zh) | 云计算系统及用于控制服务器的云计算方法和装置 | |
US9298438B2 (en) | Profiling application code to identify code portions for FPGA implementation | |
US9396028B2 (en) | Scheduling workloads and making provision decisions of computer resources in a computing environment | |
KR101893982B1 (ko) | 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치 | |
CN109992407B (zh) | 一种yarn集群gpu资源调度方法、装置和介质 | |
EP3430511A1 (en) | Batching inputs to a machine learning model | |
US20130346985A1 (en) | Managing use of a field programmable gate array by multiple processes in an operating system | |
US11507419B2 (en) | Method,electronic device and computer program product for scheduling computer resources in a task processing environment | |
WO2013165459A1 (en) | Control flow graph operating system configuration | |
WO2013192380A1 (en) | Updating hardware libraries for use by applications on a computer system with an fpga coprocessor | |
KR20110025745A (ko) | 프로세스 내의 스케줄러 인스턴스들 | |
US20140189708A1 (en) | Terminal and method for executing application in same | |
US9471387B2 (en) | Scheduling in job execution | |
EP3032413B1 (en) | Code generation method, compiler, scheduling method, apparatus and scheduling system | |
KR102052964B1 (ko) | 컴퓨팅 스케줄링 방법 및 시스템 | |
JP2016115065A (ja) | 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム | |
CN115237589A (zh) | 一种基于sr-iov的虚拟化方法、装置和设备 | |
CN114185550A (zh) | 分布式编译方法、设备及存储介质 | |
CN107634978B (zh) | 一种资源调度方法及装置 | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
KR20140006351A (ko) | 예상 실행 시간 정보를 이용하여 작업을 분배하는 이종 멀티코어 프로세서 시스템의 작업 분배 방법 및 그 방법을 이용하는 이종 멀티코어 프로세서 시스템 | |
CN110225082B (zh) | 任务处理方法、装置、电子设备和计算机可读介质 | |
CN110213333B (zh) | 任务处理方法、装置、电子设备和计算机可读介质 | |
WO2021095943A1 (ko) | 서비스 프로파일을 고려한 컨테이너의 배치 방법 |
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 |