CN112328388A - 一种融合多线程及分布式技术的并行计算方法及系统 - Google Patents

一种融合多线程及分布式技术的并行计算方法及系统 Download PDF

Info

Publication number
CN112328388A
CN112328388A CN202010981044.2A CN202010981044A CN112328388A CN 112328388 A CN112328388 A CN 112328388A CN 202010981044 A CN202010981044 A CN 202010981044A CN 112328388 A CN112328388 A CN 112328388A
Authority
CN
China
Prior art keywords
thread
task
configuration information
server
management center
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.)
Granted
Application number
CN202010981044.2A
Other languages
English (en)
Other versions
CN112328388B (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 Zhongshuke Technology Co ltd
Original Assignee
Beijing Zhongshuke 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 Zhongshuke Technology Co ltd filed Critical Beijing Zhongshuke Technology Co ltd
Priority to CN202010981044.2A priority Critical patent/CN112328388B/zh
Publication of CN112328388A publication Critical patent/CN112328388A/zh
Application granted granted Critical
Publication of CN112328388B publication Critical patent/CN112328388B/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本文提供了一种融合多线程及分布式技术的并行计算方法及系统,系统包括:管理中心根据任务发布命令,创建并记录新增任务配置信息;接收并记录主服务器发送的线程配置信息;接收从服务器发送的线程状态,根据线程状态修改从服务器的线程资源信息;主服务器监测并获取管理中心中的新增任务配置信息;从管理中心查询在线从服务器线程资源信息;根据在线从服务器线程资源信息及新增任务配置信息,生成线程配置信息,并将线程配置信息发送至管理中心记录;从服务器监测管理中心中自身从服务器的线程配置信息;根据线程配置信息启动线程处理任务;将线程状态信息发送至管理中心记录。本文能够实现跨服务器的高可用性,提高服务器资源的使用效率。

Description

一种融合多线程及分布式技术的并行计算方法及系统
技术领域
本文涉及并行计算领域,尤其涉及一种融合多线程及分布式技术的并行计算方法及系统。
背景技术
随着摩尔定律走到了尽头,人们已经很难从提高CPU运行频率的方式来提高计算机系统的计算能力。并行计算,是当今世界提高计算机系统计算速度和处理能力的主流方式。目前,并行计算领域最常用的两种并行计算技术就是多线程和分布式。
传统的多线程技术,是建立多线程处理器基础上的。多线程计算能力的提升,主要依赖于服务器CPU个数的增加,或者多核CPU核心数的增加。多线程技术接近硬件层,能最细粒度的控制计算资源的使用,是并行计算的基础。多线程之间的资源调度与通信是基于CPU级别的,因此存在无法跨服务器使用的缺陷。这意味着如果有多台服务器,则无法仅通过多线程技术,把它们整合成为一个整体来使用,这个限制的结果就是:计算机系统的计算能力,无法通过服务器集群进行横向扩展;同时也无法满足,企业中普遍存在的主备、高可用等计算机系统运维需求。
另外一种常用的并行计算技术是分布式计算,例如Hadoop、Spark等,这类技术是建立在分布式文件系统基础上的。所谓的分布式文件系统,就是构建在多台服务器上的一个虚拟的、软件层次的文件系统。分布式文件系统屏蔽了硬件细节,对于上层程序来说,它就像一个普通的文件系统。这种分布式计算技术,能把多台服务器整合成为一台服务器来使用,把多台服务器的硬盘、内存合并成为一块来使用,大大提高了计算能力的横向扩展能力。但为了简化资源调度,这类分布式计算引擎,往往是采用进程级别的粒度来进行的。每个进程都是一个独立的程序,它需要把所有依赖的库包都加载一遍,并且进行资源分配。这类分布式计算引擎存在的问题是,需要搭建庞大复杂的计算集群、任务启动周期长,资源重复加载,造成资源浪费。
企业中如下并行计算需求通过上述两种并行计算方法并不能满足:小计算任务很多,数据量并不太大或者数据是间歇性的,但处理程序必须常驻等待;虽然数据量并不大,但是数据很重要,必须实现高可用;可能会有突发数据量增大的情况,计算能力必须能横向扩展;任务虽然很多,但是数据源并不多,希望能在任务间共享资源连接池;不希望在任务启动过程花费太多的额外开销,启动时间不能太长;需要节约计算资源的使用,降低企业运营成本。
发明内容
现有技术中对于多线程并行计算而言,存在无法通过服务器集群方式进行横向扩展,同时,也无法满足主备计算机系统、高可用计算机系统运维需求。对于分布式并行计算而言,需要搭建复杂的计算集群、任务启动周期长、资源重复加载,存在资源浪费的问题。
为了解决上述技术问题,本文的第一方面提供一种融合多线程及分布式技术的并行计算方法,适用主服务器,所述方法包括:
监测并获取管理中心中的新增任务配置信息;
从管理中心查询在线从服务器线程资源信息;
根据在线从服务器线程资源信息及新增任务配置信息,生成线程配置信息,并将线程配置信息发送至管理中心记录。
本文的进一步实施例中,所述新增任务配置信息包括:任务标识、任务所需线程数、任务业务元数据;
根据在线服务器线程资源信息及新增任务配置信息,生成线程配置信息,包括:
对在线服务器线程资源信息按从多到少的顺序进行排序;
根据任务所需线程数及排序结果,确定线程标识、线程所属任务、线程所属从服务器及任务业务元数据之间的对应关系;
所述线程标识、线程所属任务、线程所属从服务器及任务业务元数据之间的对应关系,构成线程配置信息。
本文的第二方面提供一种融合多线程及分布式技术的并行计算方法,适用于从服务器,所述方法包括:
监测管理中心中自身从服务器的线程配置信息;
根据所述线程配置信息,启动相应线程处理任务;
将线程状态信息发送至管理中心记录。
本文的进一步实施例中,根据所述线程配置信息,启动相应线程处理任务,包括:
根据所述线程配置信息,从线程池中选定线程;
选定的线程通过调用数据源连接池连接数据源,以执行分配的任务。
本文的进一步实施例中,从服务器侧融合多线程及分布式技术的并行计算方法还包括:将任务运行状态信息发送至管理中心记录。
本文的第三方面提供一种融合多线程及分布式技术的并行计算方法,适用于管理中心,所述方法包括:
根据任务发布命令,创建并记录新增任务配置信息;
接收并记录主服务器发送的线程配置信息;
接收从服务器发送的线程状态信息,根据所述线程状态信息修改所述从服务器的线程资源信息。
本文的进一步实施例中,所述记录新增任务配置信息的过程包括:
在任务目录中新增节点;
将所述新增任务配置信息记录于所述新增节点中。
本文的第四方面提供一种融合多线程及分布式技术的并行计算系统,包括:管理中心、主服务器及从服务器;
所述管理中心用于根据任务发布命令,创建并记录新增任务配置信息;接收并记录主服务器发送的线程配置信息;接收从服务器发送的线程状态信息,根据所述线程状态信息修改所述从服务器的线程资源信息;
所述主服务器用于监测并获取管理中心中的新增任务配置信息;从管理中心查询在线从服务器线程资源信息;根据在线从服务器线程资源信息及新增任务配置信息,生成线程配置信息,并将线程配置信息发送至管理中心记录;
所述从服务器用于监测管理中心中自身从服务器的线程配置信息;根据所述线程配置信息,启动相应线程处理任务;将线程状态信息发送至管理中心记录。
本文的进一步实施例中,所述管理中心包括:服务器列表模块、任务列表模块、线程分配模块;
所述服务器列表模块用于存储在线从服务器线程资源信息,根据在线从服务器发送的线程状态信息修改其线程资源信息;
所述任务列表模块用于创建并记录新增任务配置信息;
所述线程分配模块用于记录各从服务器的线程配置信息。
本文的进一步实施例中,所述管理中心还包括:主服务器选取模块和/或任务运行状态记录模块;
所述主服务器选取模块用于从在线服务器中选定主服务器,设置剩余在线服务器为从服务器;
所述任务运行状态记录模块用于记录任务运行状态。
本文提供的并行计算方法及系统融合了多线程及分布式两种计算方式的优点,通过由管理中心根据任务发布命令,创建并记录新增任务配置信息;接收并记录主服务器发送的线程配置信息;接收从服务器发送的线程状态信息,根据所述线程状态信息修改所述从服务器的线程资源信息;由主服务器监测并获取管理中心中的新增任务配置信息;从管理中心查询在线从服务器线程资源信息;根据在线从服务器线程资源信息及新增任务配置信息,生成线程配置信息,并将线程配置信息发送至管理中心记录;由从服务器用于监测管理中心中自身从服务器的线程配置信息;根据所述线程配置信息,启动相应线程处理任务;将线程状态信息发送至管理中心记录,能够保证系统不间断的提供并行服务,实现跨服务器的高可用性,提高服务器资源的使用效率,降低使用成本,且本文能够在避免资源浪费的情况下,适用于小批量数据处理场景。
为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本文实施例融合多线程及分布式技术的并行计算系统的结构图;
图2示出了本文实施例融合多线程及分布式技术的并行计算系统交互过程的流程图;
图3示出了本文实施例管理中心目录结构示意图;
图4示出了本文实施例从主服务器侧描述的融合多线程及分布式技术的并行计算方法的流程图;
图5示出了本文实施例从服务器侧描述的融合多线程及分布式技术的并行计算方法的流程图;
图6示出了本文实施例从管理中心描述的融合多线程及分布式技术的并行计算方法的流程图;
图7示出了本文一具体实施例融合多线程及分布式技术的并行计算系统交互过程的流程图;
图8示出了本文实施例计算机设备的结构图。
附图符号说明:
100、管理中心;
200、主服务器;
300、从服务器;
110、服务器列表模块;
120、任务列表模块;
130、线程分配模块;
140、主服务器选取模块;
150、任务运行状态记录模块;
802、计算机设备;
804、处理器;
806、存储器;
808、驱动机构;
810、输入/输出模块;
812、输入设备;
814、输出设备;
816、呈现设备;
818、图形用户接口;
820、网络接口;
822、通信链路;
824、通信总线。
具体实施方式
下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
本文一实施例中,提供一种融合多线程及分布式技术的并行计算系统,用于解决现有技术中对于多线程并行计算而言,存在无法通过服务器集群方式进行横向扩展,同时,也无法满足主备计算机系统、高可用计算机系统运维需求。对于分布式并行计算而言,需要搭建复杂的计算集群、任务启动周期长、资源重复加载,存在资源浪费的问题。
具体的,如图1及图2所示,融合多线程及分布式技术的并行计算系统包括:管理中心100、主服务器200及从服务器300。
管理中心100用于根据任务发布命令,创建并记录新增任务配置信息;接收并记录主服务器200发送的线程配置信息;接收从服务器300发送线程状态信息,根据所述线程状态信息修改从服务器线程资源信息。
主服务器200用于为任务分配线程,同一任务的多个线程会被分配到不同的从服务器上,具体的,分配过程包括:监测并获取管理中心100中新增任务配置信息;从管理中心100查询在线从服务器线程资源信息;根据在线从服务器线程资源信息及新增任务配置信息,生成线程配置信息,并将线程配置信息发送至管理中心记录。
从服务器300用于监测管理中心中自身从服务器的线程配置信息;根据线程配置信息启动线程处理任务;将线程状态信息及任务运行状态信息发送至管理中心。
本文所述的管理中心100为服务器间协调和通信的主要途径,可以为数据库,还可以为计算机设备,用于管理任务配置信息、线程配置信息及线程资源信息。主服务器及从服务器可以为计算机设备或专用服务器,其内安装有管理中心客户端,通过管理中心客户端使得主从服务器访问管理中心,监测相应数据变化(主服务器监测新增任务配置信息变化,从服务器监测自身服务器的线程配置信息)。主服务器可由管理中心从在线服务器中动态选取,具体选取过程参见后续实施例,此处不再详述。
具体的,任务发布命令可由用户点击任务监控管理页面中任务启动按钮的方式发出,或由定时程序自动触发任务发布命令,本文对此不作限定。
任务配置信息用于表示任务的相关信息,至少包括:任务标识(例如任务ID,由数字、字符、字母、特殊符号等组成)、任务所需线程数、任务业务元数据。任务业务元数据用于指示线程需要执行的处理内容,具体的,可在从服务器中预先安装任务执行程序,服务器中的任务执行程序根据任务业务元数据可以从数据库中获取需要执行的处理内容。
从服务器线程状态信息包括占用、释放、故障等。从服务器线程资源信息包括:当前线程数(activeCount)、可用线程数(availableSize)、核心线程数(corePoolSize)、服务器IP地址(ip)、最大线程数(maxPoolSize)、在线状态(online)、服务器标识(serverId)、服务器启动时间(startTime)。管理中心中最初的服务器线程资源信息由服务器启动时发送至管理中心记录。
线程配置信息包括:线程标识(例如线程ID)、任务标识、任务业务元数据。从服务器根据线程配置信息启动相应线程处理任务,包括:根据所述线程配置信息,从线程池中选定线程;选定的线程通过调用数据源连接池连接数据源(即数据库),以执行分配的任务。线程池中记录有可用线程,数据源连接池为数据源的连接接口,同一服务器中各线程共享数据源连接池。通过数据眼连接池连接数据源的方式与每个线程单独创建连接池的方案相比,不仅没有降低数据源的访问速度,反而可以更高效的创建数据源连接,提高执行效率,降低资源的浪费。
本实施例能够保证系统不间断的提供并行服务,实现跨服务器的高可用性,提高服务器资源的使用效率,降低使用成本,且本文能够在避免资源浪费的情况下,适用于小批量数据处理场景。
本文一实施例中,为了避免出现信息混乱,管理中心采用分区管理的方式管理信息,具体的,如图2所示,管理中心100包括:服务器列表模块110(servers)、任务列表模块120(tasks)、线程分配模块130(workers)。管理中心中的各模块可以为存储目录,用于存储信息。
服务器列表模块110用于存储在线从服务器线程资源信息,根据在线从服务器发送的线程状态信息(包括启动、停止等)修改其线程资源信息。每台在线服务器都有类似“1:11”这样格式唯一的服务器标识,服务器标识的命名规则如下“服务器分组编号:服务器编号”。当服务器启动成功后,就会在服务器列表模块110目录下创建一条以服务器编号命名的记录,该记录的内容为其包含的线程资源信息,具体的,包括:当前线程数、可用线程数、核心线程数、服务器IP地址、最大线程数、在线状态、服务器编号、服务器启动时间。服务器列表模块110目录本身可以设置minOnline属性,minOnline属性指的是:在线从服务器数到达minOnline数值或以上的时候,主服务器可以尝试自动重启因故障停止的任务。
任务列表模块120用于创建并记录新增任务配置信息。具体的,任务列表模块120根据接收到的发布任务命令,新增节点表示要启动某个任务,删除节点表示要停止某个任务。任务节点保存有任务配置信息。
线程分配模块130用于记录各从服务器的线程配置信息。因为会有多台从服务器,每个线程只会隶属其中一台从服务器,所以线程分配模块中首先会创建以从服务器编号命名的子目录,然后在孙目录中,保存线程的信息。线程名的命名规则是“任务ID-服务器编号-线程唯一码”,例如:179-1:12-9072aee7。每个线程目录中,还会有一条名为heartbeat的记录,值为精确到秒的时间,该记录代表每个线程最近心跳时间。主服务器会实时监测该记录,若该记录显示超过1分钟没有心跳,则认为该线程已经死掉,然后通知该线程所在服务器清理该线程,并重新进入线程分配流程。
进一步实施例中,为了保证主服务器发生宕机时,使得并行处理系统仍能提供并行服务,管理中心100还包括:主服务器选取模块140。
主服务器选取模块140(leader)用于从在线服务器中选定主服务器,设置剩余在线服务器为从服务器。具体的,每台服务器在启动成功后,都会在主服务器选取模块140中创建一条记录,用于记录服务器启动成功时间信息(具体可以为时刻),主服务器选取模块140创建的记录按序进行存储,主服务器可采用如下方式选取产生:按照服务器启动成功的时间顺序,将排在第一位的服务器选取为主服务器(Master),当主服务器发生宕机或出现某些故障时,自动删除主服务器的记录,此时,重新确定主服务器,将排名第二的记录对应的服务器作为主服务器。具体实施时,还可采用随机选取的方式选择主服务器,例如利用随机种子随机选择主服务器,本文对此不作具体限定。
进一步实施例中,为了便于用户通过管理中心查询任务运行状态,管理中心100还包括:任务运行状态记录模块150(task-status)。任务运行状态记录模块150用于记录任务运行状态。具体的,管理中心接收到新增任务时,会在任务运行状态记录模块150中创建名为任务ID的子目录,并在该子目录下存储任务运行状态,包括:当前并行数(currentParallel)、任务启动时间(since)、任务当状态(status)。任务运行状态记录模块150中还会创建名为assign的子目录,assign目录下保存了目前任务已经分配的线程。
本文一具体实施例中,管理中心中各模块存储信息的格式如图3所示,各模块存储的信息以目录的形式进行展示。
本文一实施例中,如图4所示,图4示出了本文实施例从主服务器侧描述的融合多线程及分布式技术的并行计算方法的流程图,具体的,主服务器侧描述的融合多线程及分布式技术的并行计算方法包括:
步骤410,监测并获取管理中心中的新增任务配置信息;
步骤420,从管理中心查询在线从服务器线程资源信息;
步骤430,根据在线从服务器线程资源信息及新增任务配置信息,生成线程配置信息,并将线程配置信息发送至管理中心记录。
详细的说,新增任务配置信息包括:任务标识、任务所需线程数、任务业务元数据。
为了避免出现将任务分配给单一服务器,当服务器宕机时无法完成任务处理的问题,上述步骤430根据在线从服务器线程资源信息及新增任务配置信息,生成线程配置信息,包括:
对在线服务器线程资源信息按从多到少的顺序进行排序;
根据任务所需线程数及排序结果,确定线程标识、线程所属任务、线程所属从服务器及任务业务元数据之间的对应关系;
所述线程标识、线程所属任务、线程所属从服务器及任务业务元数据之间的对应关系,构成线程配置信息。
具体实施时,服务器线程资源信息越多,分配的线程越多,但不会将任务分配给一个服务器。服务器线程资源信息的多少用可用线程确定,可用线程越多,对应的服务器线程资源信息也越多,反之,可用线程越少,对应的服务器线程资源信息也越少。
本文一实施例中,如图5所示,图5示出了本文实施例从服务器侧描述的融合多线程及分布式技术的并行计算方法的流程图,具体的,从服务器侧描述的融合多线程及分布式技术的并行计算方法包括:
步骤510,监测管理中心中自身从服务器的线程配置信息;
步骤520,根据所述线程配置信息,启动相应线程处理任务;
步骤530,将线程状态信息发送至管理中心记录。
本文的一实施例中,上述步骤520根据所述线程配置信息,启动相应线程处理任务,包括:
根据所述线程配置信息,从线程池中选定线程;
选定的线程通过调用数据源连接池连接数据源,以执行分配的任务。
本文一实施例中,从服务器侧描述的融合多线程及分布式技术的并行计算方法还包括:将任务运行状态发送至管理中心记录。
本文一实施例中,如图6所示,图6示出了本文实施例从管理中心描述的融合多线程及分布式技术的并行计算方法的流程图,具体的,从管理中心描述的融合多线程及分布式技术的并行计算方法包括:
步骤610,根据任务发布命令,创建并记录新增任务配置信息;
步骤620,接收并记录主服务器发送的线程配置信息;
步骤630,接收从服务器发送的线程状态信息,根据所述线程状态信息修改所述从服务器的线程资源信息。
详细的说,步骤610记录新增任务配置信息的过程包括:在任务目录中新增节点;将新增任务配置信息记录于所述新增节点中。
本文所述的主服务器、从服务器及管理中心配合使用,能够保证系统不间断的提供并行服务,实现跨服务器的高可用性,提高服务器资源的使用效率,降低使用成本,且本文能够在避免资源浪费的情况下,适用于小批量数据处理场景。
为了更清楚说明本文技术方案,下面以一具体实施例进行详细说明,如图7所示,并行计算方法包括:
步骤701,服务器启动成功后,在管理中心的leader中创建一条记录,记录服务器启动成功时间,leader根据记录按时间先后顺序将最早创建记录对应的服务器设置为主服务器,其余服务器成为从服务器;
同时服务器还会将其线程资源信息发送至管理中心中的servers中;
步骤702,管理中心中的tasks接收到任务发布命令后,在其维护的目录中新增一节点,该节点用于保存任务配置信息;
步骤703,主服务器监测tasks中新增任务配置信息;
步骤704,主服务器监测到新增任务配置信息后,从管理中心的servers中查询从服务器线程资源信息;
步骤705,主服务器根据新增任务配置信息及从服务器线程资源信息生成从服务器的线程配置信息,将线程配置信息发送至管理中心;
步骤706,管理中心中的workers记录从服务器线程配置信息;
步骤707,从服务器监测管理中心中自身的线程配置信息,根据线程配置信息启动相应线程;
步骤708,从服务器于线程启动后,发送线程状态信息至管理中心;
步骤709,管理中心中的servers根据线程状态信息更新线程资源信息;
步骤710,从服务器还发送任务运行状态至管理中心;
步骤711,管理中心中的task-status记录任务运行状态。
本文提供的融合多线程及分布式技术的并行计算方法及系统,基于管理中心模式的线程级别分布式计算调度机制,结合了传统分布式计算和多线程计算的优点。充分的利用了计算机资源,解决了企业在小批量数据数量场景下没有合适的分布式计算引擎,能满足其高效、高可用、低成本综合考量的痛点。
本文所述的主服务器及从服务器可被称为计算机设备,管理中心可以以软件的形式实现,安装于计算机设备内,如图8所示,计算机设备802包括一个或多个处理器804,诸如一个或多个中央处理单元(CPU),每个处理单元实现一个或多个硬件线程。计算机设备802还可以包括任何存储器806,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器806可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备802的固定或可移除部件。在一种情况下,当处理器804执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备802可以执行相关联指令的任一操作。计算机设备802还包括用于与任何存储器交互的一个或多个驱动机构808,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备802还可以包括输入/输出模块810(I/O),其用于接收各种输入(经由输入设备812)和用于提供各种输出(经由输出设备814))。一个具体输出机构可以包括呈现设备816和相关联的图形用户接口818(GUI)。在其他实施例中,还可以不包括输入/输出模块810(I/O)、输入设备812以及输出设备814,仅作为网络中的一台计算机设备。计算机设备802还可以包括一个或多个网络接口820,其用于经由一个或多个通信链路822与其他设备交换数据。一个或多个通信总线824将上文所描述的部件耦合在一起。
通信链路822可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路822可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如图4至图6任一图所示的方法。
本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如如图4至图6任一图所示的方法。
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。

Claims (10)

1.一种融合多线程及分布式技术的并行计算方法,其特征在于,适用主服务器,所述方法包括:
监测并获取管理中心中的新增任务配置信息;
从管理中心查询在线从服务器线程资源信息;
根据在线从服务器线程资源信息及新增任务配置信息,生成线程配置信息,并将线程配置信息发送至管理中心记录。
2.如权利要求1所述的方法,其特征在于,所述新增任务配置信息包括:任务标识、任务所需线程数、任务业务元数据;
根据在线服务器线程资源信息及新增任务配置信息,生成线程配置信息,包括:
对在线服务器线程资源信息按从多到少的顺序进行排序;
根据任务所需线程数及排序结果,确定线程标识、线程所属任务、线程所属从服务器及任务业务元数据之间的对应关系;
所述线程标识、线程所属任务、线程所属从服务器及任务业务元数据之间的对应关系,构成线程配置信息。
3.一种融合多线程及分布式技术的并行计算方法,其特征在于,适用于从服务器,所述方法包括:
监测管理中心中自身从服务器的线程配置信息;
根据所述线程配置信息,启动相应线程处理任务;
将线程状态信息发送至管理中心记录。
4.如权利要求3所述的方法,其特征在于,根据所述线程配置信息,启动相应线程处理任务,包括:
根据所述线程配置信息,从线程池中选定线程;
选定的线程通过调用数据源连接池连接数据源,以执行分配的任务。
5.如权利要求3所述的方法,其特征在于,还包括:将任务运行状态信息发送至管理中心记录。
6.一种融合多线程及分布式技术的并行计算方法,其特征在于,适用于管理中心,所述方法包括:
根据任务发布命令,创建并记录新增任务配置信息;
接收并记录主服务器发送的线程配置信息;
接收从服务器发送的线程状态信息,根据所述线程状态信息修改所述从服务器的线程资源信息。
7.如权利要求6所述的方法,其特征在于,所述记录新增任务配置信息的过程包括:
在任务目录中新增节点;
将新增任务配置信息记录于所述新增节点中。
8.一种融合多线程及分布式技术的并行计算系统,其特征在于,包括:管理中心、主服务器及从服务器;
所述管理中心用于根据任务发布命令,创建并记录新增任务配置信息;接收并记录主服务器发送的线程配置信息;接收从服务器发送的线程状态信息,根据所述线程状态信息修改所述从服务器的线程资源信息;
所述主服务器用于监测并获取管理中心中的新增任务配置信息;从管理中心查询在线从服务器线程资源信息;根据在线从服务器线程资源信息及新增任务配置信息,生成线程配置信息,并将线程配置信息发送至管理中心记录;
所述从服务器用于监测管理中心中自身从服务器的线程配置信息;根据所述线程配置信息,启动相应线程处理任务;将线程状态信息发送至管理中心记录。
9.如权利要求8所述的系统,其特征在于,所述管理中心包括:服务器列表模块、任务列表模块、线程分配模块;
所述服务器列表模块用于存储在线从服务器线程资源信息,根据在线从服务器发送的线程状态信息修改其线程资源信息;
所述任务列表模块用于创建并记录新增任务配置信息;
所述线程分配模块用于记录各从服务器的线程配置信息。
10.如权利要求9所述的系统,其特征在于,所述管理中心还包括:主服务器选取模块和/或任务运行状态记录模块;
所述主服务器选取模块用于从在线服务器中选定主服务器,设置剩余在线服务器为从服务器;
所述任务运行状态记录模块用于记录任务运行状态。
CN202010981044.2A 2020-09-17 2020-09-17 一种融合多线程及分布式技术的并行计算方法及系统 Active CN112328388B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010981044.2A CN112328388B (zh) 2020-09-17 2020-09-17 一种融合多线程及分布式技术的并行计算方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010981044.2A CN112328388B (zh) 2020-09-17 2020-09-17 一种融合多线程及分布式技术的并行计算方法及系统

Publications (2)

Publication Number Publication Date
CN112328388A true CN112328388A (zh) 2021-02-05
CN112328388B CN112328388B (zh) 2022-03-08

Family

ID=74303581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010981044.2A Active CN112328388B (zh) 2020-09-17 2020-09-17 一种融合多线程及分布式技术的并行计算方法及系统

Country Status (1)

Country Link
CN (1) CN112328388B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360310A (zh) * 2011-09-28 2012-02-22 中国电子科技集团公司第二十八研究所 一种分布式系统环境下的多任务进程监视方法和监视系统
CN102609316A (zh) * 2012-02-07 2012-07-25 中山爱科数字科技股份有限公司 一种网络计算资源的管理系统及方法
CN103428217A (zh) * 2013-08-19 2013-12-04 中国航空动力机械研究所 分布式并行计算的作业分配方法及分配系统
CN108132837A (zh) * 2018-01-02 2018-06-08 中国工商银行股份有限公司 一种分布式集群调度系统及方法
CN108197912A (zh) * 2016-12-08 2018-06-22 阿里巴巴集团控股有限公司 一种业务处理系统及方法
CN108733461A (zh) * 2017-04-18 2018-11-02 北京京东尚科信息技术有限公司 分布式任务调度方法和装置
CN108776934A (zh) * 2018-05-15 2018-11-09 中国平安人寿保险股份有限公司 分布式数据计算方法、装置、计算机设备及可读存储介质
CN108932157A (zh) * 2017-05-22 2018-12-04 北京京东尚科信息技术有限公司 分布式处理任务的方法、系统、电子设备和可读介质
CN109284193A (zh) * 2018-09-06 2019-01-29 平安科技(深圳)有限公司 一种基于多线程的分布式数据处理方法及服务器
CN109753354A (zh) * 2018-11-26 2019-05-14 平安科技(深圳)有限公司 基于多线程的流媒体任务的处理方法、装置及计算机设备
CN111124651A (zh) * 2019-12-27 2020-05-08 中通服公众信息产业股份有限公司 一种分布式环境多线程并发调度的方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360310A (zh) * 2011-09-28 2012-02-22 中国电子科技集团公司第二十八研究所 一种分布式系统环境下的多任务进程监视方法和监视系统
CN102609316A (zh) * 2012-02-07 2012-07-25 中山爱科数字科技股份有限公司 一种网络计算资源的管理系统及方法
CN103428217A (zh) * 2013-08-19 2013-12-04 中国航空动力机械研究所 分布式并行计算的作业分配方法及分配系统
CN108197912A (zh) * 2016-12-08 2018-06-22 阿里巴巴集团控股有限公司 一种业务处理系统及方法
CN108733461A (zh) * 2017-04-18 2018-11-02 北京京东尚科信息技术有限公司 分布式任务调度方法和装置
CN108932157A (zh) * 2017-05-22 2018-12-04 北京京东尚科信息技术有限公司 分布式处理任务的方法、系统、电子设备和可读介质
CN108132837A (zh) * 2018-01-02 2018-06-08 中国工商银行股份有限公司 一种分布式集群调度系统及方法
CN108776934A (zh) * 2018-05-15 2018-11-09 中国平安人寿保险股份有限公司 分布式数据计算方法、装置、计算机设备及可读存储介质
CN109284193A (zh) * 2018-09-06 2019-01-29 平安科技(深圳)有限公司 一种基于多线程的分布式数据处理方法及服务器
CN109753354A (zh) * 2018-11-26 2019-05-14 平安科技(深圳)有限公司 基于多线程的流媒体任务的处理方法、装置及计算机设备
CN111124651A (zh) * 2019-12-27 2020-05-08 中通服公众信息产业股份有限公司 一种分布式环境多线程并发调度的方法

Also Published As

Publication number Publication date
CN112328388B (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
US11425194B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US9280390B2 (en) Dynamic scaling of a cluster of computing nodes
US10846140B2 (en) Off-site backup of workloads for multi-tenant cloud computing system
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
JP5575641B2 (ja) 共有データセンタ災害復旧システム及び方法
WO2020147330A1 (zh) 一种数据流处理方法及系统
CN106919445B (zh) 一种在集群中并行调度容器的方法和装置
US7861246B2 (en) Job-centric scheduling in a grid environment
CN103414712B (zh) 一种分布式虚拟桌面管理系统和方法
JP2004302937A (ja) プログラム配置方法及びその実施システム並びにその処理プログラム
CN102246152A (zh) 保存程序执行状态
EP3442201B1 (en) Cloud platform construction method and cloud platform
CN111343219B (zh) 计算服务云平台
CN110750331B (zh) 一种针对教育桌面云应用的容器集群调度方法及平台
US10761869B2 (en) Cloud platform construction method and cloud platform storing image files in storage backend cluster according to image file type
CN111427675A (zh) 一种数据处理方法、装置以及计算机可读存储介质
CN112231108A (zh) 任务处理方法、装置、计算机可读存储介质及服务器
CN111427670A (zh) 任务调度方法和系统
CN111459639A (zh) 一种支持全球多机房部署的分布式任务管理平台及方法
CN112363820A (zh) 基于异构硬件的统一资源池化容器调度引擎及其调度方法
CN112328388B (zh) 一种融合多线程及分布式技术的并行计算方法及系统
CN116881012A (zh) 一种容器应用垂直扩容方法、装置、设备及可读存储介质
CN109002263B (zh) 存储容量的调整方法及装置
CN108121585A (zh) 基于云模式下的资源分配装置及方法
CN114296891A (zh) 任务的调度方法、系统、计算设备、存储介质及程序产品

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