CN107678752B - 一种面向异构集群的任务处理方法及装置 - Google Patents

一种面向异构集群的任务处理方法及装置 Download PDF

Info

Publication number
CN107678752B
CN107678752B CN201710772904.XA CN201710772904A CN107678752B CN 107678752 B CN107678752 B CN 107678752B CN 201710772904 A CN201710772904 A CN 201710772904A CN 107678752 B CN107678752 B CN 107678752B
Authority
CN
China
Prior art keywords
heterogeneous
task
scheduled
execution environment
equipment
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
CN201710772904.XA
Other languages
English (en)
Other versions
CN107678752A (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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201710772904.XA priority Critical patent/CN107678752B/zh
Publication of CN107678752A publication Critical patent/CN107678752A/zh
Priority to US16/116,624 priority patent/US10977076B2/en
Application granted granted Critical
Publication of CN107678752B publication Critical patent/CN107678752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种面向异构集群的任务处理方法和装置,所述方法包括:接收任务请求及基本执行环境;根据所述任务请求调度异构设备;将所述基本执行环境编译为所调度的异构设备对应的执行环境,并部署到所调度的异构设备上;使所调度的异构设备执行所述任务请求。只需要用户针对任务提供基本执行环境,而不需要用户针对每一类型的硬件平台分别编写一版执行环境,实现了异构设备代码的快速开发,降低了开发维护成本。

Description

一种面向异构集群的任务处理方法及装置
【技术领域】
本发明涉及计算机应用技术,特别涉及一种面向异构集群的任务处理方法及装置。
【背景技术】
随着大数据及深度学习技术的发展,通过深度学习的方法对海量数据进行训练学习,最终学习出一套准确的深度模型的方法越来越被各科技公司重视。更加复杂且更加强大的深度模型能深刻揭示海量数据里所承载的复杂而丰富的信息,并对未来或未知事件做更精准的预测。深度学习应用包括语音识别、图像识别、自然语言处理、搜索广告CTR预估等。由于深度学习应用通常依赖巨大的计算和通信,使用CPU+异构加速器(GPU、FPGA等)的异构集群的方式来进行训练和上线已经成为支撑深度学习应用的主流方式。
由于针对异构集群的开发需要用户对硬件架构和特定的编程语言(如CUDA、OPENCL、MPI)有一定的掌握。当前,如何在异构集群上高效地开发和部署深度学习应用已经成为推广和加速深度学习在各个领域使用的一项重要挑战。
当前的解决方案主要是针对异构集群的每一种硬件(GPU、FPGA)开发一个特定版本,然后再匹配相应的硬件进行使用。但该方案存在以下几个方面的问题:
1、开发成本巨大:为了编写硬件设备程序,项目开发人员需要学习一定的硬件知识,不便于软件的快速迭代。
2、维护成本巨大:由于针对每一个硬件平台有一个版本的代码,需要维护统一功能的多份代码。
【发明内容】
本申请的多个方面提供了一种面向异构集群的任务处理方法及装置,能够降低开发维护成本。
本申请的一方面,提供一种面向异构集群的任务处理方法,包括:
接收任务请求及基本执行环境;
根据所述任务请求调度异构设备;
将所述基本执行环境编译为所调度的异构设备对应的执行环境,并部署到所调度的异构设备上;组建深度学习网络;
使所调度的异构设备执行所述任务请求,对所述深度学习网络进行训练。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述基本执行环境基于预设的基本硬件设备类型的异构高性能库构建。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述任务请求包括:所述基本执行环境的标识、任务的配置信息、任务的数据信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述任务请求调度异构设备包括:
根据所述任务请求中的任务的数据信息及异构集群可用资源额度,为所述任务请求调度异构设备。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述将所述基本执行环境编译为所调度的异构设备对应的执行环境包括:
根据为所述任务请求调度的异构设备的类型,将所述基本硬件设备类型的异构高性能库切换为所调度的异构设备类型对应的异构高性能库,生成所调度的异构设备对应的执行环境。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述使所调度的异构设备执行所述任务请求包括:
向所调度的异构设备发送包括所述任务的数据信息的任务指令,以使所调度的异构设备根据任务指令进行分布式计算。
本申请的另一方面,提供一种面向异构集群的任务处理装置,包括:
接收模块,用于接收任务请求及基本执行环境;
调度模块,用于根据所述任务请求调度异构设备;
部署模块,用于将所述基本执行环境编译为所调度的异构设备对应的执行环境,并部署到所调度的异构设备上;组建深度学习网络;
执行模块,用于触发所调度的异构设备执行所述任务请求,对所述深度学习网络进行训练。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述基本执行环境基于预设的基本硬件设备类型的异构高性能库构建。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述任务请求包括:所述基本执行环境的标识、任务的配置信息、任务的数据信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述调度模块具体用于:
根据所述任务请求中任务的数据信息及异构集群可用资源额度,为所述任务请求调度异构设备。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述部署模块具体用于:
根据为所述任务请求调度的异构设备的类型,将所述基本硬件设备类型的异构高性能库切换为所调度的异构设备类型对应的异构高性能库,生成所调度的异构设备对应的执行环境。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述执行模块具体用于:
向所调度的异构设备发送包括所述任务的数据信息的任务指令,以使所调度的异构设备根据任务指令进行分布式计算。
本发明的另一方面,提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
本发明的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
基于上述介绍可以看出,采用本发明所述方案,通过所述基本执行环境编译为所调度的异构设备对应的执行环境,只需要用户针对任务提供基本执行环境,而不需要用户针对每一类型的硬件平台分别编写一版执行环境,实现了异构设备代码的快速开发,降低了开发维护成本。
【附图说明】
图1为本发明所涉及的系统架构示意图;
图2为本发明所述面向异构集群的任务处理方法的流程图;
图3为本发明所述面向异构集群的任务处理装置的结构图;
图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器012的框图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
为了方便对本发明的理解,首先对本发明所涉及的系统架构进行描述。如图1中所示,本发明提供的系统主要包括:用户端设备、异构集群调度服务器以及异构集群。在本发明实施例中,诸如开发者等类型的用户可以使用用户端设备实现任务开发,该任务最终由异构集群中的计算节点执行。异构集群调度服务器在本发明实施例中主要用于实现两方面的作用:其一,基于来自用户端设备的任务请求实现对异构集群的调度;其二,实现用户基于基本执行环境开发的任务转换至基于异构设备执行环境下的任务。
其中,异构集群中的计算节点负责执行被分配的任务;计算节点可以是CPU、GPU、FPGA或ARM等异构设备。各计算节点及异构集群调度服务器可以通过诸如RDMA远程直接数据存取或TCP通信相连。用户可以通过Web前端向异构集群调度服务器提交任务请求。在本发明实施例中,所述涉及的任务可以是任意的可以基于异构网络实现的任务,在本发明实施例中,以深度学习网络训练任务为例进行描述,例如是语音识别、图像识别、自然语言处理、搜索广告CTR预估等深度学习网络训练。
图2为本发明所述面向异构集群的任务处理方法的流程图,如图2所示,该方法包括:
步骤S201、接收任务请求及基本执行环境;
步骤S202、根据所述任务请求对异构集群进行调度;
步骤S203、将所述基本执行环境编译为所调度的异构设备对应的执行环境,并部署到所调度的异构设备上;
步骤S204、使所调度的异构设备执行所述任务请求。
图2中所述方法的执行主体为异构集群调度服务器。
其中,所述基本执行环境为开发人员基于基本硬件设备类型的异构高性能库构建的执行环境,本实施例中可以将CPU作为基本硬件设备类型,即基于CPU版本的异构高性能库构建执行环境,也可以基于GPU、FPGA、ARM类型的异构高性能库构建基本执行环境。
所述异构高性能库支持多种硬件设备计算(如CPU、GPU、FPGA、ARM)和通信(如RDMA远程直接数据存取、TCP)。所述高性能库是由高度优化的算法构建模块构成,适用于所有的数据分析阶段(预处理、转换、分析、建模、验证和决策制定)。专门用于常见的数据平台,包括Hadoop、Spark等,能够提高数据访问的效率。
在步骤S201的一种优选实现方式中,
所述任务请求包括:执行环境标识、任务的配置信息、任务的数据信息等信息。
所述任务可以为并行运算任务、深度学习网络训练任务。
以深度学习网络训练任务为例,所述任务请求包括:执行环境标识、任务的网络配置以及任务的训练信息等信息。优选的,所述任务的训练信息包括:训练数据在共享存储器中的存储路径、深度学习的训练参数。
针对存储路径,训练数据可以存储于共享存储器,如分布式文件系统(HDFS)上,因此用户可以提供训练数据在HDFS上的地址,并配置训练数据的文件名列表。
针对深度学习的训练参数,具体来说是指针对运行深度学习框架的计算节点的相关配置要求。例如:可以包括每个节点的线程数、更新间隔、是否进行热启动和/或是否自动调参中的至少一个。
在提交任务请求的同时将所述执行环境打包提交给异构集群调度服务器;需要注意的是,需要保证CPU库版本的执行环境可以正常工作。
在本实施例的一种优选实现方式中,可以事先基于CPU版本的异构高性能库构建基本执行环境,为所述基本执行环境设置标识并存储于共享存储器中。当异构集群调度服务器接收到任务请求时,根据任务请求中的执行环境标识从共享存储器中下载对应的执行环境。
优选的,用户可以通过命令行模式进行任务请求提交,也可以采用web前端的可视化界面进行任务请求提交。
在步骤S202的一种优选实现方式中,
所述异构集群调度服务器根据所述任务请求中的数据信息及异构集群可用资源额度,为所述任务请求调度异构设备资源;
以深度学习网络训练任务为例,所述异构集群调度服务器根据所述任务请求中的训练信息及异构集群可用资源额度,为所述任务请求调度异构设备资源;优选的,异构集群资源管理服务器可以采用三级调度模式,根据所述深度学习任务的训练数据大小及异构设备的计算能力,确定所需异构设备的数量。例如:当数据小于10GB的数据时,将数据调度到单个异构设备运行;当数据大于10GB且小于1TB时,将数据调度到4个异构设备运行;当数据大于1TB时,将数据调度到整个异构集群运行。
若异构集群的可用资源额度无法满足所述任务请求,则使所述任务请求进入等待状态。
若异构集群的可用资源额度可以满足所述任务请求,则为所述任务请求调度异构设备,将所述异构设备作为计算节点。
在步骤S203的一种优选实现方式中,
所述将所述基本执行环境编译为所调度的异构设备对应的执行环境包括:
异构集群调度服务器根据为所述任务请求调度的异构设备的类型,将CPU版本的异构高性能库切换为所调度的异构设备对应版本的异构高性能库,构建所调度的异构设备的类型所对应的执行环境并打包部署到所调度的异构设备上。
例如,当异构集群调度服务器为任务请求调度的异构设备为GPU、FPGA、ARM的一种或多种,则需要将CPU版本的异构高性能库切换为所调度的异构设备对应的GPU、FPGA或ARM版本的异构高性能库;当异构集群调度服务器为任务请求调度的异构设备为GPU,则不需要将CPU版本的异构高性能库进行切换。
以深度学习网络训练任务为例,根据任务请求中的任务的网络配置,使用所述执行环境,生成包括训练网络和测试网络在内的深度学习网络。
其中,训练网络是训练任务执行过程中所使用的深度学习网络结构,测试网络是在预测时所使用的深度学习网络结构。训练网络和测试网络的具体结构和相关参数,可以根据需求进行修改和定义。
在步骤S204的一种优选实现方式中,
异构集群调度服务器根据任务请求,生成指示所调度的异构设备进行分布式计算的任务指令。
以深度学习网络训练任务为例,异构集群调度服务器根据任务请求的训练信息,生成指示所调度的异构设备对深度学习网络进行分布式训练的任务指令。
具体地,向所调度的异构设备发送任务指令,触发所调度的异构设备根据任务指令中任务的训练信息,从共享存储器中获取训练数据,对深度学习网络进行训练。
在本实施例的一种优选实现方式中,
在任务执行过程中,用户可以通过异构集群调度服务器提供的前端页面,实时查看任务请求的执行进度;
优选的,异构集群调度服务器,周期性向所调度的异构设备发送任务状态查询请求;获取所调度的异构设备根据所述任务状态查询请求所查询到对所述任务请求的执行进度。异构集群调度服务器通过Web前端页面向用户提供所调度的异构设备对所述任务请求的执行进度。
优选的,所调度的异构设备定时将对所述任务请求的执行进度发送给异构集群调度服务器,由异构集群调度服务器通过Web前端页面向用户提供所调度的异构设备对所述任务请求的执行进度。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
图3为本发明所述面向异构集群的任务处理装置的结构图,该装置可以设置于异构集群调度服务器,用以完成图2所述方法实施例中的操作。如图3所示,包括:
接收模块301,用于接收任务请求及基本执行环境;
调度模块302,用于根据所述任务请求对异构集群进行调度;
部署模块303,用于将所述基本执行环境编译为所调度的异构设备对应的执行环境,并部署到所调度的异构设备上;
执行模块304,用于触发所调度的异构设备执行所述任务请求。
其中,所述基本执行环境为开发人员基于基本硬件设备类型的异构高性能库构建的执行环境,本实施例中可以将CPU作为基本硬件设备类型,即基于CPU版本的异构高性能库构建执行环境。也可以基于GPU、FPGA或ARM类型的异构高性能库构建基本执行环境。
所述异构高性能库支持多种硬件设备计算(如CPU、GPU、FPGA、ARM)和通信(如RDMA远程直接数据存取、TCP)。所述高性能库是由高度优化的算法构建模块构成,适用于所有的数据分析阶段(预处理、转换、分析、建模、验证和决策制定)。专门用于常见的数据平台,包括Hadoop、Spark等,能够提高数据访问的效率。
在接收模块301的一种优选实现方式中,
所述任务请求包括:执行环境标识、任务的配置信息、任务的数据信息等信息。
以深度学习网络训练任务为例,所述任务请求包括:执行环境标识、任务的网络配置以及任务的训练信息等信息。
优选的,所述任务的训练信息包括:训练数据在共享存储器中的存储路径、深度学习的训练参数。
针对存储路径,由于训练数据均存储于共享存储器,如分布式文件系统(HDFS)上,因此用户可以提供训练数据在HDFS上的地址,并配置训练数据的文件名列表。
针对深度学习的训练参数,具体来说是指针对运行深度学习框架的计算节点的相关配置要求。例如:可以包括每个节点的线程数、更新间隔、是否进行热启动和/或是否自动调参中的至少一个。
在提交任务请求的同时将所述执行环境打包提交给异构集群调度服务器;需要注意的是,需要保证CPU库版本的执行环境可以正常工作。
在本实施例的一种优选实现方式中,可以事先基于CPU版本的异构高性能库构建异构高性能库的执行环境,为所述执行环境设置标识并存储于共享存储器中。当异构集群调度服务器接收到任务请求时,根据任务请求中的执行环境标识从共享存储器中下载对应的执行环境。
优选的,用户可以通过命令行模式进行任务请求提交,也可以采用web前端的可视化界面进行任务请求提交。
在调度模块302的一种优选实现方式中,
所述调度模块302根据所述任务请求中的数据信息及异构集群可用资源额度,为所述任务请求调度异构设备资源;
以深度学习网络训练任务为例,所述调度模块302根据所述任务请求中的训练信息及异构集群可用资源额度,为所述任务请求调度异构设备资源;优选的,调度模块302可以采用三级调度模式,根据所述深度学习任务的训练数据大小及异构设备的计算能力,确定所需异构设备的数量。例如,当数据小于10GB的数据时,将数据调度到单个异构设备运行;当数据大于10GB且小于1TB时,将数据调度到4个异构设备运行;当数据大于1TB时,将数据调度到整个异构集群运行。
若异构集群的可用资源额度无法满足所述任务请求,则使所述任务请求进入等待状态。
若异构集群的可用资源额度可以满足所述任务请求,则为所述任务请求调度异构设备,将所述异构设备作为计算节点。
在部署模块303的一种优选实现方式中,
所述将基本执行环境编译为所调度的异构设备对应的执行环境包括:部署模块303根据为所述任务请求调度的异构设备的类型,将CPU版本的异构高性能库切换为所调度的异构设备对应的异构高性能库,构建所调度的异构设备的类型所对应的执行环境并打包部署到所调度的异构设备上。
例如,当调度模块302调度的异构设备为GPU、FPGA、ARM的一种或多种,则需要将CPU版本的异构高性能库切换为所调度的异构设备对应的GPU、FPGA或ARM版本的异构高性能库;当调度模块302调度的异构设备为GPU,则不将CPU版本的异构高性能库进行切换。
以深度学习网络训练任务为例,根据任务请求中的任务的网络配置,使用所述执行环境,生成包括训练网络和测试网络在内的深度学习网络。
其中,训练网络是训练任务执行过程中所使用的深度学习网络结构,测试网络是在预测时所使用的深度学习网络结构。训练网络和测试网络的具体结构和相关参数,可以根据需求进行修改和定义。
在执行模块304的一种优选实现方式中,
执行模块304根据任务请求,生成指示所调度的异构设备进行分布式计算的任务指令。
以深度学习网络训练任务为例,向所调度的异构设备发送任务指令,触发所调度的异构设备根据任务指令中任务的训练信息,从共享存储器中获取训练数据,对深度学习网络进行训练。
在本实施例的一种优选实现方式中,所述装置还包括监控模块,用于实时提供任务请求的执行进度。
优选的,所述监控模块,周期性向所调度的异构设备发送任务状态查询请求;获取所调度的异构设备根据所述任务状态查询请求所查询到对所述任务请求的执行进度。所述监控模块通过Web前端页面向用户提供所调度的异构设备对所述任务请求的执行进度。
优选的,所调度的异构设备定时将对所述任务请求的执行进度发送给所述监控模块,由所述监控模块通过Web前端页面向用户提供所调度的异构设备对所述任务请求的执行进度。
本发明实施例中,通过所述基本执行环境编译为所调度的异构设备对应的执行环境,只需要用户针对任务提供基本执行环境,而不需要用户针对每一类型的硬件平台分别编写一版执行环境,实现了异构设备代码的快速开发,降低了开发维护成本。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器012的框图。图4显示的计算机系统/服务器012仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统/服务器012以通用计算设备的形式表现。计算机系统/服务器012的组件可以包括但不限于:一个或者多个处理器或者处理单元016,系统存储器028,连接不同系统组件(包括系统存储器028和处理单元016)的总线018。
总线018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器012典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器012访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器028可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)030和/或高速缓存存储器032。计算机系统/服务器012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统034可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线018相连。存储器028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块042的程序/实用工具040,可以存储在例如存储器028中,这样的程序模块042包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块042通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器012也可以与一个或多个外部设备014(例如键盘、指向设备、显示器024等)通信,在本发明中,计算机系统/服务器012与外部雷达设备进行通信,还可与一个或者多个使得用户能与该计算机系统/服务器012交互的设备通信,和/或与使得该计算机系统/服务器012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口022进行。并且,计算机系统/服务器012还可以通过网络适配器020与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器020通过总线018与计算机系统/服务器012的其它模块通信。应当明白,尽管图4中未示出,可以结合计算机系统/服务器012使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元016通过运行存储在系统存储器028中的程序,从而执行本发明所描述的实施例中的功能和/或方法。
上述的计算机程序可以设置于计算机存储介质中,即该计算机存储介质被编码有计算机程序,该程序在被一个或多个计算机执行时,使得一个或多个计算机执行本发明上述实施例中所示的方法流程和/或装置操作。
随着时间、技术的发展,介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种面向异构集群的任务处理方法,其特征在于,包括:
接收任务请求及基本执行环境;所述基本执行环境基于预设的基本硬件设备类型的异构高性能库构建,其中,所述基本执行环境设置的标识存储于共享存储器中;
根据所述任务请求调度异构设备;
将所述基本执行环境编译为所调度的异构设备对应的执行环境,并部署到所调度的异构设备上;
触发所调度的异构设备执行所述任务请求;其中,
所述将所述基本执行环境编译为所调度的异构设备对应的执行环境包括:
根据为所述任务请求调度的异构设备的类型,将预设的基本硬件设备类型的异构高性能库切换为所调度的异构设备类型对应的异构高性能库,生成所调度的异构设备对应的执行环境。
2.根据权利要求1所述的方法,其特征在于,
所述任务请求包括:所述基本执行环境的标识、任务的配置信息、任务的数据信息。
3.根据权利要求1所述的方法,其特征在于,所述根据所述任务请求调度异构设备包括:
根据所述任务请求中任务的数据信息及异构集群可用资源额度,为所述任务请求调度异构设备。
4.根据权利要求2所述的方法,其特征在于,所述触发所调度的异构设备执行所述任务请求包括:
向所调度的异构设备发送包括所述任务的数据信息的任务指令,以使所调度的异构设备根据任务指令进行分布式计算。
5.一种面向异构集群的任务处理装置,其特征在于,包括:
接收模块,用于接收任务请求及基本执行环境;所述基本执行环境基于预设的基本硬件设备类型的异构高性能库构建,其中,所述基本执行环境设置的标识存储于共享存储器中;
调度模块,用于根据所述任务请求调度异构设备;
部署模块,用于将所述基本执行环境编译为所调度的异构设备对应的执行环境,并部署到所调度的异构设备上;
执行模块,用于触发所调度的异构设备执行所述任务请求;其中,
所述部署模块具体用于:
根据为所述任务请求调度的异构设备的类型,将特定硬件设备类型的异构高性能库切换为所调度的异构设备类型对应的异构高性能库,生成所调度的异构设备对应的执行环境。
6.根据权利要求5所述的装置,其特征在于,
所述任务请求包括:所述基本执行环境的标识、任务的配置信息、任务的数据信息。
7.根据权利要求5所述的装置,其特征在于,所述调度模块具体用于:
根据所述任务请求中任务的数据信息及异构集群可用资源额度,为所述任务请求调度异构设备。
8.根据权利要求6所述的装置,其特征在于,所述执行模块具体用于:
向所调度的异构设备发送包括所述任务的数据信息的任务指令,以使所调度的异构设备根据任务指令进行分布式计算。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~4中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~4中任一项所述的方法。
CN201710772904.XA 2017-08-31 2017-08-31 一种面向异构集群的任务处理方法及装置 Active CN107678752B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710772904.XA CN107678752B (zh) 2017-08-31 2017-08-31 一种面向异构集群的任务处理方法及装置
US16/116,624 US10977076B2 (en) 2017-08-31 2018-08-29 Method and apparatus for processing a heterogeneous cluster-oriented task

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710772904.XA CN107678752B (zh) 2017-08-31 2017-08-31 一种面向异构集群的任务处理方法及装置

Publications (2)

Publication Number Publication Date
CN107678752A CN107678752A (zh) 2018-02-09
CN107678752B true CN107678752B (zh) 2021-09-21

Family

ID=61135563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710772904.XA Active CN107678752B (zh) 2017-08-31 2017-08-31 一种面向异构集群的任务处理方法及装置

Country Status (2)

Country Link
US (1) US10977076B2 (zh)
CN (1) CN107678752B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628800A (zh) * 2018-05-08 2018-10-09 济南浪潮高新科技投资发展有限公司 一种动态可重构的智能计算集群及其配置方法
CN111124656B (zh) * 2018-10-31 2023-09-15 伊姆西Ip控股有限责任公司 用于向专用计算资源分配任务的方法、设备和计算机可读存储介质
CN110706148B (zh) * 2019-10-10 2023-08-15 中国建设银行股份有限公司 人脸图像处理方法、装置、设备和存储介质
CN111915016B (zh) * 2020-07-10 2022-03-25 深圳云天励飞技术股份有限公司 一种基于tvm编译器的异构平台的部署方法及装置
CN112035267B (zh) * 2020-11-03 2021-11-12 北京淇瑀信息科技有限公司 一种基于mpi的集群资源调度方法、装置及系统
CN113051053B (zh) * 2021-03-24 2023-09-08 博瀚智能(深圳)有限公司 异构资源调度方法、装置、设备和计算机可读存储介质
CN116010437B (zh) * 2023-03-20 2023-12-19 成都佰维存储科技有限公司 设备码写入方法、装置、可读存储介质及电子设备
CN116361120B (zh) * 2023-05-31 2023-08-15 山东浪潮科学研究院有限公司 一种数据库异构资源管理与调度方法、装置、设备及介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8286198B2 (en) * 2008-06-06 2012-10-09 Apple Inc. Application programming interfaces for data parallel computing on multiple processors
CN103186376B (zh) * 2011-12-30 2018-06-05 百度在线网络技术(北京)有限公司 一种用于建立或更新软件开发环境的方法、装置和设备
US20140245319A1 (en) * 2013-02-27 2014-08-28 Greenbutton Limited Method for enabling an application to run on a cloud computing system
US9269022B2 (en) * 2013-04-11 2016-02-23 Digimarc Corporation Methods for object recognition and related arrangements
CN104243617B (zh) * 2014-10-14 2017-10-27 中国科学院信息工程研究所 一种异构集群中面向混合负载的任务调度方法及系统
CN105227669A (zh) * 2015-10-15 2016-01-06 浪潮(北京)电子信息产业有限公司 一种面向深度学习的cpu与gpu混合的集群架构系统
CN105511933A (zh) * 2015-12-03 2016-04-20 深圳市创维软件有限公司 一种源代码的编译方法及相关设备
US10614018B2 (en) * 2016-05-28 2020-04-07 International Business Machines Corporation Managing a set of compute nodes which have different configurations in a stream computing environment
CN106529673B (zh) * 2016-11-17 2019-05-03 北京百度网讯科技有限公司 基于人工智能的深度学习网络训练方法及装置

Also Published As

Publication number Publication date
CN107678752A (zh) 2018-02-09
US10977076B2 (en) 2021-04-13
US20190065251A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
CN107678752B (zh) 一种面向异构集群的任务处理方法及装置
CN107733977B (zh) 一种基于Docker的集群管理方法及装置
CN107766148B (zh) 一种异构集群及任务处理方法和装置
CN107885762B (zh) 智能大数据系统、提供智能大数据服务的方法和设备
US10942716B1 (en) Dynamic computational acceleration using a heterogeneous hardware infrastructure
Ageed et al. Cloud computing resources impacts on heavy-load parallel processing approaches
Azab Enabling docker containers for high-performance and many-task computing
CN109961151A (zh) 用于机器学习的计算服务的系统及用于机器学习的方法
Taura et al. Design and implementation of GXP make—A workflow system based on make
CN107025256B (zh) 用于减少基于云的服务的重新激活时间的方法和系统
US8990294B2 (en) File system optimization by log/metadata analysis
US10643150B2 (en) Parameter version vectors used for deterministic replay of distributed execution of workload computations
CN114667507A (zh) 使用基于应用的剖析的机器学习工作负载的弹性执行
Cong et al. Heterogeneous datacenters: Options and opportunities
Fan et al. DRAS-CQSim: A reinforcement learning based framework for HPC cluster scheduling
Shen et al. Performance prediction of parallel computing models to analyze cloud-based big data applications
US10225343B2 (en) Object storage workflow optimization leveraging underlying hardware, operating system, and virtualization value adds
Eckroth Teaching big data with a virtual cluster
US9354909B2 (en) Processing systems and methods
US10521272B1 (en) Testing in grid computing systems
CN111767059A (zh) 深度学习模型的部署方法、装置、电子设备和存储介质
CN114020414B (zh) Android系统与底层Linux共生方法、装置、电子设备及存储介质
CN111352664A (zh) 分布式机器学习任务启动方法、系统、设备及存储介质
Reilly et al. Tutorial: parallel computing of simulation models for risk analysis
Beck et al. Impact of environment on the execution of a real-time Linux process on a multicore platform

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