Loading [MathJax]/jax/output/SVG/jax.js
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

跨云环境下任务调度综述

唐续豪, 刘发贵, 王彬, 李超, 蒋俊, 唐泉, 陈维明, 何凤文

唐续豪, 刘发贵, 王彬, 李超, 蒋俊, 唐泉, 陈维明, 何凤文. 跨云环境下任务调度综述[J]. 计算机研究与发展, 2023, 60(6): 1262-1275. DOI: 10.7544/issn1000-1239.202220021
引用本文: 唐续豪, 刘发贵, 王彬, 李超, 蒋俊, 唐泉, 陈维明, 何凤文. 跨云环境下任务调度综述[J]. 计算机研究与发展, 2023, 60(6): 1262-1275. DOI: 10.7544/issn1000-1239.202220021
Tang Xuhao, Liu Fagui, Wang Bin, Li Chao, Jiang Jun, Tang Quan, Chen Weiming, He Fengwen. Survey on Task Scheduling in Inter-Cloud Environment[J]. Journal of Computer Research and Development, 2023, 60(6): 1262-1275. DOI: 10.7544/issn1000-1239.202220021
Citation: Tang Xuhao, Liu Fagui, Wang Bin, Li Chao, Jiang Jun, Tang Quan, Chen Weiming, He Fengwen. Survey on Task Scheduling in Inter-Cloud Environment[J]. Journal of Computer Research and Development, 2023, 60(6): 1262-1275. DOI: 10.7544/issn1000-1239.202220021
唐续豪, 刘发贵, 王彬, 李超, 蒋俊, 唐泉, 陈维明, 何凤文. 跨云环境下任务调度综述[J]. 计算机研究与发展, 2023, 60(6): 1262-1275. CSTR: 32373.14.issn1000-1239.202220021
引用本文: 唐续豪, 刘发贵, 王彬, 李超, 蒋俊, 唐泉, 陈维明, 何凤文. 跨云环境下任务调度综述[J]. 计算机研究与发展, 2023, 60(6): 1262-1275. CSTR: 32373.14.issn1000-1239.202220021
Tang Xuhao, Liu Fagui, Wang Bin, Li Chao, Jiang Jun, Tang Quan, Chen Weiming, He Fengwen. Survey on Task Scheduling in Inter-Cloud Environment[J]. Journal of Computer Research and Development, 2023, 60(6): 1262-1275. CSTR: 32373.14.issn1000-1239.202220021
Citation: Tang Xuhao, Liu Fagui, Wang Bin, Li Chao, Jiang Jun, Tang Quan, Chen Weiming, He Fengwen. Survey on Task Scheduling in Inter-Cloud Environment[J]. Journal of Computer Research and Development, 2023, 60(6): 1262-1275. CSTR: 32373.14.issn1000-1239.202220021

跨云环境下任务调度综述

基金项目: 广东省基础与应用基础研究重大项目(2019B030302002);广东省科技计划项目(2021B1111600001);广州市重点领域研发计划项目(202007030006);广州市“中国制造2025”产业发展资金项目(x2jsD8183470);广东省工程技术研究中心建设项目(粤科产学研字[2016]176号)
详细信息
    作者简介:

    唐续豪: 1996年生. 博士研究生. CCF学生会员. 主要研究方向为云计算和物联网

    刘发贵: 1963年生. 博士,教授,博士生导师. CCF会员. 主要研究方向为云计算、大数据和物联网

    王彬: 1993年生. 博士,助理研究员. CCF会员. 主要研究方向为云计算、边缘计算和节能调度

    李超: 1993年生. 博士研究生. 主要研究方向为边缘计算和强化学习

    蒋俊: 1994年生. 博士研究生. 主要研究方向为机器学习、云计算、数据流分类和模糊系统

    唐泉: 1997年生. 博士研究生. 主要研究方向为计算机视觉和深度学习

    陈维明: 1964年生. 学士. 主要研究方向为云计算

    何凤文: 1980年生. 硕士. 主要研究方向为云计算

    通讯作者:

    刘发贵(fgliu@scut.edu.cn

  • 中图分类号: TP391

Survey on Task Scheduling in Inter-Cloud Environment

Funds: This work was supported by the Guangdong Major Project of Basic and Applied Basic Research (2019B030302002), the Science and Technology Project of Guangdong Province (2021B1111600001), the Guangzhou Major Fields Research and Development Program (202007030006), the Guangzhou "China Manufacturing 2025" Industrial Development Funds Program (x2jsD8183470), and the Guangdong Engineering and Technology Research Center Construction Program (GDDST[2016]176).
More Information
    Author Bio:

    Tang Xuhao: born in 1996. PhD candidate. Student member of CCF. His main research interests include cloud computing and Internet of things

    Liu Fagui: born in 1963. PhD, professor, PhD supervisor. Member of CCF. Her main research interests include cloud computing, big data, and Internet of things

    Wang Bin: born in 1993. PhD, assistant research fellow. Member of CCF. His main research interests include cloud computing, edge computing, and energy-efficient scheduling. (wangb02@pcl.ac.cn

    Li Chao: born in 1993. PhD candidate. His main research interests include edge computing and reinforcement learning. (cs_lichao@mail.scut.edu.cn

    Jiang Jun: born in 1994. PhD candidate. His main research interests include machine learning, cloud computing, data stream classification, and fuzzy system. (csjun.jiang@mail.scut.edu.cn

    Tang Quan: born in 1997. PhD candidate. His main research interests include computer vision and deep learning

    Chen Weiming: born in 1964. Bachelor. His main research interest includes cloud computing. (atiuer@163.com

    He Fengwen: born in 1980. Master. Her main research interest includes cloud computing. (moshefengwen@163.com

  • 摘要:

    随着云计算技术的不断发展,越来越多的企业和组织开始采用跨云的方式进行IT交付.跨云环境可以更有效地应对传统单云环境资源利用率低、资源受限以及供应商锁定等问题,并对云资源进行统一管理.由于跨云环境中资源具有异构性,导致跨云任务调度变得更为复杂.基于此,如何合理地调度用户任务并将其分配到最佳的跨云资源上执行,成为了跨云环境中需要解决的重要问题.拟从跨云环境的角度出发,探讨该环境下任务调度算法研究的进展及挑战.首先,结合跨云环境特征将云计算分为联盟云、多云环境并进行详细介绍,同时回顾已有的任务调度类型并分析其优缺点;其次,根据研究现状选取代表性文献对跨云环境下任务调度算法进行整理、分析;最后探讨了跨云环境下任务调度算法研究中的不足和未来的研究趋势,为跨云环境下任务调度算法的进一步研究提供了参考.

    Abstract:

    As cloud computing technology advances continuously, there are a growing number of enterprises and organizations choosing the inter-cloud approach to apply on IT delivery. Inter-cloud environments can efficiently solve problems such as low resource utilization, resource limitation, and vendor lock-in in traditional single-cloud environments, and manage cloud resources in an integrated model. Due to the heterogeneity of resources in the inter-cloud environment, which will complicate the scheduling of inter-cloud tasks. Based on the current status, how to logically schedule user tasks and allocate them to the most suitable inter-cloud resources for execution has developed to be an important issue to be solved in the inter-cloud environment. From the perspective of the inter-cloud environment, we discuss the progress and future challenges of research on the task of scheduling algorithms under this environment. Firstly, combined with the characteristics of an inter-cloud environment, cloud computing is divided into federated cloud and multi-cloud environments and introduced in detail. Meanwhile, the existing task scheduling types are reviewed and their advantages and disadvantages are analyzed. Secondly, based on the classification and current research procedure, representative documents are selected to analyze the algorithms for task scheduling on inter-cloud. Finally, shortcomings in research on algorithms for task scheduling in inter-cloud and future research trends are discussed, which provide a reference for further research on inter-cloud task scheduling.

  • 计算机系统模拟器[1]是运行于宿主机上的软件,用于模拟目标机器的硬件和软件环境,便于使用者研究目标机器的架构与执行过程,减少硬件成本. 嵌入式领域对于模拟器的需求量较大,并且在可扩展性和精确度方面有较多要求. 因此,如何基于现有的模拟器快速开发原型并且在保证正确性的同时具有较好的执行效率是一个值得研究的问题.

    目前的模拟器从精确度方面可以分为功能级、指令级、周期级. 功能级保证其执行结果与目标机器相同,不考虑执行过程的精确性,在性能上表现最好,接近宿主机的执行速度,大多使用二进制翻译等技术提升性能,例如QEMU[2]. 指令级保证每条指令按顺序全部执行,不考虑指令周期和流水线的问题,大多使用即时编译(just-in-time compilation, JIT)等技术提升性能. 周期级保证指令周期精确,可以仿真指令流水线,执行速度最慢,但提供更多执行细节信息,例如gem5[3]. 考虑到嵌入式开发中对周期精确的需求,本文选择基于gem5进行研究. gem5是一个开源的计算机架构模拟器,由密歇根大学的m5项目和威斯康星大学的GEMS项目合并而来,在学术界和工业界应用广泛. gem5是模块化并以事件驱动的周期精确模拟器,可扩展性强. gem5的CPU模块采用解释执行技术,其译码模块和指令集实现独立于CPU模块,可以与不同精确度的CPU模型相结合. 以不考虑访存延迟和流水线的AtomicSimpleCPU模型为例,主要有3个步骤:取指、译码和执行. 其中,译码过程是由各个指令集架构中的译码模块负责.

    gem5中的指令集描述语言可以半自动地生成指令集功能代码,但需要开发者手动处理指令编码的判断并为指令编写模板替换函数. 对于复杂的指令编码,手动处理指令编码的判断过于繁琐并且难以得到性能最优的实现. 没有统一的指令模板替换函数导致逻辑复杂且存在冗余,总体开发效率较低. gem5在取指过程后会由译码模块对指令编码进行预解析,之后再调用函数解析完整的指令编码,这2个解析过程存在部分重复. 此外,在实现指令集和译码模块后还需要对模拟器进行功能测试,但一些指令集没有提供公开的标准测试集,这种情况下开发者需要根据指令集文档自行编写测试程序. 其中,测试用例的编写依赖于指令操作数的取值范围描述和指令的功能描述. 因此,可以依据gem5中所使用的指令集描述语言来生成功能测试中的部分数据,提高开发效率.

    前人[4-5]提出了一些指令集描述方法和译码过程的优化算法,但不易与现有模拟器相结合,也没有针对gem5进行优化. 目前还没有一套为现有模拟器提供的从指令集描述到生成具体实现和测试用例的完整方案. 这对于有自定义的指令需求的用户来说,在模拟器性能和项目开发效率方面有所欠缺.

    本文的工作难点在于根据统一的指令集描述语言提供一个完整的开发与测试方案,并针对gem5优化译码过程. 用户可以根据指令集文档直观地描述出所有指令的信息,得到自动生成的指令集实现代码、译码模块代码和功能测试用例.

    gem5原本未支持Cortex-M3指令集架构,本文实现了该指令集架构并引入了优化. 主要工作包括指令集功能实现和内存管理单元的修改,难点在于优化译码决策树和译码模块,意义在于提供一种更高效的指令集实现方案以及增加gem5对嵌入式芯片的仿真支持.

    本文方案与gem5原方案的流程比较如图1所示. 本文方案包括3个阶段,首先是用词法和语法分析指令集描述文件,之后是根据指令的编码描述生成译码决策树,最后是使用统一的模板替换规则生成指令功能代码和译码模块代码. 与原方案相比,本文方案重新设计了指令集描述文件格式,修改了模板替换的逻辑,增加了译码决策树生成功能并优化译码模块. 此改进的作用在于简化指令定义,自动化生成译码决策树和译码模块代码,优化译码执行时间,提升开发效率.

    图  1  本文方案与gem5原方案的比较
    Figure  1.  Comparison of our scheme and original gem5 scheme

    本文的主要贡献包括3个方面:

    1) 设计了一种指令集描述语言和一个基于gem5的指令集代码生成方案. 根据指令集的编码描述和功能描述,自动为模拟器生成指令集和译码模块代码,提升模拟器性能和开发效率.

    2) 提出了一个针对gem5优化的译码决策树构建算法. 该算法基于前人的算法进行扩展,并减少了gem5中指令编码预解析阶段的重复判断,提升模拟器运行性能.

    3) 实现了一个指令集功能测试框架. 根据指令的测试描述,使用框架中的模板为每条指令生成功能测试用例,在gem5上运行测试程序并输出测试报告.

    前人的研究[4-5]提到很多针对处理器或系统仿真的描述语言的研究可以用于生成指令集功能的描述,例如Pydgin[6], LISA[7], nML[8],但这些不是针对译码过程和指令功能的描述,也不易结合到现有的模拟器实现中. 本文方案主要基于gem5的指令集描述语言进行扩展,部分指令描述的设计参考了上述描述语言.

    目前一些研究提出了构造决策树来优化译码分支的方法[9-11],但在处理复杂指令结构时存在一些不能成功构建决策树的情况. Okuda等人[12]基于前人工作提出了对于不规则指令编码的译码分支优化算法,解决了复杂指令结构处理中的问题,可以生成平均高度低且内存占用小的决策树,并在ARM和MIPS指令集上取得了较好的结果. 此算法可以用于自动化构建处理器仿真[13],此外还有研究分析了译码决策树的开销问题[14]. 本文基于此算法构造译码决策树,并针对gem5译码模块做出优化,构建多个决策子树来配合gem5的处理流程,提升译码模块性能.

    指令集功能测试用于检测指令功能是否正确,例如检查单条指令执行前后的寄存器和内存的读写情况或者多条指令的处理器流水线情况[15]等. RISC-V提供了一套标准测试集[16],通过模板构建测试用例,能够测试单条指令的功能. 本文搭建的指令功能测试框架中测试用例的设计参考了此测试集.

    gem5中已经实现了一个领域特定语言(domain specific language, DSL),用于描述指令集中各个指令的功能及其译码函数,文件后缀为. isa. 在编译过程中,项目构建工具SCons[17]会调用Python脚本对所编译的目标架构的*. isa文件进行词法和语法分析,从而生成包含指令定义和译码函数的C++文件,最后SCons将这些生成的文件添加到编译任务中.

    在实际使用中,我们发现该指令集描述语言存在2个问题:

    1) 译码函数主要由开发者手动编写. 当指令数量较多且复杂时开发效率不高,并且手动编写的译码函数可能存在冗余,在执行效率方面有待优化.

    2) 用于生成C++代码的模板替换逻辑和待替换的数据没有分离. Python脚本会使用函数exec()来处理这些字符串. 然而这些模板替换逻辑非常类似,这种实现方式不仅增加了不必要的复杂性,而且不易维护.

    本文参考了该指令集描述语言的实现,并提出了一种包含指令编码和指令功能信息的指令集描述语言,可以自动生成译码函数并自动完成指令功能代码与C++代码模板的替换. 此外,对于不公开提供功能测试套件的指令集或是添加了自定义指令的情况,考虑到自行编写指令功能测试时很多所需的信息可以由指令集描述提供,本文方案允许标注操作数限制等指令测试所需的信息,支持生成指令的功能测试用例.

    本文方案包括编码描述、功能描述和测试描述3部分. 这里以ARM Cortex-M3的AND指令为例来说明,如图2所示.

    图  2  指令描述示例
    Figure  2.  An example of instruction description

    编码描述用于说明指令编码的结构与限制,用于构造译码决策树. 本文方案将编码抽象为由固定位段和可变位段组成的结构,其中可变位段的取值可能存在一些限制. 下面结合实例来说明其具体实现.

    指令编码是一串由0、1和小写字母组成的字符串. 其中,0和1表示指令编码中取值确定的位,小写字母表示指令编码中取值可变的位. 同一小写字母必须相连,表示一个可变的位段. 例如,指令t1_and_reg的编码为0100000000mmmddd,说明第0位和第2~9位为0,第1位为1,第10~12位为一个可变位段{m},第13~15位为另一个可变位段{d}.

    对于不符合要求的编码情况,使用EXCLUSION语句列出可变位段的所有例外表示,将其作为该指令编码的排除条件. 例如,指令t1_and_imm的编码排除了{n}为13到15和{d}为13或15的情况.

    功能描述用于说明指令功能的实现和标注信息,用于生成指令功能代码和提供仿真所需的控制信息和计数信息. 本文方案将功能抽象为由特定功能代码和模板组成的结构. 下面结合实例来说明其具体实现.

    代码块由{{和}}来表示,在代码块中可变位段可以作为数值来使用,REPLACE_MAP中定义替换词可以在前后加上@作为代码片段来使用.

    指令构造函数代码以代码块形式定义在指令编码描述结束后,用于为指令基类定义的操作数变量根据实际编码来赋值. 例如,指令t1_and_imm的基类为DataImm,其中定义了操作数寄存器的序号、立即数、其他参数和功能函数等.

    指令功能函数代码存放在一个字典结构中,代码块所对应的序号会作为参数传入FORMAT语句. FORMAT语句用于处理C++模板替换过程,定义在构造函数描述之后. 例如,CODE { 0: {{ int a=0; }} }说明指令功能代码为int a=0,其对应序号为0.

    FORMAT语句会根据指令类型的格式从FORMAT_MAP中得到对应的C++代码模板和参数格式,之后通过字符串替换生成相应的指令类. 例如,指令类型AND的格式为PredProcessOp,其C++代码模板为BasicDeclare, BasicConstructor, PredProcessExecute,分别用于指令类的声明、构造函数和功能函数的生成, 其参数格式为['process_code']. 指令t1_and_imm将[0, 3]传入FORMAT语句,即将序号为0和3的代码拼接后的值作为process_code.

    测试描述用于说明指令功能测试的参数要求,用于辅助生成指令功能测试. 本文方案将功能测试抽象为由测试参数和测试模板组成的结构. 下面结合实例来说明其具体实现.

    指令测试的所需的信息由TEST语句负责处理,用于生成该指令的功能测试用例. TEST语句的参数对应于该指令的汇编表示,例如指令t1_and_imm的汇编表示包括可选的标记S和条件cond,以及2个寄存器类型Rx和1个立即数类型Constant. 类型Rx和类型Constant定义于TEST_MAP中,设置了其取值范围和函数名,在测试用例生成时会调用类型所对应的函数来生成数值.

    本节说明了译码决策树生成过程中涉及的基本概念,并给出了译码决策树生成算法的具体描述. 本文方案对前人所提出的算法[12]进行了改进,并结合gem5的特性实现了针对性优化.

    本节定义决策树的输入与输出形式,以表1中的译码项来说明基本概念. 令指令集中的1条指令编码对应1个译码项,算法的输入为1个译码项集合,算法的输出为由该译码项集合生成的1个译码决策树.

    表  1  译码项示例
    Table  1.  An Example of Decoding Entries
    名称 m编码 d排除条件 C
    A00XXXX00
    B0100X0XX
    C010001XX
    D010011XX
    E01010100
    F01010101
    G01110111
    H1000XX00
    I10100XXX({6, 7}, 00)
    ({6, 7}, 01)
    J10100X00
    K10100X01
    L11000XXX
    M11100XXX
    下载: 导出CSV 
    | 显示表格

    译码项e包括名称m、编码d和排除条件集合C,记为e=(m,d,C). 其中,译码项的名称和编码是唯一的,排除条件可以为0或多个,译码项集合记为EE={e}.

    本文方案将编码定义为d{0,1,X}n. 其中,X表示该位可以与0或1相匹配,用于表示可变位段,编码长度为n位. 给定一个位串s{0,1}n,定义位串s与编码d的匹配规则为i{0,1,,n1},当且仅当s[i]=d[i]d[i]=X时,位串s与编码d匹配,记为sd. 若该编码所对应的译码项e无排除条件,则位串s与译码项e相匹配,记为se. 例如,位串00001100匹配编码00XXXX00.

    为了能够编码更多指令,在设计指令集时某些编码被添加了排除条件,即对编码中的可变位段设置了取值限制. 若位串的某些可变位段等于特定常数时,则与该编码不匹配.

    一个排除条件包括一个下标集合Iex和一个排除项pex,记为(Iex,pex). 其中,下标是从小到大排列,且与排除项的各位按序一一对应,即将应排除的值的第i位记为pex[i]. 本文方案定义位串s使得排除条件(Iex,pex)成立的判定规则为:iIex,当且仅当s[i]=pex[i]时,位串s使得排除条件(Iex,pex)成立,记为exclude(s,(Iex,pex)). 例如,译码项的排除条件({6,7},00)表示应排除第6位和第7位都为0的位串.

    因此,本文方案定义位串s与具有排除条件的译码项ec=(mc,dc,Cc)的匹配规则为:当且仅当sdc(Ic,pc)Cc,¬exclude(s,(Ic,pc))时,位串s与译码项ec相匹配,记为sec. 例如,位串10100000虽然与名称为I的译码项和名称为J的译码项的编码匹配,但由于名称为I的译码项的排除条件({6,7},00)成立,所以该位串是与名称为J的译码项匹配.

    译码过程是通过逐步查询位串中特定位段的值来获得该位串所匹配的译码项. 本文将这个过程用译码决策树来表示,记为T=(VT,ET). 其中,VT表示节点的集合,ET表示边的集合. 每个节点有唯一标识符,记为nid. 本文将节点分为内部节点和叶节点. 内部节点表示译码选择分支,包含一个特定位的下标集合I和一个元组集合,每个元组由标签和子节点组成,记为(p,vchild). 其中,下标集合中的元素从小到大排列,且与标签的各位按次序一一对应,l为下标集合的长度,标签 p{0,1}l为叶节点,其表示译码查询所匹配的最终结果,包含一个译码项.

    译码决策树示例如图3所示. 内部节点由包含其标识符nid和下标集合I的方框表示,边框为弧线表示该节点在优化过程中被修改过. 叶节点由包含其标识符nid、译码项名称m和译码项编码d的方框表示. 每条从内部节点所出的边的标签 p 和所指向的子节点 vchild由该内部节点中的各个元组(p,vchild)得出.

    图  3  译码决策树示例
    Figure  3.  An example of a decoding decision tree

    本节详细说明了构造译码决策树的算法. 首先,分析了前人的工作[12]并提出了本文方案的译码决策树构造算法,扩展了前人对于内部节点的构造方法并增加了2个优化策略. 此外,本文方案还针对gem5的译码过程对译码决策树和生成的代码做了优化. 最后,给出一个示例来说明每种优化策略所针对的情况和优化效果.

    Okuda等人[12]的算法主要包含3个过程:1) 过程 MakeTree根据给定的译码项集合E递归创建译码决策树的节点及其子节点. 2) 过程MakeNode创建一个无排除条件的内部节点,并将译码项集合E划分为多个子译码项集合,为每个子译码项集合创建子译码决策树. 3) 过程MakeConditionNode创建一个有排除条件的内部节点,并将译码项集合根据是否符合排除条件划分为2个子译码项集合,分别为这2个子译码项集合创建子译码决策树. 此外,该算法是通过与指令长度相等的编码格式来划分子译码项集合. 例如,使用以0开头和以1开头的4位编码格式来划分包含编码为0101和1101的译码项集合.

    Okuda等人[12]的算法存在2个问题:

    1) 过程MakeConditionNode在划分子译码项集合时仅根据其是否符合排除条件分为2类. 对于不符合排除条件但也可被区分的子译码项来说,可能会再次处理该相同位段,导致译码决策树的高度增加.

    2) 算法根据与指令长度相等的编码格式来划分译码项集合,不便于添加额外的优化策略,例如处理个别位的合并或移除操作.

    本文方案的算法基于Okuda等人[12]的算法做了扩展和优化. 在构造内部节点时,本文方案使用下标集合I所确定的多个标签来划分译码项集合,每个译码项根据其编码在该下标集合I处的取值情况划分到不同的标签p下. 本文方案为每个标签的译码项集合构造译码决策树,并将其作为该内部节点的子树. 此外,本文方案修改了过程MakeConditionNode的实现,使其能够根据排除条件的下标集合Iex来区分多个子译码项集合. 并且,本文方案以能够区分出最多子译码项集合的下标集合I来创建节点,这样可以避免重复判断相同位段的值并减少译码决策树的高度.

    本文方案的算法对过程MakeNode和过程 MakeConditionNode做了扩展和优化,见算法1.

    算法1. 译码决策树构建算法.

    输入:译码项集合E、初始译码决策树T

    输出:原地更新后的译码决策树T.

    过程MakeTree(E,T)

    ① 若|E|=1,则创建叶子节点并返回;

    (result,node)MakeNode(E,T)

    ③ if result=FAILED

    ④ return MakeConditionNode(E,T)

    ⑤ else

    ⑥  return node

    ⑦ end if

    过程MakeNode(E,T)

    IsigGetSignificantBits(E)

    ② 若Isig=,则返回(FAILED,nil)

    (isOpt,Isig,Info)SelOptBits(Isig,E)

    ④ 根据Isig更新待处理的下标集合Iunproc

    (t1,Tchild)MakeChild(Info,Iunproc)

    ⑥ if t1=True

    ⑦ (t2,Ire,Infore)ReselOptBits(Isig,E)

    ⑧ if t2=True

    ⑨  isOptTrue

    ⑩   IsigIre

    ⑪  (t3,Tchild)MakeChild(Infore,Iunproc)

    ⑫ end if

    ⑬ end if

    nodeCreateNode(Isig,Tchild,isOpt)

    ⑮ 根据Tchild更新T

    ⑯ return (OK,node).

    过程 MakeConditionNode(E,T)

    (Iex,Info)SelConditionBits(E)

    ② 根据Iex更新待处理的下标集合Iunproc

    TchildMakeChild(Info,Iunproc)

    nodeCreateConditionNode(Iex,Tchild)

    ⑤ 根据Tchild更新T

    ⑥ return node.

    过程MakeNode用于创建一个不使用排除条件的内部节点. 首先,过程GetSignificantBits根据译码项集合E找出一个下标集合Isig,使得所有译码项可以用标签区分. 过程SelOptBits根据下标集合划分各个标签对应的子译码项集合,将结果记为子节点信息Info. 之后检查是否可以通过扩增下标集合以减少译码决策树高度,如果可以优化,则更新下标集合Isig和子节点信息 Info. 过程MakeChild会调用过程MakeTree并根据子节点信息和尚未处理的下标集合来递归创建子节点译码决策树,将结果记为Tchild. 如果创建的子节点译码决策树中存在已优化的节点,则需要通过过程 ReselOptBits再次更新下标集合Isig、子节点信息Info和子节点译码决策树 Tchild. 最后,过程CreateNode创建此内部节点,记录其下标集合Isig和子节点译码决策树Tchild,并设置节点类型是否为已优化节点. 图4展示了优化后的效果,将下标2增加到根节点的判断中,减少了名称为G的译码项和名称为M的译码项所在的层数.

    图  4  使用过程MakeNode优化的译码决策树
    Figure  4.  The decoding decision tree optimized by processMakeNode

    过程MakeConditionNode用于创建使用排除条件的内部节点. 首先,过程SelConditionBits根据译码项集合E从各个译码项的排除条件中找出一个排除条件(Iex,pex),使得根据此下标集合Iex划分得到的标签数量最多,将结果记为子节点信息 Info. 这里没有使用过程MakeNode中的优化方法是因为使用排除条件所得到的标签中一定包含default,之前的优化不适用于这种情况. 之后执行过程 MakeChild,将结果记为Tchild. 最后,过程CreateConditionNode创建此内部节点,记录其下标集合Iex和子节点译码决策树Tchild,并设置节点类型是否为使用排除条件的节点. 图5说明了Okuda 等人[12]的算法对于条件节点的处理,仅判断是否满足排除条件,未考虑相同下标对应多个可区分编码的情况,导致冗余判断. 本文使用下标集合来划分子译码项集合,因此在确定下标集合后,其划分方式与常规内部节点相同,如图3所示.

    图  5  Okuda等人所提算法的条件节点
    Figure  5.  The condition node of Okuda et al’s algorithm

    此外,本文方案新增了过程 OptimizeTree、过程OptimizeNode、过程FixNode和过程FixTree对译码决策树进行整体优化和调整,见算法2.

    算法2. 译码决策树优化算法.

    输入:译码决策树T、译码决策树节点N

    输出:原地更新后的已优化译码决策树T.

    过程OptimizeTree(N,T)

    ① 若N是叶子节点,则返回;

    OptimizeNode(N,T)

    ③ for all NchildN的子节点集合

    ④  OptimizeTree(Nchild,T)

    ⑤ end for

    过程OptimizeNode(N,T)

    IoptGetOptimizableBits(N,T)

    ② 若Iopt为空,则返回;

    Tchild

    ④ for all NleafN的叶子子节点集合

    ⑤  (t3,Tres)GetLeafPattern(Nleaf)

    ⑥ 若t3=True,设置Nleaf为多标签节点;

    ⑦ 根据Tres更新Tchild

    ⑧ end for

    ⑨ for all iIopt

    ⑩  for all NinnerN的内部子节点集合

    ⑪   (t4,Tres)GetInnerPattern(Ninner,i)

    ⑫  若t4=True,将NinnerT中移除;

    ⑬  根据Tres更新Tchild

    ⑭  end for

    ⑮ end for

    UpdateOptimizableNode(T,N,Iopt,Tchild).

    过程FixTree(N,T)

    ① 若N是叶子节点,则返回;

    FixNode(N,T)

    ③ for all NchildN的子节点集合

    ④ FixTree(Nchild,T)

    ⑤ end for

    过程FixNode(N,T)

    ① 在N的所有多标签子节点中查找满足合并条    件的Nmulti

    ② 若不存在Nmulti,则返回;

    ③ 修改NNmulti的分支标签并更新T.

    过程OptimizeTree和过程OptimizeNode用于前序遍历译码决策树中的节点并做优化. 首先,过程GetOptimizableBits 检查节点 N 的内部子节点的下标集合Isig是否仅包含1个元素,将满足条件的下标集合取并集作为待选下标集合. 遍历待选下标集合,检查其他各个内部子节点下的所有译码项是否在该下标处取值相同. 如果存在这样的下标,则将其加入到Iopt中. 之后,对于节点N的每个叶子子节点Nleaf,使用过程 GetLeafPattern修改指向此Nleaf的标签,将结果更新到Tchild中. 遍历下标集合Iopt,对节点 N的每个内部子节点Ninner用过程 GetInnerPattern确认是否需要移除此内部节点,并修改指向此Ninner或其子节点的标签,将结果更新到Tchild中. 最后过程UpdateOptimizableNode修改节点N的下标集合为Iopt,更新子节点译码决策树Tchild,并设置节点类型是否为已优化节点. 图6展示了优化后的效果,将下标4增加到2号节点的判断中,减少了名称为C的译码项和名称为D的译码项所在的层数.

    图  6  在图4的基础上使用过程OptimizeTree优化的译码决策树
    Figure  6.  The decoding decision tree optimized by process OptimizeTree based on fig. 4

    过程FixTree和过程FixNode与前2个过程类似,用于修正指向译码决策树中叶子节点的边,将重复分支的标签合并为default. 图7展示了优化后的效果,由于根节点下的分支数已达到最大且仅有名称为A的译码项对应多个标签,所以本文方案将这些标签合并为default.

    图  7  在图6的基础上使用过程FixTree优化的译码决策树
    Figure  7.  The decoding decision tree optimized by process FixTree based on fig.6

    在gem5的实现中,CPU在译码阶段会先将取指阶段得到的数据传给译码模块,然后调用译码模块来解析指令并得到一个基类指针,在执行阶段会调用其所指向的具体指令对象的执行函数,具体处理流程如图8所示.

    图  8  gem5中的译码和执行流程
    Figure  8.  The decode and execute processes in gem5

    译码模块中的指令解析过程分为2个阶段:预解析阶段(图8 ①)和译码阶段(图8 ②). 首先,预解析阶段的函数 moreBytes() 会根据大小端和指令长度对取指阶段得到的数据块进行处理,得到符合译码要求的具体指令位串. 之后,译码阶段会调用译码函数对该指令位串进行解析. 其中,译码函数的源文件是根据指令集描述语言在编译过程中生成的,其函数体为一个多层嵌套的switch-case结构.

    指令长度是根据位串中特定位的值来判断,这个过程与之后译码函数中的操作存在重复,即预解析阶段和译码阶段都会对同一段指令编码进行判断. 以Cortex-M3指令集为例,16位Thumb指令和32位Arm指令是由指令编码的前5位来区分的,因此预解析阶段和译码阶段都会判断这前5位. 此外,条件指令IT因为其条件执行功能涉及对译码模块的操作,所以会在预解析阶段中被完整解析,但在之后的译码阶段仍会被再次解析以获得一个指向该指令对象的指针.

    为了解决上述问题,本文方案将原方案的译码函数拆分为多个译码函数,并使用函数指针优化调用过程. 具体来说,本文方案的算法会根据指令集描述文件中设置的指令长度下标集合及其取值情况来构造多个译码决策树,从而生成多个译码函数. 此外,本文方案的算法会自动生成预解析阶段所需的指令长度判断函数,以便根据判断结果选择对应的译码函数.

    本文方案搭建了一个对指令进行功能测试的框架,能够根据指令集描述为每条指令生成功能测试用例,并在gem5上运行所生成的测试程序得到测试报告. 该框架主要包括3部分:操作数数据生成、期望值数据计算和测试程序模板.

    以ARM Cortex-M3的AND指令为例,其操作数生成和期望值计算见算法3. 该指令的汇编表示有2种,即AND{S}{cond}Rn,#constant和AND{S}{cond}Rn,Rm,shift. 其中,S表示是否更新状态位,cond表示执行的条件,Rn表示寄存器,#constant表示满足特定格式的立即数,Rmshift表示寄存器及其移位信息.

    算法3. 功能测试用例生成算法.

    输入:指令测试描述info、测试范围range和测试用例数量num

    输出:测试用例列表G.

    过程GenData(info,range,num)

    ① 根据info查找各操作数的生成函数,按操作    数顺序将生成函数添加到opFuncList

    ② 初始测试用例的操作数列表opsList

    ③ for all fopFuncList

    ④ 将f(range,num)生成的一组具体操作数添     加到opsList

    ⑤ end for

    ⑥ for opsopsListT

    ⑦  expectsGenExpAND(info,ops)

    ⑧ 将(expects,ops)添加到G

    ⑨ end for

    ⑩ return G.

    过程GenExpAND(info,ops)

    (S,apsr,op1,op2)ParseOps(info,ops)

    expExecCheck(apsr)

    expResop1&op2

    ④ if S=True

    ⑤ expApsrSetNewApsr(apsr,expRes)

    ⑥ end if

    ⑦ return (expExec,expRes,expApsr).

    过程GenData用于生成操作数数据,根据指令测试描述info、测试范围 range 和测试用例数量 num 来随机生成操作数,并在边界附近多生成一些值,之后调用过程GenExpAND生成期望值expects,最后返回测试用例列表G.

    过程GenExpAND用于生成期望值数据,根据指令测试描述info和操作数ops来计算期望值expects,最后返回结果.

    此外,本文方案准备了一系列测试程序模板,以宏的方式组织汇编指令,能够为每条指令生成相应的汇编文件作为测试程序. 每个用例以宏的方式呈现,例如TEST_AND_R_OP2C(testnum,inst,expExec,expRes,expApsr,Apsr,Rn,Constant)是用于AND指令的第1种汇编表示的宏,参数包括用例编号、被测指令、期望值和操作数.

    本文实验环境的CPU为Intel Core i5-10400 @ 2.90 GHz,内存为32 GB,系统为Linux Mint 20.1 Kernel 5.4.0-89-generic. 本文的gem5配置为系统调用仿真(system call emulation, SE)模式,CPU模型为AtomicSimpleCPU,编译版本为fast. 本文方案中的指令集描述语言使用SLY[18]作为词法和语法分析工具 1,并且修改了gem5的编译脚本,将本文方案整合到项目的构建过程中.

    实验选择Cortex-M3指令集作为待描述的指令集,该指令集在gem5项目中未做实现. 实验分别使用gem5原方案与本文方案实现该指令集,并比较这2种方案的性能以及所生成的代码的运行性能. 此外,在实验前使用第4节的功能测试框架为其生成了指令功能测试用例并确保其能正确执行,即保证所实现的Cortex-M3指令集的译码和执行过程是功能正确的.

    指令集中每条指令编码的查找路径的长度是在译码决策树中根节点到其所对应叶节点的边数,即叶节点v在译码决策树T中的高度,记为HT(v). 将各译码决策树中叶节点高度的平均值记为¯HT,将译码决策树集合中所有叶节点高度的平均值记为¯H.

    比较gem5原方案与本文方案所生成的译码决策树高度,结果如表2所示. Cortex-M3指令集共有226个指令编码. 原方案生成的译码决策树中叶节点的最大高度为10,最小高度为3,总平均高度为5.52. 本文方案共生成4个译码决策树和1个IT指令的译码函数,总平均高度为2.87. 其译码范围是根据预解析阶段所处理的指令前5位取值以及是否为IT指令来划分的,表2中标明了各个译码决策树负责处理的译码范围. 其中,16位指令的译码决策树包含指令编码数量最多,32位指令(以11101开头)的译码决策树的平均高度¯HT最大. 与依赖开发者手动构造译码函数的原方案相比,本文方案在译码决策树高度方面的优化效果较好,并且很大程度上提升了开发效率.

    表  2  在Cortex-M3指令集下2种方案所生成的译码决策树高度的比较
    Table  2.  Comparison of the Height of the Generated Decoding Decision Tree Between Two Methods Under Cortex-M3
    方案译码范围指令编码数量maxHminH¯HT¯H
    gem5原方案所有指令2261035.525.52
    本文方案16位指令79412.232.87
    32位指令(以11101开头)40523.37
    32位指令(以11110开头)45523.11
    32位指令(以11111开头)61613.23
    IT指令1000
    下载: 导出CSV 
    | 显示表格

    此外,统计这2种方案生成译码决策树及其C++源文件的时间和编译后的可执行文件gem5.fast的代码大小,结果如表3所示. 原方案需要开发者手动编写译码决策树,并且需要将模板替换逻辑与指令定义写在同一指令集描述文件中,在解析的同时处理替换过程,耦合度较高. 本文方案仅将指令定义写在指令集描述文件中,之后根据编码信息自动生成译码决策树和C++源文件,所用的总时间比原方案减少了约64%,代码大小减少了约407 KB.

    表  3  在Cortex-M3指令集下2种方案的性能比较
    Table  3.  Comparison of the Performance Between Two Methods Under Cortex-M3
    方案指令集描述文件解析时间/s译码决策树生成时间/s源文件生成时间/s总时间/s代码大小/B
    gem5原方案 不能分阶段统计 0.28213238308
    本文方案0.0730.0220.0060.10112831270
    下载: 导出CSV 
    | 显示表格

    在gem5中运行一些测试程序并比较2种方案的运行性能. 实验使用的测试程序来自Embench[19],这是一个面向嵌入式设备的开源测试集,它包含22个测试程序,支持对真实机器和模拟器的测试. 该测试集原本是通过远程调试器来获取测试函数前后的指令周期数来评估处理器速度,而本文所研究的译码模块优化不影响模拟器中的周期数,所以我们改为获取测试函数前后的实际时间来评估模拟器译码模块的性能,即通过shell命令获取宿主机时间. 为减少额外操作对时间的影响,我们将默认的测试循环次数由1改为10,

    每个用例用时大约在10 s左右. 此外,gem5原本使用了一个译码表来缓存相同地址或相同指令编码的译码结果. 由于实验所用的测试程序都依赖于循环,并且在开始计时前会先运行几轮来预热缓存,导致gem5实际运行时2种方案几乎没有区别. 这与本文实验目的不符,因此我们在测试时关闭了译码缓存功能.

    测试结果如图9所示,原方案平均用时10.24 s,本文方案平均用时8.91 s,比原方案减少了大约13%.

    图  9  在Cortex-M3指令集下2种方案在gem5中运行性能
    Figure  9.  Execution performance of two methods in gem5 Under Cortex-M3

    本文方案的译码决策树生成算法采用划分编码位段的方式,通过计算位段的匹配情况和使用多个优化策略来构建树的节点,从而减少译码过程的时间开销.

    译码过程的搜索时间开销与译码决策树的高度呈正相关. 树的每个内部节点所处理的位数n 决定了该节点的子节点数量上限2n. 对于相同的指令数量,树中内部节点指向新子节点的分支数量越多,树的高度越低. 因此在树的构造过程中需要充分考虑指令长度和编码限制条件,处理节点之间的合并优化.

    为进一步说明改进效果,我们使用本文方案为RV64GC指令集生成了译码决策树并与gem5原方案已实现的译码函数做比较,结果如表4所示. RV64GC指令集的编码设计较为规整,较少使用编码的排除条件,因此其译码决策树的高度整体较为平均. RV64GC实验结果与Cortex-M3类似,本文方案有效降低了译码决策树的最大高度并且优化了平均高度.

    表  4  在RV64GC指令集下2种方案对于所生成的译码决策树高度的比较
    Table  4.  Comparison of the Height of the Generated Decoding Decision Tree Between Two Methods Under RV64GC
    方案译码范围指令编码数量maxHminH¯HT¯H
    gem5原方案所有指令197523.483.48
    本文方案16位指令(以00开头)7111.002.08
    16位指令(以01开头)8211.47
    16位指令(以10开头)12311.58
    32位指令160312.24
    下载: 导出CSV 
    | 显示表格

    本文方案支持使用gem5中提供的接口函数和类型定义(如向量操作),可以用于实现其他指令集架构,例如MIPS和Cortex-A等. 从RV64GC的实验结果可以看出,自动化生成和优化的预解析阶段的辅助函数和译码决策树可以在一定程度上降低译码决策树的平均高度,提升执行效率. 此外,本文方案的指令集描述文件更易被编写与修改,开发效率较高.

    本文方案的编码描述和译码决策树生成算法具有通用性,能够应用于指令译码过程,而功能描述和代码生成阶段则与模拟器的具体实现关系紧密. 若要将本文方案推广到其他模拟器,则还需从实现角度考虑模拟器是否可以采用这种译码和执行流程,以及这种模板替换策略能否与模拟器其他模块适配.

    本文方案解决了模拟器的指令集实现及其功能测试的开发效率问题并提升了gem5译码模块的性能,为添加新指令集或自定义扩展指令的开发与测试提供了一套完整方案. 本文方案设计的指令集描述中定义了指令集的编码描述、功能描述和测试描述,用于生成模拟器的译码模块代码、指令集实现代码和指令功能测试用例. 本文提出了一个针对gem5优化的译码决策树构造算法和一个指令功能测试框架. 该算法使用指令的特定位和排除条件位来判断指令编码,并且允许根据gem5指令预解析阶段的条件划分各个决策树的范围,从而降低译码决策树的平均高度并且减少了原方案中的重复判断,提升执行性能. 此外,该指令功能测试框架可以根据指令集描述生成指令功能测试用例,提升开发效率.

    作者贡献声明:赵紫微为论文工作的主要完成人,负责实验设计与实施、论文撰写;涂航和刘芹审阅论文的内容并提出意见;余涛协助论文功能测试的软件实现;李莉对论文提出修改意见,完善论文思路和实验设计,负责论文审校.

  • 图  1   跨云环境对比图

    Figure  1.   Inter-cloud environment comparison diagram

    图  2   跨云环境下任务调度示意图

    Figure  2.   Schematic diagram of task scheduling in inter-cloud environment

    图  3   跨云环境整体分类

    Figure  3.   The whole classification of inter-cloud environment

    表  1   单云环境下常见的任务调度算法

    Table  1   Common Task Scheduling Algorithms in Single Cloud Environment

    算法调度机制优点缺点
    FCFS 将任务按照到达的先后顺序调度资源. 易于实现 性能有限
    Min_Min 将最小完成时间的任务分配到处理时间最短的资源上. 易于实现 资源利用率不高
    Max_Min 将最大完成时间的任务分配到处理时间最短的资源上. 易于实现 资源利用率不高
    MCT 将任务以任意顺序分配到具有最早完成时间的资源上. 任务完成时间短 任务总体执行时间长
    MET 将任务分配到具有最小时间花费的资源上. 任务处理速度快 资源分配不均
    RR 将任务分配到相同时间量的资源上. 易于实现、调度机制公平 性能有限
    ACO 模拟蚂蚁的觅食方式,采用正反馈机制,依据信息素寻找最短路径. 收敛效果较好 初期速度较慢,等待时间长
    PSO 模拟鸟群的觅食方式,粒子追随当前的最优粒子在解空间中搜索,通过迭代找到近似最优解. 易于实现、收敛速度快、效率高 易陷入局部最优
    GA 模拟自然生物进化过程,通过选择、交叉、变异等方式不断迭代寻找最优解. 可扩展性强、全局优化 易过早收敛、较为依赖参数
    SA 模拟固体退火过程,设定初始值不断迭代衰减得到近似最优解. 鲁棒性强、全局优化 收敛速度慢
    TS 模拟人类的记忆机制,引入禁忌准则来避免迂回搜索最终得到最优解. 能够跳出局部最优 较为依赖初始解、搜索时间长
    下载: 导出CSV

    表  2   联盟云环境下任务调度算法对比

    Table  2   Comparison of Task Scheduling Algorithms in Federated Cloud Environment

    算法来源算法描述优化目标工具特点
    文献[40] 通过成本决策函数的计算结果分配资源. 最大完成时间、成本 KVM (kernel-based virtual machine),OpenStack 优点:成本降低
    缺点:限制成本会影响调度策略
    文献[41] 利用代理将博弈论引入其中,迫使资源实体之间进行隐性协调,最终向纳什均衡解靠拢. 成本 ProtoPeer platform 优点:成本降低,可伸缩性强
    缺点:代理设计复杂
    文献[43] 将最大完成时间的任务分配到处理时间最短的资源上. 最大完成时间、负载均衡 BioNimbuZ,Amazon EC2 优点:任务完成时间减小
    缺点:未考虑环境中其他因素影响
    下载: 导出CSV

    表  3   异构公有云环境下任务调度算法对比

    Table  3   Comparison of Task Scheduling Algorithms in Heterogeneous Public Cloud Environment

    算法来源算法描述优化目标工具特点
    文献[46] 通过二进制整数规划选取成本最优的资源分配. 成本 AMPL ,CPLEX 优点:成本降低
    缺点:求解时间长,存在偏差
    文献[47] 利用适应度函数求导和变异的思想改进遗传算法. 最大完成时间 MATLAB 优点:任务完成时间减小
    缺点:未考虑环境中其他因素影响
    文献[48] 为工作流任务中部分关键路径分配子截止时间. 成本 Workflow Generator 优点:成本降低,有截止时间约束
    缺点:未考虑任务执行时间
    文献[49] 以多个随机键组成的向量作为输入并不断迭代,改进遗传算法减少调度中不必要的虚拟机数量. 最大完成时间、成本 Amazon EC2,Google
    Cloud Platform,Microsoft Azure,Java
    优点:成本降低,响应迅速,可拓展性强
    缺点:不支持工作流调度
    文献[50] 改进了遗传算法中的交叉及变异算子,允许云服务使用者根据偏好选择最优方案. 响应时间、成本、可靠性 QWS Dataset (2.0) 优点:响应迅速,可拓展性强,收敛速度快
    缺点:参数设置复杂
    文献[51] 基于云服务提供商的历史价格计算其平均值及趋势,动态预测未来价格. 成本 Amazon EC2 优点:成本降低,负载均衡
    缺点:需要大量时间收集云服务提供商的历时价格信息,未考虑环境中其他因素影响
    文献[52] 不断更新实际任务执行的信息,依据这些信息来动态调整资源
    分配.
    最大完成时间、能耗 自建模拟测试平台 优点:能耗降低
    缺点:未考虑环境中其他因素影响
    文献[53] 以最大完工时间和最小成本分别作为2个调度阶段的目标,将任务映射到合适的云资源上. 最大完成时间、成本、资源利用率 MATLAB 优点:实现了最大完成时间和成本之间的平衡
    缺点:实际调度性能未知
    文献[54] 以最大完成时间、成本和可靠性作为多目标调度策略的3个QoS指标,后根据数据传输顺序将工作流任务分配到适当的云资源上. 最大完成时间、成本、可靠性 Amazon EC2, Microsoft Azure,Google Compute Engine,Python 优点:性能得到提升
    缺点:未考虑虚拟机性能波动、能耗等问题
    文献[55] 使用预定义的优先级构建任务调度列表,后根据可靠性、成本、将任务分配给最优的资源. 最大完成时间、成本、可靠性 CloudSim 优点:架构新颖,性能较好,可靠性强
    缺点:公有云计费机制考虑简单
    文献[56] 基于正弦函数的变化趋势,调度算法早期倾向于收敛,后期倾向于多样性. 最大完成时间、成本、吞吐量、能耗、资源利用率、负载均衡 CloudSim,MATLAB 优点:优化目标全面,可靠性强
    缺点:实际调度性能未知
    文献[57] 基于成本模型、能量模型和性能模型改进遗传算法. 成本 CloudSim 优点:可降低大型和超大规模工作流的能耗
    缺点:未考虑环境中其他因素影响
    文献[58] 考虑预算约束的前提下,使最大完成时间最小化. 最大完成时间 优点:考虑了最大完成时间和成本之间的平衡
    缺点:实际调度性能未知
    下载: 导出CSV

    表  4   公有云、私有云混合环境下任务调度算法对比

    Table  4   Comparison of Task Scheduling Algorithms in Public Cloud and Private Cloud Hybrid Environment

    算法来源算法描述优化目标工具特点
    文献[63] 以成本为导向受截止时间约束. 成本 Amazon EC2, GoGrid, Java 优点:成本降低
    缺点:未考虑调度时间
    文献[64] 将工作流调度到私有云上,估算工作流完成时间,之后从公有云租用合适的资源并将其聚合到私有云. 成本 自建模拟测试平台 优点:成本降低
    缺点:未考虑环境中其他因素影响,实际调度性能未知
    文献[65] 在预计完成时间超过截止时间时,将开销最小、完成时间最短的任务调度到公有云上. 截止时间、成本 CloudSim 优点:成本降低
    缺点:任务级别需要考虑的因素过多
    文献[66] 基于染色体编码、评估、选择、交叉和突变的改进遗传算法. 最大完成时间、成本 Amazon EC2 优点:可减少成本,完成协调
    缺点:没有考虑任务执行时间变化的影响
    文献[67] 将最大成本的任务分配给私有云,当私有云资源不足时租用性价比最高的公有云资源. 任务完成数量、成本 Gaia Cluster 优点:安全性高
    缺点:仅考虑了独立任务
    文献[68] 结合绿色数据中心的收益、绿色能源的价格以及公共云中资源的价格执行最优任务调度. 成本 MATLAB 优点:成本降低
    缺点:未考虑环境中其他因素影响
    文献[69] 改进了NSGA-Ⅱ算法中基于帕累托最优的快速排序. 最大完成时间、成本 CloudSim 优点:成本降低
    缺点:未考虑环境中其他因素影响
    下载: 导出CSV
  • [1] 陈海波,夏虞斌,糜泽羽. 跨云计算的机遇、挑战与研究展望[J]. 中国计算机学会通讯,2017,13(3):30−34

    Chen Haibo, Xia Yubin, Mi Zeyu. Opportunities, challenges and research prospects of inter-cloud computing[J]. Communications of the CCF, 2017, 13(3): 30−34 (in Chinese)

    [2]

    Srinivasan A, Quadir M A, Vijayakumar V. Era of cloud computing: A new insight to hybrid cloud[J]. Procedia Computer Science, 2015, 50: 42−51 doi: 10.1016/j.procs.2015.04.059

    [3]

    Linthicum D S. Emerging hybrid cloud patterns[J]. IEEE Cloud Computing, 2016, 3(1): 88−91 doi: 10.1109/MCC.2016.22

    [4]

    Chauhan S S, Pilli E S, Joshi R C. A broker based framework for federated cloud environment[C/OL] //Proc of 2016 Int Conf on Emerging Trends in Communication Technologies (ETCT). Piscataway, NJ: IEEE, 2016 [2021-06-15]. https://ieeexplore.ieee.org/abstract/document/7882979

    [5]

    Petcu D. Multi-cloud: Expectations and current approaches[C] //Proc of 2013 Int Workshop on Multi-Cloud Applications and Federated Clouds. New York: ACM, 2013: 1−6

    [6]

    IDC, Inc. The content of hybrid architecture continues to enrich, and cloud management software has a lot to offer [EB/OL]. (2020-05-31) [2021-06-11]. https://www.idc.com/getdoc.jsp?containerId=prCHC46448320

    [7]

    Armbrust M, Fox A, Griffith R, et al. Above the clouds: A Berkeley view of cloud computing[R]. Berkeley: University of California, 2009

    [8]

    Armbrust M, Fox A, Griffith R, et al. A view of cloud computing[J]. Communications of the ACM, 2010, 53(4): 50−58 doi: 10.1145/1721654.1721672

    [9]

    Toosi A N, Calheiros R N, Buyya R. Interconnected cloud computing environments: Challenges, taxonomy, and survey[J]. ACM Computing Surveys , 2014, 47(1): 1-47

    [10]

    Houidi I, Mechtri M, Louati W, et al. Cloud service delivery across multiple cloud platforms[C] //Proc of 2011 IEEE Int Conf on Services Computing. Piscataway, NJ: IEEE, 2011: 741−742

    [11]

    Ferrer A J, Hernández F, Tordsson J, et al. OPTIMIS: A holistic approach to cloud service provisioning[J]. Future Generation Computer Systems, 2012, 28(1): 66−77 doi: 10.1016/j.future.2011.05.022

    [12]

    Grozev N, Buyya R. Inter-Cloud architectures and application brokering: Taxonomy and survey[J]. Software: Practice and Experience, 2014, 44(3): 369−390 doi: 10.1002/spe.2168

    [13]

    Mell P, Grance T. The NIST definition of cloud computing [EB/OL]. (2011-09-01)[2021-06-15]. https://csrc.nist.gov/publications/detail/sp/800-145/final

    [14]

    Bessani A, Kapitza R, Petcu D, et al. A look to the old-world_sky: EU-funded dependability cloud computing research[J]. ACM SIGOPS Operating Systems Review, 2012, 46(2): 43−56 doi: 10.1145/2331576.2331584

    [15]

    Celesti A, Tusa F, Villari M, et al. How to enhance cloud architectures to enable cross-federation[C] //Proc of the 3rd Int Conf on Cloud Computing. Piscataway, NJ: IEEE, 2010: 337−345

    [16]

    Brikman Y. Terraform: Up & Running: Writing Infrastructure as Code[M]. Sebastopol: O'Reilly Media, 2019

    [17]

    Cuadrado F, Navas A, Duenas J C, et al. Research challenges for cross-cloud applications[C] //Proc of 2014 IEEE Conf on Computer Communications Workshops (INFOCOM WKSHPS). Piscataway, NJ: IEEE, 2014: 19−24

    [18]

    Wang Huaimin, Shi Peichang, Zhang Yiming. Jointcloud: A cross-cloud cooperation architecture for integrated internet service customization[C] //Proc of the 37th Int Conf on Distributed Computing Systems (ICDCS). Piscataway, NJ: IEEE, 2017: 1846−1855

    [19] 史佩昌,尹浩,沃天宇,等. 软件定义的云际计算基础理论和方法研究进展[J]. 中国基础科学,2019,21(6):54−60 doi: 10.3969/j.issn.1009-2412.2019.06.08

    Shi Peichang, Yin Hao, Wo Tianyu, et al. Research progress on the basic theory and method of the software-defined jointcloud computing[J]. China Basic Science, 2019, 21(6): 54−60 (in Chinese) doi: 10.3969/j.issn.1009-2412.2019.06.08

    [20]

    Jena T, Mohanty J R. GA-based customer-conscious resource allocation and task scheduling in multi-cloud computing[J]. Arabian Journal for Science and Engineering, 2018, 43(8): 4115−4130

    [21] 田倬璟,黄震春,张益农. 云计算环境任务调度方法研究综述[J]. 计算机工程与应用,2021,57(2):1−11 doi: 10.3778/j.issn.1002-8331.2006-0259

    Tian Zhuojing, Huang Zhenchun, Zhang Yinong. Review of task scheduling methods in cloud computing environment[J]. Computer Engineering and Applications, 2021, 57(2): 1−11 (in Chinese) doi: 10.3778/j.issn.1002-8331.2006-0259

    [22] 马小晋,饶国宾,许华虎. 云计算中任务调度研究的调查[J]. 计算机科学,2019,46(3):1−8 doi: 10.11896/j.issn.1002-137X.2019.03.001

    Ma Xiaojin, Rao Guobin, Xu Huahu. Research on task scheduling in cloud computing[J]. Computer Science, 2019, 46(3): 1−8 (in Chinese) doi: 10.11896/j.issn.1002-137X.2019.03.001

    [23]

    Mármol F G, Pérez G M. Towards pre-standardization of trust and reputation models for distributed and heterogeneous systems[J]. Computer Standards & Interfaces, 2010, 32(4): 185−196

    [24] 胡海洋,刘润华,胡华. 移动云计算环境下任务调度的多目标优化方法[J]. 计算机研究与发展,2017,54(9):1909−1919 doi: 10.7544/issn1000-1239.2017.20160757

    Hu Haiyang, Liu Runhua, Hu Hua. Multi-objective optimization for task scheduling in mobile cloud computing[J]. Journal of Computer Research and Development, 2017, 54(9): 1909−1919 (in Chinese) doi: 10.7544/issn1000-1239.2017.20160757

    [25] 王亚文, 郭云飞, 刘文彦, 等. 面向云工作流安全的任务调度方法[J]. 计算机研究与发展, 2018, 55(6): 66-75

    Wang Yawen, Guo Yunfei, Liu Wenyan, et al. A task scheduling method for cloud workflow security[J]. Journal of Computer Research and Development, 2018, 55(6): 66-75(in Chinese)

    [26]

    Liu Juefu, Liu Peng. The research of load imbalance based on min-min in grid[C/OL] //Proc of 2010 Int Conf on Computer Design and Applications. Piscataway, NJ: IEEE, 2010 [2021-06-17]. https://ieeexplore.ieee.org/abstract/document/5541399

    [27]

    Etminani K, Naghibzadeh M. A min-min max-min selective algorithm for grid task scheduling[C/OL] //Proc of the 3rd IEEE/IFIP Int Conf in Central Asia on Internet. Piscataway, NJ: IEEE, 2007 [2021-06-17]. https://ieeexplore.ieee.org/abstract/document/4401694

    [28]

    Dorigo M, Caro G D. Ant colony optimization: A new meta-heuristic[C] //Proc of 1999 Congress on Evolutionary Computation. Piscataway, NJ: IEEE, 1999: 1470−1477

    [29]

    Dorigo M, Stützle T. The Ant Colony Optimization Metaheuristic: Algorithms, Applications, and Advances[M]. Berlin: Springer, 2003: 250−285

    [30]

    Bratton D, Kennedy J. Defining a standard for particle swarm optimization[C] //Proc of 2007 IEEE Swarm Intelligence Symp. Piscataway, NJ: IEEE, 2007: 120−127

    [31]

    Poli R, Kennedy J, Blackwell T. Particle swarm optimization[J]. Swarm Intelligence, 2007, 1(1): 33−57 doi: 10.1007/s11721-007-0002-0

    [32] 高海兵,周驰,高亮. 广义粒子群优化模型[J]. 计算机学报,2005,28(12):1980−1987 doi: 10.3321/j.issn:0254-4164.2005.12.004

    Gao Haibing, Zhou Chi, Gao Liang. General particle swarm optimization model[J]. Chinese Journal of Computers, 2005, 28(12): 1980−1987 (in Chinese) doi: 10.3321/j.issn:0254-4164.2005.12.004

    [33]

    Omara F A, Arafa M M. Genetic Algorithms for Task Scheduling Problem[M]. Berlin: Springer, 2009: 479−507

    [34]

    Zhao Chenhong, Zhang Shanshan, Liu Qingfeng et al. Independent tasks scheduling based on genetic algorithm in cloud computing[C/OL] //Proc of the 5th Int Conf on Wireless Communications, Networking and Mobile Computing. Piscataway, NJ: IEEE, 2009 [2021-06-17]. https://ieeexplore.ieee.org/abstract/document/5301850

    [35] 陈黄科,祝江汉,朱晓敏,等. 云计算中资源延迟感知的实时任务调度方法[J]. 计算机研究与发展,2017,54(2):446−456 doi: 10.7544/issn1000-1239.2017.20151123

    Chen Huangke, Zhu Jianghan, Zhu Xiaomin, et al. Resource-delay-aware scheduling for real-time tasks in clouds[J]. Journal of Computer Research and Development, 2017, 54(2): 446−456 (in Chinese) doi: 10.7544/issn1000-1239.2017.20151123

    [36]

    Shroff P, Watson D W, Flann N S, et al. Genetic simulated annealing for scheduling data-dependent tasks in heterogeneous environments[C] //Proc of the 5th Heterogeneous Computing Workshop (HCW’96). Los Alamitos, CA: IEEE Computer Society 1996, 970: 98−117

    [37]

    Gan Guoning, Huang Tinglei, Gao Shuai. Genetic simulated annealing algorithm for task scheduling based on cloud computing environment[C] //Proc of 2010 Int Conf on Intelligent Computing and Integrated Systems. Piscataway, NJ: IEEE, 2010: 60−63

    [38]

    Glover F. Tabu search-part I[J]. ORSA Journal on Computing, 1989, 1(3): 190−206 doi: 10.1287/ijoc.1.3.190

    [39]

    Liaqat M, Chang V, Gani A, et al. Federated cloud resource management: Review and discussion[J]. Journal of Network and Computer Applications, 2017, 77: 87−105 doi: 10.1016/j.jnca.2016.10.008

    [40]

    Petri I, Diaz-Montes J, Zou Mengsong, et al. Market models for federated clouds[J]. IEEE Transactions on Cloud Computing, 2015, 3(3): 398−410 doi: 10.1109/TCC.2015.2415792

    [41]

    Palmieri F, Buonanno L, Venticinque S, et al. A distributed scheduling framework based on selfish autonomous agents for federated cloud environments[J]. Future Generation Computer Systems, 2013, 29(6): 1461−1472 doi: 10.1016/j.future.2013.01.012

    [42]

    Holt C A, Roth A E. The Nash equilibrium: A perspective[J]. Proceedings of the National Academy of Sciences, 2004, 101(12): 3999−4002 doi: 10.1073/pnas.0308738101

    [43]

    de Oliveira G S S, Ribeiro E, Ferreira D A, et al. Acosched: A scheduling algorithm in a federated cloud infrastructure for bioinformatics applications[C] //Proc of the 7th IEEE Int Conf on Bioinformatics and Biomedicine. Piscataway, NJ: IEEE, 2013: 8−14

    [44]

    Coutinho R C, Drummond L M A, Frota Y. Optimization of a cloud resource management problem from a consumer perspective[C] //Proc of European Conf on Parallel Processing. Berlin: Springer, 2013: 218−227

    [45]

    Coutinho R C, Drummond L M A, Frota Y, et al. Optimizing virtual machine allocation for parallel scientific workflows in federated clouds[J]. Future Generation Computer Systems, 2015, 46: 51−68 doi: 10.1016/j.future.2014.10.009

    [46]

    Van den Bossche R, Vanmechelen K, Broeckhove J. Cost-optimal scheduling in hybrid IaaS clouds for deadline constrained workloads[C] //Proc of the 3rd Int Conf on Cloud Computing. Piscataway, NJ: IEEE, 2010: 228−235

    [47]

    Tejaswi T T, Azharuddin M, Jana P K. A GA based approach for task scheduling in multi-cloud environment[J]. arXiv preprint, arXiv: 1511. 08707, 2015

    [48]

    Lin Bin, Guo Wenzhong, Chen Guolong, et al. Cost-driven scheduling for deadline-constrained workflow on multi-clouds[C] //Proc of the 29th IEEE Int Parallel and Distributed Processing Symp Workshop. Piscataway, NJ: IEEE, 2015: 1191−1198

    [49]

    Heilig L, Lalla-Ruiz E, Voß S. A cloud brokerage approach for solving the resource management problem in multi-cloud environments[J]. Computers & Industrial Engineering, 2016, 95: 16−26

    [50]

    Zhang Miao, Liu Li, Liu Songtao. Genetic algorithm based QoS-aware service composition in multi-cloud[C] //Proc of the 1st IEEE Int Conf on Collaboration and Internet Computing (CIC). Piscataway, NJ: IEEE, 2015: 113−118

    [51]

    Simarro J L L, Moreno-Vozmediano R, Montero R S, et al. Dynamic placement of virtual machines for cost optimization in multi-cloud environments[C] //Proc of the 9th Int Conf on High Performance Computing & Simulation. Piscataway, NJ: IEEE, 2011: 1−7

    [52]

    Li Jiayin, Qiu Meikang, Ming Zhong, et al. Online optimization for scheduling preemptable tasks on IaaS cloud systems[J]. Journal of Parallel and Distributed Computing, 2012, 72(5): 666−677 doi: 10.1016/j.jpdc.2012.02.002

    [53]

    Panda S K, Jana P K. A multi-objective task scheduling algorithm for heterogeneous multi-cloud environment[C] //Proc of 2015 Int Conf on Electronic Design, Computer Networks & Automated Verification (EDCAV). Piscataway, NJ: IEEE, 2015: 82−87

    [54]

    Hu Haiyang, Li Zhongjin, Hu Hua, et al. Multi-objective scheduling for scientific workflow in multicloud environment[J]. Journal of Network and Computer Applications, 2018, 114: 108−122 doi: 10.1016/j.jnca.2018.03.028

    [55]

    Tang Xiaoyong. Reliability-aware cost-efficient scientific workflows scheduling strategy on multi-cloud systems[J/OL]. IEEE Transactions on Cloud Computing, 2021 [2021-06-15]. https://ieeexplore.ieee.org/abstract/document/9349203

    [56]

    Cai Xingjuan, Geng Shaojin, Wu Di, et al. A multi-cloud model based many-objective intelligent algorithm for efficient task scheduling in Internet of things[J]. IEEE Internet of Things Journal, 2020, 8(12): 9645−9653

    [57]

    Wen Zhenyu, Garg S, Aujla G S, et al. Running industrial workflow applications in a software-defined multi-cloud environment using green energy aware scheduling algorithm[J]. IEEE Transactions on Industrial Informatics, 2020, 17(8): 5645−5656

    [58]

    Karaja M, Ennigrou M, Said L B. Budget-constrained dynamic bag-of-tasks scheduling algorithm for heterogeneous multi-cloud environment[C/OL] //Proc of 2020 Int Multi-Conf on Organization of Knowledge and Advanced Technologies (OCTA). Piscataway, NJ: IEEE, 2020 [2021-06-15]. https://ieeexplore.ieee.org/abstract/document/9151737

    [59]

    Grozev N, Buyya R. Multi-cloud provisioning and load distribution for three-tier applications[J]. ACM Transactions on Autonomous and Adaptive Systems, 2014, 9(3): 1-21

    [60]

    Frincu M E, Craciun C. Multi-objective meta-heuristics for scheduling applications with high availability requirements and cost constraints in multi-cloud environments[C] //Proc of the 4th IEEE Int Conf on Utility and Cloud Computing. Piscataway, NJ: IEEE, 2011: 267−274

    [61]

    Kang S, Veeravalli B, Aung K M M. Dynamic scheduling strategy with efficient node availability prediction for handling divisible loads in multi-cloud systems[J]. Journal of Parallel and Distributed Computing, 2018, 113: 1−16 doi: 10.1016/j.jpdc.2017.10.006

    [62]

    Cui Jieqi, Chen Pengfei, Yu Guangba. A learning-based dynamic load balancing approach for microservice systems in multi-cloud environment[C] //Proc of the 26th IEEE Int Conf on Parallel and Distributed Systems (ICPADS). Piscataway, NJ: IEEE, 2020: 334−341

    [63]

    Van den Bossche R, Vanmechelen K, Broeckhove J. Online cost-efficient scheduling of deadline-constrained workloads on hybrid clouds[J]. Future Generation Computer Systems, 2013, 29(4): 973−985 doi: 10.1016/j.future.2012.12.012

    [64]

    Bittencourt L F, Madeira E R M. HCOC: A cost optimization algorithm for workflow scheduling in hybrid clouds[J]. Journal of Internet Services and Applications, 2011, 2(3): 207−227 doi: 10.1007/s13174-011-0032-0

    [65]

    Chopra N, Singh S. Deadline and cost based workflow scheduling in hybrid cloud[C] //Proc of the 2nd Int Conf on Advances in Computing, Communications and Informatics (ICACCI). Piscataway, NJ: IEEE, 2013: 840−846

    [66]

    Zhou Junlong, Wang Tian, Cong Peijin, et al. Cost and makespan-aware workflow scheduling in hybrid clouds[J/OL]. Journal of Systems Architecture, 2019 [2021-06-17]. https://www.sciencedirect.com/science/article/pii/S1383762119302954

    [67]

    Wang Bo, Wang Changhai, Huang Wanwei, et al. Security-aware task scheduling with deadline constraints on heterogeneous hybrid clouds[J]. Journal of Parallel and Distributed Computing, 2021, 153: 15−28 doi: 10.1016/j.jpdc.2021.03.003

    [68]

    Yuan Haitao, Bi Jing, Zhou Mengchu. Temporal task scheduling of multiple delay-constrained applications in green hybrid cloud[J]. IEEE Transactions on Services Computing, 2018, 14(5): 1558−1570

    [69]

    Fan Yuanyuan, Liang Qingzhong, Chen Yunsong, et al. Executing time and cost-aware task scheduling in hybrid cloud using a modified DE algorithm[C] //Proc of the 7th Int Symp on Computational Intelligence and Intelligent Systems. Berlin: Springer, 2015: 74−83

    [70] 赵梓铭,刘芳,蔡志平,等. 边缘计算:平台、应用与挑战[J]. 计算机研究与发展,2018,55(2):327−337 doi: 10.7544/issn1000-1239.2018.20170228

    Zhao Ziming, Liu Fang, Cai Zhiping, et al. Edge computing: Platforms, applications and challenges[J]. Journal of Computer Research and Development, 2018, 55(2): 327−337 (in Chinese) doi: 10.7544/issn1000-1239.2018.20170228

    [71] 苏命峰,王国军,李仁发. 边云协同计算中基于预测的资源部署与任务调度优化[J]. 计算机研究与发展,2021,58(11):2558−2570 doi: 10.7544/issn1000-1239.2021.20200621

    Su Mingfeng, Wang Guojun, Li Renfa. Resource deployment with prediction and task scheduling optimization in edge cloud collaborative computing[J]. Journal of Computer Research and Development, 2021, 58(11): 2558−2570 (in Chinese) doi: 10.7544/issn1000-1239.2021.20200621

图(3)  /  表(4)
计量
  • 文章访问数:  481
  • HTML全文浏览量:  53
  • PDF下载量:  262
  • 被引次数: 0
出版历程
  • 收稿日期:  2022-01-03
  • 修回日期:  2022-06-22
  • 网络出版日期:  2023-02-26
  • 刊出日期:  2023-05-31

目录

/

返回文章
返回