辽宁大学学报
自然科学版
第
36
卷第
2
期
2
∞
9
年
JOURNAL
OF
UAONING
UNIVERSI
1Y
Natural
Sc
iences
Edition
Vo
l.
36
No.2
2009
基于数据依赖和触发器的简单子任务调度算法
孙伟东
1
,
2
·马宗民
2
(1.沈阳航空工业学院计算机学院,辽宁沈阳
110136
;2.
东北大学信息科学与工程学院,辽宁沈阳
110004)
摘
要:针对在数据库管理系统环境下实现的分布式子任务计算平台,提出了一种基于数据依赖、采用触
发器实现的简单分布式子任务调度算法,可有效保证分布式子任务调度的准确性和一定程度的及时性.首
先介绍了采用人工划分的基于执行阶段的子任务调度思想,并结合数据依赖调度算法,证明了两者之间的
相似性和密切联系,然后进一步提出基于执行阶段的分布式子任务调度算法,为在数据库环境下实现的分
布式子任务计算提供了一种简单、快捷、正确的调度算法.
关键词:分布式任务调度;数据依赖;触发器.
中图分类号:TP3
11
文献标识码
:A
文章编号:
1000-5846
(2009)
02
-0
146
-0
5
0
引言
子任务调度是构建并行与分布式系统必然要
遇到的一个基本问题,即如何将一个任务的若干
子任务根据一定的依赖关系排序并映射到计算节
点,以便在最短的时间内完成任务计算.其中一个
计算任务的所有子任务的映射和调度常常是问题
的核心和关键.通常意义上的任务映射和调度,按
处理的对象不同,一般可细分为基于任务和子任
务的两类映射和调度算法,而后者又可分为静态
和动态两类
[1]
本文主要讨论子任务的静态映射
和调度,以便适应基于数据库的分布式计算模
型
[2]
基于数据库的分布式计算模型,是指对手已
经存储在数据库中的分布式任务程序,通过工作
节点上的监控程序下载到工作节点上执行,而输
人输出数据和子任务状态信息只存放在管理节点
的数据库中.该方法可在保证数据安全的前提
下,实现模型简单、易于理解、部署'快捷、管理维护
方便的分布式高强度任务计算.但这种方法首先
要解决的一个问题,就是如何对于经过分解后产
生的多个子计算任务进行协同、调度和管理,并且
算法要具有正确、设计简单、易于理解和实现、部
署快捷等特点,以便于整个系统的推广和普及.
目前大多数该类调度算法都是基于
DAG
(
Directed
Acyclic
Graph)
模型或是改进的
DAG
模
型,如
TIIG
模型
[3]
上述算法虽然效率较高,但
都存在计算量大、算法复杂、普通用户不易理解和
掌握、难于部署等缺点.本文提出一种基于数据依
赖的、采用触发器实现的子任务调度和管理方法,
该方法基于目前成熟的数据库技术,具有设计简
单、易于理解和实现、部署'快捷、功能完善等特点
1
基本原理
一个高强度计算任务经过分解之后会形成多
个单程序多数据
(SPMD)
或多程序多数据
(MPMD)
的子任务,子任务的
DAG
图反映了每个
子任务的工作量以及子任务之间的通信代价和执
行次序.子任务的
DAG
图即可用来实现子任务高
效正确的调度,但构造所有子任务的
DAG
图工作
量大,算法非常复杂,而且该类算法属于
NP
难度
问题
[1]
如图
1
所示.
*作者简介:孙伟东
(1974-)
,男,黑龙江哈尔滨人,博士研究生,讲师,从事并行与分布式处理技术研究.
基金项目:教育部高等学校博士学科点专项科研基金
(2
∞
50145024)
收稿日期
:2009
-D
3-20