CN103500123B - 异构环境中并行计算调度方法 - Google Patents

异构环境中并行计算调度方法 Download PDF

Info

Publication number
CN103500123B
CN103500123B CN201310477055.7A CN201310477055A CN103500123B CN 103500123 B CN103500123 B CN 103500123B CN 201310477055 A CN201310477055 A CN 201310477055A CN 103500123 B CN103500123 B CN 103500123B
Authority
CN
China
Prior art keywords
task
groove
node
jvm
parallel computation
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
CN201310477055.7A
Other languages
English (en)
Other versions
CN103500123A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201310477055.7A priority Critical patent/CN103500123B/zh
Publication of CN103500123A publication Critical patent/CN103500123A/zh
Application granted granted Critical
Publication of CN103500123B publication Critical patent/CN103500123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及并行计算领域,公开了一种异构环境中并行计算调度方法,该方法通过建构多种内存不同的JVM任务槽以及空闲任务槽数组,将并行计算作业中的任务分为I/O密集型和CPU密集型,并把上述任务指定到合适的任务槽进行计算,达到优化异构环境中并行计算效率的目的。本发明的优点在于,实现了动态地确定任务所需要的内存大小和类型,提高了异构集群的资源利用率,减少了并行计算作业的总体运行时间,避免了任务运行过程中内存溢出的情况。

Description

异构环境中并行计算调度方法
技术领域
本发明涉及并行计算领域,特别涉及一种异构环境中并行计算调度方法。
背景技术
随着以社交网站SNS、基于位置的服务LBS为代表的新型信息发布方式的不断出现,以及云计算、物联网和移动计算等技术的兴起,数据正在以前所未有的速度不断地增长和累积,我们已经步入大数据时代。据统计,百度公司每天要处理的数据达到10~100PB,纽约证券交易所每天产生约1TB的交易数据。在大数据时代,单机无法满足数据处理的性能和时间要求,比如数据挖掘、构建倒排索引等算法,因此产生了多机并行处理技术。大数据分析技术是对大数据的产生、存储、挖掘和展现的全生命周期进行综合分析处理的过程。一般的,大数据需满足4个特点:1)规模性(Volume),2)多样性(Variety),3)高速性(Velocity),4)价值(Value)。
传统并行计算编程框架包括两类:数据并行模型和消息传递模型。数据并行模型级别较高,编程相对简单,是当前流行的趋势。大数据的应用类型有很多,主要的处理模式可以分为流处理(Stream Processing)和批处理(Batch Processing)两种。在本发明中,我们针对批处理的数据并行模型进行了优化。
发明内容
本发明针对现有批处理的数据并行模型的资源利用率低的缺点,提供了一种新型的异构环境中并行计算调度方法。
为实现上述目的,本发明可采取下述技术方案:
异构环境中并行计算调度方法,包括以下具体步骤:
1)在异构集群上构建多个JVM任务槽,所述多个JVM任务槽分别由不同或者相同大小的内存空间组成,所述异构集群包括主节点以及从节点,JVM任务槽位于从节点上;
2)主节点对所有从节点的I/O利用率和CPU利用率进行监控,并构建空闲任务槽数组Q1以及Q2,所述空闲任务槽数组Q1以及Q2分别由一个或者多个JVM任务槽组成;
3)搭建于异构集群上的分布式文件系统接收用户上载的待处理的输入数据,并将输入数据以数据块的形式存储在异构集群的节点上;分布式文件系统接收用户提交的并行计算作业;
4)对并行计算作业进行预测试,在预测试过程中计算并行计算作业中每个任务在运行时所需要的内存空间大小;
5)根据预测试在运行时输出的数据大小和运行时间,将并行计算作业中的任务分为I/O密集型和CPU密集型;
6)建立调度队列,将并行计算作业的任务加入调度队列,依次运行调度队列中的任务,如果任务为I/O密集型,则执行步骤7);如果任务为CPU密集型,则执行步骤8);
7)在空闲任务槽数组Q1中选择一个JVM任务槽,在该选定的JVM任务槽内运行任务,如果任务运行成功,则执行步骤9);否则重复执行步骤7);
8)在空闲任务槽数组Q2中选择一个JVM任务槽,在该选定的JVM任务槽内运行任务,如果任务运行成功,则执行步骤9);否则重复执行步骤8);
9)等待调度队列中的任务均运行结束,导出运行结果。
作为优选,步骤1)中,JVM任务槽至多可以分配的内存空间大小其中,从节点的处理器数目为n,从节点总内存为Mslave,从节点上所构建的任务槽的个数为Nslot
作为优选,Nslot=2n,实际分配得到的JVM任务槽的内存空间大小为128MB的整数倍。
作为优选,步骤2)还包括以下具体步骤:将空闲任务槽数组Q1以任务槽的内存空间大小为关键字由小到大进行第一次排序,以任务槽所在从节点的I/O利用率为关键字由小到大进行第二次排序;将空闲任务槽数组Q2以任务槽的内存空间大小为关键字由小到大进行第一次排序,以任务槽所在从节点的CPU利用率为关键字由小到大进行第二次排序。
作为优选,步骤3)中,不同的数据块作为不同的任务运行,数据块冗余地存储在异构集群的节点上。
作为优选,步骤4)的预测试步骤具体包括:依据任务对内存的需求是否与输入数据的大小相关联,将任务区分为与输入数据的大小无关的任务以及与输入数据的大小成比例关系的任务,与输入数据的大小成比例关系的任务所需要的最小内存空间大小其中,Mtest为预测试时测试程序运行所需内存需求,Sblock为输入数据的数据块大小,Stest为预测试时测试程序输入的数据大小。
作为优选,步骤5)还包括以下具体步骤:将满足条件的任务划分为I/O密集型;否则为CPU密集型;其中,TID表示步骤4)预测试时测试程序输入的数据大小,TOD表示测试程序输出数据的大小,TCT表示测试程序的运行时间,DIOR表示硬盘读写最大速率。
作为优选,步骤6)中,使用FIFO方式运行调度队列中的任务。
作为优选,步骤7)还包括:在任务所在从节点中选择JVM任务槽,如果选择失败,则使用内存最佳适应分配算法和I/O利用率最小值分配算法在空闲任务槽数组Q1内选择JVM任务槽;当任务的运行次数超过3次,则不再运行该任务;步骤8)还包括:在任务所在从节点中选择JVM任务槽,如果选择失败,则使用内存最佳适应分配算法和CPU利用率最小值分配算法在空闲任务槽数组Q2内选择JVM任务槽;当任务的运行次数超过3次,则不再运行该任务。
本发明的异构集群节点包含主节点(Master)和从节点(Slave),从节点上拥有若干不同的任务槽。首先将用户的输入数据进行分块(Block),然后数据块以任务的形式交给合适的任务槽处理。任务槽从输入数据中解析键/值(Key/Value)对集合,对这些集合执行用户自定义的函数得到结果,并将结果写入本地硬盘。
由上述并行计算框架可以看出,现有的方法对集群中的所有机器硬件配置同等对待,在异构集群中,资源的利用率极低;同时,不同类型的作业分配到完全相同的任务槽中,会影响并行计算作业的运行时间和吞吐率。
本发明由于采用了以上技术方案,具有显著的技术效果:
通过收集各个节点的资源利用率,指定任务到合适的任务槽上运行,极大地提高了异构集群的资源利用率。不仅如此,还可以加快并行计算作业的运行速度,增加整个异构集群的作业吞吐率。
进一步地,本发明特别针对内存需求与输入数据大小成比例的任务进行了优化,通过预测试步骤预估任务运行时所需要的内存大小,避免了程序在运行过程中由于内存溢出导致的程序运行中断的情况。
附图说明
图1为本发明的流程示意图。
图2为实施例2中空闲任务槽数组Q1的数据状态示意图。
图3为实施例2中空闲任务槽数组Q2的数据状态示意图。
具体实施方式
下面结合实施例对本发明作进一步的详细描述。
实施例1
异构环境中并行计算调度方法,具体流程如图1所示,包括以下具体步骤:
1)在异构集群上构建多个JVM任务槽,所述多个JVM任务槽分别由不同或者相同大小的内存空间组成,所述异构集群包括主节点以及从节点,JVM任务槽位于从节点上;
2)主节点对所有从节点的I/O利用率和CPU利用率进行监控,并构建空闲任务槽数组Q1以及Q2,所述空闲任务槽数组Q1以及Q2分别由一个或者多个JVM任务槽组成;
3)搭建于异构集群上的分布式文件系统接收用户上载的待处理的输入数据,并将输入数据以数据块的形式存储在异构集群的节点上;分布式文件系统接收用户提交的并行计算作业;
4)对并行计算作业进行预测试,在预测试过程中计算并行计算作业中每个任务在运行时所需要的内存空间大小;
5)根据预测试在运行时输出的数据大小和运行时间,将并行计算作业中的任务分为I/O密集型和CPU密集型;
6)建立调度队列,将并行计算作业的任务加入调度队列,依次运行调度队列中的任务,如果任务为I/O密集型,则执行步骤7);如果任务为CPU密集型,则执行步骤8);
7)在空闲任务槽数组Q1中选择一个JVM任务槽,在该选定的JVM任务槽内运行任务,如果任务运行成功,则执行步骤9);否则重复执行步骤7);
8)在空闲任务槽数组Q2中选择一个JVM任务槽,在该选定的JVM任务槽内运行任务,如果任务运行成功,则执行步骤9);否则重复执行步骤8);
9)等待调度队列中的任务均运行结束,导出运行结果。
步骤1)中,JVM任务槽至多可以分配的内存空间大小 其中,从节点的处理器数目为n,从节点总内存为Mslave,从节点上所构建的任务槽的个数为Nslot,这里预留了20%的内存空间给操作系统和守护进程等使用。作为优选,令Nslot=2n,实际分配得到的JVM任务槽的内存空间大小为128MB的整数倍。
步骤2)还包括:主节点存储由心跳(Heartbeat)信息传回的所有从节点的I/O利用率、CPU利用率。优选地,我们设定心跳间隔为5秒。
步骤2)还包括以下具体步骤:将空闲任务槽数组Q1以任务槽的内存空间大小为关键字由小到大进行第一次排序,以任务槽所在从节点的I/O利用率为关键字由小到大进行第二次排序;将空闲任务槽数组Q2以任务槽的内存空间大小为关键字由小到大进行第一次排序,以任务槽所在从节点的CPU利用率为关键字由小到大进行第二次排序。
步骤3)中,输入数据以分块的形式,并且以一定的冗余度,冗余度≥1的形式存储在异构集群的节点上。不同的数据块作为不同的任务运行,数据分块大小可以由每个用户自定义,一个并行计算作业的任务数由数据分块的数目确定。优选地,取数据块的大小为64MB。
步骤4)的预测试步骤具体包括:依据任务对内存的需求是否与输入数据的大小相关联,将任务区分为与输入数据的大小无关的任务以及与输入数据的大小成比例关系的任务,与输入数据的大小成比例关系的任务所需要的最小内存空间大小其中,Mtest为预测试时测试程序运行所需内存需求,Sblock为输入数据的数据块大小,Stest为预测试时测试程序输入的数据大小。
步骤5)还包括以下具体步骤:将满足条件的任务划分为I/O密集型;否则为CPU密集型;其中,TID(Test Input Data)表示步骤4)预测试时测试程序输入的数据大小,TOD(Test Output Data)表示测试程序输出数据的大小,TCT(TestCompleted Time)表示测试程序的运行时间,DIOR(Disk IO Rate)表示硬盘读写最大速率。
步骤6)中,使用FIFO(First In First Out)方式运行调度队列中的任务。
步骤7)还包括:在任务所在从节点中选择JVM任务槽,如果选择失败,则使用内存最佳适应分配算法和I/O利用率最小值分配算法在空闲任务槽数组Q1内选择JVM任务槽;当任务的运行次数超过3次,则不再运行该任务;步骤8)还包括:在任务所在从节点中选择JVM任务槽,如果选择失败,则使用内存最佳适应分配算法和CPU利用率最小值分配算法在空闲任务槽数组Q2内选择JVM任务槽;当任务的运行次数超过3次,则不再运行该任务。
实施例2
依据实施例1所列步骤,进行一个具体的并行计算调度试验,具体步骤如下:
步骤1):异构集群中包含四个物理节点,一台主节点和三台从节点(从节点1、从节点2、从节点3)。每个节点拥有1个单核64位、2.00Hz主频的至强处理器,三台从节点的内存分别为4GB,8GB,8GB。所有机器连接在同一个千兆局域网中,其磁盘读写速率相同。在每一台从节点上构建2个JVM任务槽,每个JVM任务槽的内存根据公式计算得到为:768MB、1792MB和1792MB;
步骤2):某一个时刻主节点监控得到各个从节点的I/O利用率分别为40%、70%和60%,CPU利用率分别为40%、30%和20%。此时所有任务槽都处于空闲状态,空闲任务槽数组Q1的数据状态如图2所示,空闲任务槽数组Q2的数据状态如图3所示。
步骤3):并行计算作业输入数据的大小为64MB;
步骤4):运行作业的预测试程序,16MB的输入数据需要的内存为200MB,则根据公式计算所得每个任务所需要的内存大小为800MB;
步骤5):TID=64MB,TOD=64MB,TCT=100second,DIOR=5MB/second。根据公式判定这个作业为CPU密集型任务;
步骤6):将作业的任务加入调度队列,等待调度运行,因为任务为CPU密集型,进入步骤7);
步骤7):在空闲任务槽数组Q2中选取从节点3的一个任务槽进行计算,如果运行成功,进入步骤8),否则重复执行步骤7);
步骤8):运行结束,导出结果。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

Claims (5)

1.一种异构环境中并行计算调度方法,其特征在于,包括以下具体步骤:
1)在异构集群上构建多个JVM任务槽,所述多个JVM任务槽分别由不同或者相同大小的内存空间组成,所述异构集群包括主节点以及从节点,JVM任务槽位于从节点上;
步骤1)中,JVM任务槽至多可以分配的内存空间大小 其中,从节点的处理器数目为n,从节点总内存为Mstave,从节点上所构建的任务槽的个数为Nslot
2)主节点对所有从节点的I/O利用率和CPU利用率进行监控,并构建空闲任务槽数组Q1以及Q2,所述空闲任务槽数组Q1以及Q2分别由一个或者多个JVM任务槽组成;
步骤2)还包括以下具体步骤:将空闲任务槽数组Q1以任务槽的内存空间大小为关键字由小到大进行第一次排序,以任务槽所在从节点的I/O利用率为关键字由小到大进行第二次排序;将空闲任务槽数组Q2以任务槽的内存空间大小为关键字由小到大进行第一次排序,以任务槽所在从节点的CPU利用率为关键字由小到大进行第二次排序;
3)搭建于异构集群上的分布式文件系统接收用户上载的待处理的输入数据,并将输入数据以数据块的形式存储在异构集群的节点上;分布式文件系统接收用户提交的并行计算作业;
4)对并行计算作业进行预测试,在预测试过程中计算并行计算作业中每个任务在运行时所需要的内存空间大小;
步骤4)的预测试步骤具体包括:依据任务对内存的需求是否与输入数据的大小相关联,将任务区分为与输入数据的大小无关的任务以及与输入数据的大小成比例关系的任务,与输入数据的大小成比例关系的任务所需要的最小内存空间大小 其中,Mtest为预测试时测试程序运行所需内存需求,Sblock为输入数据的数据块大小,Stest为预测试时测试程序输入的数据大小;
5)根据预测试在运行时输出的数据大小和运行时间,将并行计算作业中的任务分为I/O密集型和CPU密集型;
步骤5)还包括以下具体步骤:将满足条件的任务划分为I/O密集型;否则为CPU密集型;其中,TID表示步骤4)预测试时测试程序输入的数据大小,TOD表示测试程序输出数据的大小,TCT表示测试程序的运行时间,DIOR表示硬盘读写最大速率;
6)建立调度队列,将并行计算作业的任务加入调度队列,依次运行调度队列中的任务,如果任务为I/O密集型,则执行步骤7);如果任务为CPU密集型,则执行步骤8);
7)在空闲任务槽数组Q1中选择一个JVM任务槽,在该选定的JVM任务槽内运行任务,如果任务运行成功,则执行步骤9);否则重复执行步骤7);
8)在空闲任务槽数组Q2中选择一个JVM任务槽,在该选定的JVM任务槽内运行任务,如果任务运行成功,则执行步骤9);否则重复执行步骤8);
9)等待调度队列中的任务均运行结束,导出运行结果。
2.根据权利要求1所述的异构环境中并行计算调度方法,其特征在于,Nslot=2n,实际分配得到的JVM任务槽的内存空间大小为128MB的整数倍。
3.根据权利要求1所述的异构环境中并行计算调度方法,其特征在于,步骤3)中,不同的数据块作为不同的任务运行,数据块冗余地存储在异构集群的节点上。
4.根据权利要求1所述的异构环境中并行计算调度方法,其特征在于,步骤6)中,使用FIFO方式运行调度队列中的任务。
5.根据权利要求1所述的异构环境中并行计算调度方法,其特征在于,步骤7)还包括:
在任务所在从节点中选择JVM任务槽,如果选择失败,则使用内存最佳适应分配算法和I/O利用率最小值分配算法在空闲任务槽数组Q1内选择JVM任务槽;当任务的运行次数超过3次,则不再运行该任务;步骤8)还包括:在任务所在从节点中选择JVM任务槽,如果选择失败,则使用内存最佳适应分配算法和CPU利用率最小值分配算法在空闲任务槽数组Q2内选择JVM任务槽;当任务的运行次数超过3次,则不再运行该任务。
CN201310477055.7A 2013-10-12 2013-10-12 异构环境中并行计算调度方法 Active CN103500123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310477055.7A CN103500123B (zh) 2013-10-12 2013-10-12 异构环境中并行计算调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310477055.7A CN103500123B (zh) 2013-10-12 2013-10-12 异构环境中并行计算调度方法

Publications (2)

Publication Number Publication Date
CN103500123A CN103500123A (zh) 2014-01-08
CN103500123B true CN103500123B (zh) 2016-09-21

Family

ID=49865338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310477055.7A Active CN103500123B (zh) 2013-10-12 2013-10-12 异构环境中并行计算调度方法

Country Status (1)

Country Link
CN (1) CN103500123B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015127668A1 (en) * 2014-02-28 2015-09-03 Pivotal Software, Inc. Task centric resource scheduling framework
CN105808534B (zh) * 2014-12-27 2019-06-11 株洲中车时代电气股份有限公司 一种异构数据融合文件中提取原始数据的方法
CN104657221B (zh) * 2015-03-12 2019-03-22 广东石油化工学院 一种云计算中基于任务分类的多队列错峰调度模型及方法
CN104731662B (zh) * 2015-03-26 2018-02-23 华中科技大学 一种可变并行作业的资源分配方法
CN106502792B (zh) * 2016-10-20 2019-11-15 华南理工大学 一种面向不同类型负载的多租户资源优化调度方法
WO2019051819A1 (zh) * 2017-09-18 2019-03-21 深圳传音通讯有限公司 动态内存的识别方法和装置
CN110554912B (zh) 2018-05-31 2022-05-20 杭州海康威视数字技术股份有限公司 调度设备执行任务的方法和装置
CN109309726A (zh) * 2018-10-25 2019-02-05 平安科技(深圳)有限公司 基于海量数据的文件生成方法及系统
CN113268204B (zh) * 2021-05-26 2022-10-18 绿芯半导体(厦门)有限公司 一种提高ssd多通道并发数据读写效率的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414271A (zh) * 2008-12-04 2009-04-22 浙江大学 多核平台下基于硬件计时器与任务队列的调度方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011058657A1 (ja) * 2009-11-16 2011-05-19 富士通株式会社 並列計算装置、並列計算方法、および並列計算プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414271A (zh) * 2008-12-04 2009-04-22 浙江大学 多核平台下基于硬件计时器与任务队列的调度方法

Also Published As

Publication number Publication date
CN103500123A (zh) 2014-01-08

Similar Documents

Publication Publication Date Title
CN103500123B (zh) 异构环境中并行计算调度方法
Liu et al. Adaptive asynchronous federated learning in resource-constrained edge computing
US10031774B2 (en) Scheduling multi-phase computing jobs
Hu et al. A time-series based precopy approach for live migration of virtual machines
CN110209494B (zh) 一种面向大数据的分布式任务调度方法及Hadoop集群
CN107003887A (zh) Cpu超载设置和云计算工作负荷调度机构
Li et al. Power-aware MPI task aggregation prediction for high-end computing systems
Li et al. An effective scheduling strategy based on hypergraph partition in geographically distributed datacenters
Wang et al. Heterogeneity-aware gradient coding for straggler tolerance
Hua et al. Hadoop configuration tuning with ensemble modeling and metaheuristic optimization
Hu et al. Improved heuristic job scheduling method to enhance throughput for big data analytics
CN115373835A (zh) Flink集群的任务资源调整方法、装置及电子设备
Geng et al. A task scheduling algorithm based on priority list and task duplication in cloud computing environment
Martyshkin et al. Queueing Theory to Describe Adaptive Mathematical Models of Computational Systems with Resource Virtualization and Model Verification by Similarly Configured Virtual Server
Yousefi et al. A task-based greedy scheduling algorithm for minimizing energy of mapreduce jobs
Arif et al. Infrastructure-aware tensorflow for heterogeneous datacenters
CN115033389A (zh) 一种电网信息系统节能型任务资源调度方法和装置
CN110865872B (zh) 基于资源合理化应用的虚拟化集群资源调度系统
Wang et al. Cost-effective scheduling precedence constrained tasks in cloud computing
Shi et al. Energy-efficient scheduling algorithms based on task clustering in heterogeneous spark clusters
Singh An Optimal Resource Provisioning Scheme Using QoS in Cloud Computing Based Upon the Dynamic Clustering and Self-Adaptive Hybrid Optimization Algorithm.
Zhang et al. Optimising data access latencies of virtual machine placement based on greedy algorithm in datacentre
Jiang et al. Energy optimization oriented three-way clustering algorithm for cloud tasks
Ponnuswami et al. Evaluating data-parallel distributed training strategies
Wei et al. Topology-aware task allocation for distributed stream processing with latency guarantee

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant