CN108509284A - 一种应用于函数式编程的树状模型任务管理系统 - Google Patents
一种应用于函数式编程的树状模型任务管理系统 Download PDFInfo
- Publication number
- CN108509284A CN108509284A CN201810193379.0A CN201810193379A CN108509284A CN 108509284 A CN108509284 A CN 108509284A CN 201810193379 A CN201810193379 A CN 201810193379A CN 108509284 A CN108509284 A CN 108509284A
- Authority
- CN
- China
- Prior art keywords
- task
- tree
- node
- data
- management system
- 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.)
- Pending
Links
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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/311—Functional or applicative languages; Rewrite languages
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Abstract
本发明公开了一种应用于函数式编程的树状模型任务管理系统,包括函数式编程的函数模型表述、任务管理系统、数据管理系统。表述函数式编程的树状模型被计算机解析后,由任务管理系统依据树状结构创建任务节点,对任务节点进行运行时管理,任务运行时所需要读取的数据以及输出的数据,由数据管理系统统一分配及管理。本发明以树状结构对运行时任务进行管理,即在任务运行时,依据树状结构的依赖关系,调度任务的运行顺序,即为每一个树节点创建子任务,当子任务完成时,将子任务的输出传递至父节点任务作为输入,并唤醒父节点任务继续执行运算,父子节点间依据函数连接关系存在依赖关系,非直系亲缘树节点不具有依赖关系,可作为并行计算任务执行。
Description
技术领域
本发明涉及计算机并行计算领域,特别涉及一种应用于函数式编程的并行任务管理系统。
背景技术
多线程处理器的出现使得计算机进行并行任务执行变成可能,而共享内存技术的实现为多线程间的数据共享提供了有效途径。
函数式编程已被证明与图灵机模型具有同等的描述能力。函数式编程具有无状态,无副作用等特性,使其更适用于并行化处理。目前的函数式编程应用包括:在编程语言层次实现完全的函数式编程;利用部分函数式编程特性实现的集群计算平台。
在编程语言层次实现完全的函数式编程。该方法对于过程式编程的开发者来说难以学习,同时纯粹的函数式编程在许多场景下有局限性。
现有技术中利用部分函数式编程特性实现的集群计算平台,利用部分函数式编程的特性,如无副作用即不对数据进行修改等,实现并行计算。这些计算平台大部分对业务逻辑的限制较大,以实现较高的效率。同时,这些平台并非完整的函数式编程支持,有一些其他函数式编程的特性没有加以应用。
综上所述,现有技术的函数式编程应用具有难以学习,应用受限,实现不完全等缺陷。
发明内容
本发明提供的一种应用于函数式编程的树状模型任务管理系统,用以解决现有技术实现不完全,应用受限的问题,具体技术方案如下。
一种应用于函数式编程的树状模型任务管理系统,其包括以树状结构进行函数式编程的函数模型表述,与上述表述对应的任务管理系统,以及用于管理输入输出数据的数据管理系统;表述函数式编程的树状模型被计算机解析后,由任务管理系统依据树状结构创建任务节点,对任务节点进行运行时管理,任务运行时所需要读取的数据以及输出的数据,由数据管理系统统一分配及管理;所述函数式编程中函数的树状表述将函数式编程中的函数输入输出连接关系以树状模型描述,该描述记载在可被计算机理解的文件中,由所述的树状模型任务管理模块进行处理。
进一步的,所述树状模型任务管理模块依据树状表述创建对应的任务节点,任务节点之间具有与数状模型描述一致的树状结构;在树状的任务节点结构中,树的父子关系表示了函数的输入输出依赖关系,即树结构中子节点任务的输出作为父节点任务的输入;在树状的任务节点结构中,非直系亲缘关系的节点不具有依赖关系,可进行并行化计算。
进一步的,所有任务节点满足输出只依赖于输入,与所有外部状态无关;所有任务节点满足运算过程只产生输出,不修改任何数据。
进一步的,所述数据管理模块在任务节点执行计算时,为任务节点提供输入数据的实体,供任务节点进行读取;当任务节点产生输出时,创建输出数据所需要的内存空间,用以记录任务节点输出结果;数据一旦生成,保持只读性,不再进行任何数据修改;即任务节点除了产生输出数据外,不对任何数据进行修改。
进一步的,对于不再需要的数据,由所述数据管理模块进行销毁;同一份数据可同时被多个任务节点读取。
所述函数式编程中函数的树状表述中,g(f(x))的函数连接关系,g函数在模型中作为父节点,f函数在模型中作为子节点,意为子节点函数的输出作为父节点函数的输入。
与现有技术相比,本发明具有如下优点和技术效果:本发明实施在具有共享内存能力的计算机上,可在软件框架层次上进行实现。在框架中提供树状结构描述的规范,并且在操作系统的进程层次上实现任务管理系统以及数据管理系统。开发者根据业务逻辑设计树状结构的描述文档以及其中每个任务节点的具体计算任务的程序文件,由任务管理进程对文档进行读入并解析,解析完成后依据文档描述的树状结构,创建任务节点、加载程序文件并进行执行。数据管理系统根据文档描述以及任务节点的输出需求创建在计算机共享内存中创建数据空间,并加以管理。
附图说明
图1为本发明实施例中用于实现树状模型任务管理方法的软件系统结构;
图2为本发明实施例中数学函数与对应的树状模型结构描述的对照图;
图3为本发明实施例中任务节点的结构;
图4为本发明实施例中数据块的结构。
具体实施方式
以下结合附图和实例对本发明的具体实施作进一步说明,但本发明的是适合保护不限于此,需指出的,以下若有未特别详细说明之过程或符号,均是本领域技术人员可参照现有技术实现的。
本发明实施在具有共享内存能力的计算机上,可在软件框架层次上进行实现。在框架中提供树状结构描述的规范,并且在操作系统的进程层次上实现任务管理系统以及数据管理系统。开发者根据业务逻辑设计树状结构的描述文档以及其中每个任务节点的具体计算任务的程序文件,由任务管理进程对文档进行读入并解析,解析完成后依据文档描述的树状结构,创建任务节点、加载程序文件并进行执行。数据管理系统根据文档描述以及任务节点的输出需求创建在计算机共享内存中创建数据空间,并加以管理。
如图1所示,本发明实施例提供的应用于函数式编程的树状模型任务管理系统的软件系统结构包括:
任务管理进程101,负责读取树状模型描述文档,创建计算任务,管理任务的唤醒和挂起;
数据管理进程102,负责输入与输出数据块的管理,主要包括创建与回收;
工作进程103,负责执行函数计算任务,同时有多个工作进程,以实现并行执行任务的目的。
共享内存104,用于存储数据以及进程间通信。
如图2所示,本发明使用一种树状的函数式编程模型表述方式:
形如201的函数u表述成形如202的树状结构,这种表述具有一般性,即任意函数均可适用。
在202中,203子节点任务的输出作为205父节点任务的输入;
非直系亲缘的203任务节点与204任务节点不具有依赖关系,可并行执行。
201函数u自身可以作为一个任务节点202,与其他函数组成新的函数树。
如图3所示,本发明实施例中任务节点包括一下结构:
任务节点ID 301:节点的唯一ID号,用于节点索引;
父节点ID 302:父节点的节点ID,用于索引及唤醒父节点任务;
输入参数列表303:函数任务的输入参数列表,以数据块ID列表表示(见图4)
输出参数301:函数任务的输出参数,以数据块ID表示(见图4)
如图4所示,本发明实施例中数据块包括一下结构:
数据块ID 401:数据块的唯一ID,用以执行任务节点时索引数据块;
共享内存地址402:共享内存中的起始地址;
地址偏移量403:数据块相对于402起点的偏移量,故数据块在共享内存中的真实地址=402地址起点+403偏移量。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种应用于函数式编程的树状模型任务管理系统,其特征在于包括以树状结构进行函数式编程的函数模型表述,与上述表述对应的任务管理系统,以及用于管理输入输出数据的数据管理系统;表述函数式编程的树状模型被计算机解析后,由任务管理系统依据树状结构创建任务节点,对任务节点进行运行时管理,任务运行时所需要读取的数据以及输出的数据,由数据管理系统统一分配及管理;所述函数式编程中函数的树状表述将函数式编程中的函数输入输出连接关系以树状模型描述,该描述记载在可被计算机理解的文件中,由所述的树状模型任务管理模块进行处理。
2.根据权利要求1所述的一种应用于函数式编程的树状模型任务管理系统,其特征在于所述树状模型任务管理模块依据树状表述创建对应的任务节点,任务节点之间具有与数状模型描述一致的树状结构;在树状的任务节点结构中,树的父子关系表示了函数的输入输出依赖关系,即树结构中子节点任务的输出作为父节点任务的输入;在树状的任务节点结构中,非直系亲缘关系的节点不具有依赖关系,可进行并行化计算。
3.根据权利要求2所述的一种应用于函数式编程的树状模型任务管理系统,其特征在于所有任务节点满足输出只依赖于输入,与所有外部状态无关;所有任务节点满足运算过程只产生输出,不修改任何数据。
4.根据权利要求1所述的一种应用于函数式编程的树状模型任务管理系统,其特征在于所述数据管理模块在任务节点执行计算时,为任务节点提供输入数据的实体,供任务节点进行读取;当任务节点产生输出时,创建输出数据所需要的内存空间,用以记录任务节点输出结果;数据一旦生成,保持只读性,不再进行任何数据修改;即任务节点除了产生输出数据外,不对任何数据进行修改。
5.根据权利要求4所述的一种应用于函数式编程的树状模型任务管理系统,其特征在于对于不再需要的数据,由所述数据管理模块进行销毁;同一份数据可同时被多个任务节点读取。
6.根据权利要求1所述的一种应用于函数式编程的树状模型任务管理系统,其特征在于所述函数式编程中函数的树状表述中,g(f(x))的函数连接关系,g函数在模型中作为父节点,f函数在模型中作为子节点,意为子节点函数的输出作为父节点函数的输入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810193379.0A CN108509284A (zh) | 2018-03-08 | 2018-03-08 | 一种应用于函数式编程的树状模型任务管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810193379.0A CN108509284A (zh) | 2018-03-08 | 2018-03-08 | 一种应用于函数式编程的树状模型任务管理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108509284A true CN108509284A (zh) | 2018-09-07 |
Family
ID=63376308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810193379.0A Pending CN108509284A (zh) | 2018-03-08 | 2018-03-08 | 一种应用于函数式编程的树状模型任务管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108509284A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109345443A (zh) * | 2018-10-19 | 2019-02-15 | 珠海金山网络游戏科技有限公司 | 数据处理方法和装置、计算设备及存储介质 |
CN109697663A (zh) * | 2018-11-07 | 2019-04-30 | 中国银行股份有限公司 | 批量交易的方法及装置、存储介质及电子设备 |
CN110442434A (zh) * | 2019-07-05 | 2019-11-12 | 中国平安财产保险股份有限公司 | 一种任务调度方法、装置、存储介质和服务器 |
CN111241675A (zh) * | 2020-01-08 | 2020-06-05 | 北京仿真中心 | 基于数据驱动的复杂产品协同设计管理方法和系统 |
WO2022135547A1 (zh) * | 2020-12-25 | 2022-06-30 | 第四范式(北京)技术有限公司 | 业务运行方法、装置、电子设备和计算机存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR0304773A (pt) * | 2002-10-30 | 2004-08-31 | Palo Alto Res Ct Inc | Sistemas reconfiguráveis de planejamento e programação contornando recursos fora de linha |
CN102253837A (zh) * | 2011-07-25 | 2011-11-23 | 深圳市极限网络科技有限公司 | 基于对象树的软件框架设计技术 |
CN103197929A (zh) * | 2013-03-25 | 2013-07-10 | 中国科学院软件研究所 | 一种面向儿童的图形化编程系统和方法 |
CN103645986A (zh) * | 2013-11-29 | 2014-03-19 | 北京广利核系统工程有限公司 | 一种编译器的可视化语法树的生成方法和重构方法 |
US20140104887A1 (en) * | 2012-10-12 | 2014-04-17 | Power Integrations, Inc. | Programming of an integrated circuit on a multi-function terminal |
CN105808260A (zh) * | 2016-03-10 | 2016-07-27 | 成都神秘方块科技有限公司 | 一种逻辑节点树状可视化编辑游戏引擎 |
-
2018
- 2018-03-08 CN CN201810193379.0A patent/CN108509284A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR0304773A (pt) * | 2002-10-30 | 2004-08-31 | Palo Alto Res Ct Inc | Sistemas reconfiguráveis de planejamento e programação contornando recursos fora de linha |
CN102253837A (zh) * | 2011-07-25 | 2011-11-23 | 深圳市极限网络科技有限公司 | 基于对象树的软件框架设计技术 |
US20140104887A1 (en) * | 2012-10-12 | 2014-04-17 | Power Integrations, Inc. | Programming of an integrated circuit on a multi-function terminal |
CN103197929A (zh) * | 2013-03-25 | 2013-07-10 | 中国科学院软件研究所 | 一种面向儿童的图形化编程系统和方法 |
CN103645986A (zh) * | 2013-11-29 | 2014-03-19 | 北京广利核系统工程有限公司 | 一种编译器的可视化语法树的生成方法和重构方法 |
CN105808260A (zh) * | 2016-03-10 | 2016-07-27 | 成都神秘方块科技有限公司 | 一种逻辑节点树状可视化编辑游戏引擎 |
Non-Patent Citations (1)
Title |
---|
胡志英,: "浅谈基于函数式的编程范式", 《数字技术与应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109345443A (zh) * | 2018-10-19 | 2019-02-15 | 珠海金山网络游戏科技有限公司 | 数据处理方法和装置、计算设备及存储介质 |
CN109697663A (zh) * | 2018-11-07 | 2019-04-30 | 中国银行股份有限公司 | 批量交易的方法及装置、存储介质及电子设备 |
CN110442434A (zh) * | 2019-07-05 | 2019-11-12 | 中国平安财产保险股份有限公司 | 一种任务调度方法、装置、存储介质和服务器 |
CN111241675A (zh) * | 2020-01-08 | 2020-06-05 | 北京仿真中心 | 基于数据驱动的复杂产品协同设计管理方法和系统 |
CN111241675B (zh) * | 2020-01-08 | 2024-01-26 | 北京仿真中心 | 基于数据驱动的复杂产品协同设计管理方法和系统 |
WO2022135547A1 (zh) * | 2020-12-25 | 2022-06-30 | 第四范式(北京)技术有限公司 | 业务运行方法、装置、电子设备和计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509284A (zh) | 一种应用于函数式编程的树状模型任务管理系统 | |
US8209703B2 (en) | Apparatus and method for dataflow execution in a distributed environment using directed acyclic graph and prioritization of sub-dataflow tasks | |
TWI713846B (zh) | 領域模組運算單元,含有一企業之一模型之系統,單板運算單元,運算單元之網格,提供傳播可追溯性之方法,及非暫時性電腦程式產品 | |
US11099528B2 (en) | Process optimization by grouping mixed integer nonlinear programming constraints | |
CN104281906A (zh) | 一种业务流程中的流程引擎实现方法及其流程引擎系统 | |
CN107403272B (zh) | 支持多级平台的产品配置方法及系统 | |
Alsayegh et al. | Hybrid meta-heuristic methods for the multi-resource leveling problem with activity splitting | |
Xie et al. | Loosely coupled cloud robotic framework for QoS-driven resource allocation-based Web service composition | |
Park et al. | Liveness-enforcing supervision for resource allocation systems with uncontrollable behavior and forbidden states | |
Peng et al. | A constraint programming method for advanced planning and scheduling system with multilevel structured products | |
Sung et al. | A projection‐based method for production planning of multiproduct facilities | |
CN107122952B (zh) | 基于规则的流程调度方法及系统 | |
CN113822585A (zh) | 一种智能冶炼工厂信息化管理系统 | |
Dridi et al. | A multiobjective hybrid ant colony optimization approach applied to the assignment and scheduling problem | |
CN111858739A (zh) | 一种基于Mapreduce的数据汇聚方法及系统 | |
CN114860266A (zh) | 一种多方安全计算模型的部署方法和系统 | |
Franceschini et al. | Decentralized approach for efficient simulation of DEVS models | |
Chechetka et al. | A decentralized variable ordering method for distributed constraint optimization | |
CN105354298A (zh) | 基于Hadoop的大规模社交网络分析方法及其分析平台 | |
Dashora et al. | Deadlock-free scheduling of an automated manufacturing system using an enhanced colored time resource Petri-net model-based evolutionary endosymbiotic learning automata approach | |
Benjaafar | Intelligent simulation for flexible manufacturing systems: An integrated approach | |
Vasyaycheva | To the quiestion of the corporate governance improvement | |
Mehrjoo et al. | Mapreduce based particle swarm optimization for large scale problems | |
Wang et al. | A CTMDP-based exact method for RCPSP with uncertain activity durations and rework | |
Vodyaho et al. | On one approach to the dynamic digital twins models synthesis |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180907 |