科学使命流是使命流应用于科学有计划的一种进击机制, 不错匡助科学家进行实验仿真和数据分析等使命[1]爱色电影, 时常应用于医药学[2]、物理学[3]、生物学[4]等学科规模.跟着科学计较系统的复杂性日益增多, 科学使命流应用已成为大数据应用, 需要大范围的基础设施, 以便在合理的期间内奉行, 故传统的计较环境很难知足多科学使命流的要求.云计较领有丰富的存储资源以及高效的计较才略[5], 从而为多科学使命流提供了一种新的部署和奉行决策.
当今, 关于单个科学使命流扶植的有计划, 不管是扶植模子如故扶植主义的种种性均取得了很猛弘扬, 但是针对多科学使命流扶植的有计划相对较少[6].文件[7]将多个使命流合成一个使命流后, 再利用单使命流扶植算法来扶植合成的使命流, 但这种方法存在扶植的不自制性问题.文件[8]针对多使命流扶植的自制性问题残酷了Fairness算法, 但未斟酌动态提交多科学使命流的情况.在云职业的科学使命流扶植程度中, 存在多个不同结构的科学使命流同期提交或在奉行过程中动态提交的情况, 因此, 针对多异构科学使命流的扶植算法需要领有对动态提交的科学使命流进行及时处理的功能.
提供商频频以基于小时的订价模式向用户收费, 是以用度是通过运行的小时数计较[9].一项访问表示, 云职业最温文的问题之一是安全性[10], 这是因为云职业允许用户奉行未考证的第三方应用举止, 这成为了安全恫吓的起头[11], 若未斟酌安全性, 则可能会导致科学使命流扶植失败.当今, 关于单个科学使命流的有计划已有很猛弘扬, 但这些有计划不可径直应用在多科学使命流的扶植上.
云科学使命流扶植中, 用户主要斟酌期间和用度守护, 为此, 在这两个守护下的云科学使命流扶植有计划方面产生了一系列后果.
● 基于大无数算法具有高期间复杂度从而难以在现实环境中使用的弱点, 文件[12]在斟酌用户期间和用度守护下残酷了具有二次期间复杂度的启发式扶植算法DBCS(deadline-budget constrained scheduling).
● 针对当今云商场由繁密不同的云提供商构成的情况, 文件[13]通过修改关键旅途算法PCPA(partial critical paths algorithm), 残酷了一种多云部分关键旅途算法MCPCP(multi-cloud partial critical paths), 旨在知足用度守护下最大为止地减少奉行用度.
● 文件[14]在斟酌云的特质下, 残酷元启发式遗传算法, 在知足期间守护下, 最大程度缩短奉行用度.
● 此外, 还有通过ACO(ant colony optimization)算法和PSO(particle swarm optimization)算法等[15, 16]启发式算法在期间和用度的守护下进行优化.
上述算法均具有一定的用度优化效果, 但是针对具有截止期间的多个科学使命流用度优化的有计划相对较少, 仍需进一步有计划.
在科学使命流扶植过程中, 安全性还是成为云计较环境下另一个关键成分[17-19].当今, 很多云计较环境莫得遴选相应的安全措施来抵抗安全恫吓[20], 因此, 云计较环境下的安全扶植问题成为科学使命流规模的有计划热门.针对用户荒芜数据在羼杂云计较环境存在曝光风险问题, 文件[21]在同期斟酌用户的期间和用度守护下, 残酷了一种在使命流扶植中保留用户隐秘的算法MHPC(multiterminal cut for privacy in hybrid clouds).出于安全性斟酌, 存在数据集因隐秘原因无法在数据中心中迁徙, 文件[22]对此残酷了安全和预算感知使命流扶植计谋SABA(security-aware and budget-aware workflow scheduling strategy).为了贬抑使命流任务在云资源上奉行发生无理, 文件[23]通过计议任务故障智能预料模子来预料科学使命流应用举止的任务故障, 从而达成主动容错.上述算法只是有计划了单科学使命流的安全措施, 有必要针对多科学使命流的安全扶植问题作念进一步的有计划.
针对上述问题, 本文是在公有云的环境下, 有计划单个用户同期提交多异构科学使命流以及动态提交的问题, 将关键的安全性和期间守护加入到多科学使命流用度优化模子中, 残酷了云环境下基于安全性和期间守护的多科学使命流用度优化模子, 并残酷了针对该模子的用度优化算法MSW-SDCOA.该算法率先在职务扶植之前利用科学使命流的数据依赖性对其进行压缩, 从而减少任务节点数, 并通过矫正HEFT算法[24], 斟酌任务旅途长度以及安全支出下分层计较任务节点的权重值酿成扶植序列, 在职务扶植过程, 优化ACO算法中的信息素更新计谋和启发式信息, 以渴望进一步改善多科学使命流的用度优化效果.
本文弁言先容布景和干系使命.第1节残酷本文的模子.第2节讲诉基于本文模子残酷的算法.第3节给出实验仿真遣散和分析.第4节给出本文的论断.
1 云环境下基于安全性和期间守护的多科学使命流用度优化模子 1.1 模子刻画云环境下基于安全性和期间守护的多科学使命流用度优化模子中的多科学使命流可刻画为
$ W = \left\{ {{w_i}|{w_i} = \left( {T, E} \right)} \right\}, $其中,
● T代表一个科学使命流任务的网络, $T = \{ {t_{i, j}}|{t_{i, j}} = ({I_{{t_{i, j}}}}, {O_{{t_{i, j}}}}, {L_{{t_{i, j}}}}, {A_{{t_{i, j}}}})\} $, ti, j代表第i个使命流的第j个任务, ${I_{{t_{i, j}}}}$代表ti, j的输入数据集, ${O_{{t_{i, j}}}}$代表ti, j的输出数据集, ${L_{{t_{i, j}}}}$代表ti, j的指示数大小, ${A_{{t_{i, j}}}}$代表ti, j地点的科学使命流;
● E用来暗示科学使命流任务之间的依赖关系:
$E = \{ ({t_{i, j}}, {t_{i, k}}, {d_{{t_{i, j}}, {t_{i, k}}}})|({t_{i, j}}, {t_{i, k}}) \in T, {d_{{t_{i, j}}, {t_{i, k}}}} \in {O_{{t_{i, j}}}}{\text{ and }}{d_{{t_{i, j}}, {t_{i, k}}}} \in {I_{{t_{i, k}}}}\} .$$({t_{i, j}}, {t_{i, k}}, {d_{{t_{i, j}}, {t_{i, k}}}})$代表ti, j和ti, k的数据依赖关系, ti, j是ti, k的先行者任务, ti, k是ti, j的后继任务, ${d_{{t_{i, j}}, {t_{i, k}}}}$代表ti, j传给ti, k的数据集, $L({d_{{t_{i, j}}, {t_{i, k}}}})$代表数据集的大小.
ti, j的先行者任务集记为pre(ti, j), ti, j的后继任务集记为succ(ti, j).
底下通过图 1(a)和图 1(b)两个子图对应的w1和w2这两个科学使命流实例和表 1的对应参数信息对本文残酷的模子中多科学使命流进行详备的刻画.
Fig. 1 Multi-Scientific workflows instance 图 1 多科学使命流实例 Table 1 Multi-Scientific workflows instance parameter information 表 1 多科学使命流实例参数信息本文残酷的云环境下基于安全性和期间守护的多科学使命流用度优化模子如图 2所示, 主要由科学使命流压缩、分层计较任务节点权重值生成扶植序列、生成扶植决策、动态扶植多科学使命流这4分构成.为了更直不雅地暗示出模子中的步地, 区分使用A, B, C代表不同的科学使命流.在该模子中, 用户提交多个科学使命流, 这些科学使命流到达后, 率先会将多科学使命流进行压缩, 减少其任务节点数, 然后通过矫正的HEFT算法分层计较各个科学使命流的任务节点的权重值, 并按依法程生成扶植序列, 接着将扶植序列动作输入调用矫正的ACO算法生成扶植决策, 终末按扶植决策进行扶植.若是用户在提交多科学使命流后提交了新的科学使命流, 则通过动态扶植多科学使命流部分达成扶植.
Fig. 2 Multi-Scientific workflows scheduling flowchart 图 2 多科学使命流扶植历程图该模子对应搞定的问题是:保证安全性和完成期间在用户设定的守护范围内收用租出用度最小的多科学使命流扶植决策.
1.2 多科学使命流安全性计较在云计较环境中存在多种安全恫吓, ARP乱来、监听、遣散职业是云系统的3种常见袭击, 咱们使用3种安全职业(即身份考证职业、竣工性职业和玄机性职业)来贬抑科学使命流运行时被袭击[25], 为了浅薄刻画, 咱们使用a, b和c区分暗示身份考证职业、竣工性职业和玄机性职业.
安全性是指多个科学使命流齐奉行凯旋的概率, 通过计较每个任务节点在杜撰机上接纳数据、奉行以及生成输出数据的风险率求得.假定每个任务齐需要3种不同安全级别的安全职业, 在接纳输入数据时使用身份考证职业, 在职务奉行时使用竣工性职业, 在生成输出数据过程中使用玄机性职业.举例竣工性职业, 其中的各个哈希函数性能不同, 假定每个哈希函数的安全级别与其期间支出成反比, 将每个哈希函数的安全级别分拨在0.18~1之间[25].举例, 咱们将安全级别1分拨给效果最佳但达成最慢的哈希函数TIGER.
任务节点ti, j的每种安全职业的风险率如公式(1)所示[26].
$P({t_{i, j}}, sl_{{t_{i, j}}}^l) = 1 - {{\text{e}}^{ - {\lambda ^l}(1 - sl_{{t_{i, j}}}^l)}}, l \in \{ a, b, c\} $ (1)其中, $sl_{{t_{i, j}}}^l$代表任务ti, j赢得的安全职业l的级别.在云环境下, 因为单元期间内受到的不同种类的袭击次数不同,
故λl的值是不同的.
斟酌任务的3种安全职业, 任务ti, j的风险率P(ti, j)界说为[26]
$P({t_{i, j}}) = 1 - \prod\limits_{l \in \{ a, b, c\} } {(1 - P({t_{i, j}}, sl_{{t_{i, j}}}^l))} $ (2)科学使命流wi的风险率P(wi)不错通过其任务网络的风险率求得[26]:
$P({w_i}) = 1 - \prod\limits_{{t_{i, j}} \in {w_i}} {(1 - P({t_{i, j}}))} $ (3)多科学使命流W的安全性概率S(W)不错通过其科学使命流网络的风险率求得, 多科学使命流W运行凯旋的条目为各科学使命流齐运行凯旋, 故通过计较科学使命流的风险率可得其凯旋率, 将各科学使命流的凯旋率相乘即为多科学使命流W的安全性概率, 是以S(W)可界说为
$S(W) = \prod\limits_{{w_i} \in W} {(1 - P({w_i}))} $ (4) 1.3 多科学使命流完成期间计较假定ti, j被分拨到杜撰机上$v{m_{{t_{i, j}}}}$奉行, 则ti, j脱手期间利用如下公式求取:
文爱聊天 $\left. \begin{gathered} st({t_{i, j}}, v{m_{{t_{i, j}}}}) = \max \{ t_{i, j}^{avai}, avai(v{m_{{t_{i, j}}}})\} \\ t_{i, j}^{avai} = \mathop {\max }\limits_{{t_{i, k}} \in pre({t_{i, j}})} \{ ft({t_{i, k}}, v{m_{{t_{i, k}}}}) + tt({t_{i, j}}, {t_{i, k}})\} {\text{ }} \\ tt({t_{i, j}}, {t_{i, k}}) = \left\{ {\begin{array}{*{20}{l}} {L({d_{{t_{i, k}}, {t_{i, j}}}})/b(v{m_{{t_{i, k}}}}, v{m_{{t_{i, j}}}}), {\text{ }}v{m_{{t_{i, j}}}}! = v{m_{{t_{i, k}}}}} \\ {0, {\text{ }}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~v{m_{{t_{i, j}}}} = v{m_{{t_{i, k}}}}} \end{array}} \right. \\ \end{gathered} \right\}$ (5)其中, $t_{i, j}^{avai}$代表ti, j整个先行者任务齐奉行完成况且数据齐传输至$v{m_{{t_{i, j}}}}$上的期间, $avai(v{m_{{t_{i, j}}}})$代表$v{m_{{t_{i, j}}}}$奉行完ti, j之前整个任务后的期间.ti, k是ti, j的后继任务, 假定ti, k被分拨到代表ti, k的完成期间, tt(ti, j, ti, k)代表ti, j将数据传输至ti, k的期间, 当ti, k和ti, j分拨的杜撰机交流期, 传输期间为0;不然, 传输期间为$L({d_{{t_{i, k}}, {t_{i, j}}}})$除以两个杜撰机之间的带宽$b(v{m_{{t_{i, k}}}}, v{m_{{t_{i, j}}}}).$
ti, j进行安全职业所耗尽的期间$s{t_{{t_{i, j}}}}$分为身份考证职业、竣工性职业以及玄机性职业这3个部分, $s{t_{{t_{i, j}}}}$被定
义为
$s{t_{{t_{i, j}}}} = t(sl_{{t_{i, j}}}^a) + t(sl_{{t_{i, j}}}^b) + t(sl_{{t_{i, j}}}^c)$ (6)$t(sl_{{t_{i, j}}}^a)$代表身份考证职业所消耗的期间, $t(sl_{{t_{i, j}}}^b)$代表竣工性职业所消耗的期间, $t(sl_{{t_{i, j}}}^c)$代表玄机性职业所消耗的期间.身份考证职业所消耗的期间仅与遴选的安全职业级别相关, 竣工性职业和玄机性职业所消耗的期间与遴选的安全职业级别和保护的数据大小相关.故$t(sl_{{t_{i, j}}}^b)$的计较方法为${I_{{t_{i, j}}}}/OD(sl_{{t_{i, j}}}^b), t(sl_{{t_{i, j}}}^c)$的计较方法为${O_{{t_{i, j}}}}/OD(sl_{{t_{i, j}}}^c), OD(sl_{{t_{i, j}}}^b)$和$OD(sl_{{t_{i, j}}}^c)$区分代表竣工性职业和玄机性职业单元期间能处理的数据长度.
ti, j的完成期间为脱手期间加上运行期间以及安全职业所耗尽的期间, 可利用如下公式计较:
$ft({t_{i, j}}, v{m_{{t_{i, j}}}}) = st({t_{i, j}}, v{m_{{t_{i, j}}}}) + et({t_{i, j}}, v{m_{{t_{i, j}}}}) + s{t_{{t_{i, j}}}}$ (7)其中, ti, j在$v{m_{{t_{i, j}}}}$上的奉行期间为$et({t_{i, j}}, v{m_{{t_{i, j}}}}) = {L_{{t_{i, j}}}}/{m_{v{m_{{t_{i, j}}}}}}, {m_{v{m_{{t_{i, j}}}}}}$代表$v{m_{{t_{i, j}}}}$单元期间不错奉行的指示数.多科学使命流终末一个任务收尾的期间为整个这个词多科学使命流的完成期间, 故多科学使命流的完成期间mp为
$mp = \mathop {\max }\limits_{i \in (1, N), j \in (1, {N_i})} \{ ft({t_{i, j}}, v{m_{{t_{i, j}}}})\} $ (8)其中, N代表科学使命流的个数, Ni代表科学使命流i领有的任务数.
1.4 多科学使命流用度计较现时, 大部分云平台汲取的计费花样为依技巧周期计费, 举例Amazon EC2以小时为单元计费, 运行不及一小时按一小时收费, 杜撰机之间的数据传输是免费的.因此, 多科学使命流奉行的用度为各个杜撰机耗尽的用度之和.总用度allc为
$\left. \begin{gathered} allc = \sum\limits_{i = 1}^m {price(v{m_i})} \\ price(v{m_i}) = \left\lceil {ft({t_{end}}, v{m_i}) - st({t_{start}}, v{m_i})} \right\rceil \times {P_{v{m_i}}} \\ \end{gathered} \right\}$ (9)其中, price(vmi)代表杜撰机vmi耗尽的用度, m代表杜撰机的个数, tend代表在杜撰机vmi上终末完成的任务, tstart代表在vmi上最早奉行的任务, ${P_{v{m_i}}}$代表vmi单元期间的用度.
1.5 多科学使命流用度优化模子本文残酷的云环境下基于安全性和期间守护的多科学使命流用度优化模子即为寻找一种在知足多科学使命流的总完成期间低于用户事前设定的截止期间以及安全性大于用户设定的安全性下, 最小化租出用度的扶植决策, 体式化刻画如公式(10):
$\left. \begin{gathered} ~~~~~~~~\min allc \hfill \\ {\text{s}}{\text{.t}}{\text{. }}~~~~mp \leqslant deadline \hfill \\ ~~~~~~~~S(W) \geqslant scon \hfill \\ \end{gathered} \right\}$ (10)其中, deadline代表用户设定的多科学使命流扶植的截止期间, scon代表用户设定的多科学使命流扶植的最低安全性.
2 云环境下基于安全性和期间守护的多科学使命流用度优化算法本文残酷的MSW-SDCOA算法的基本念念想:率先对多个科学使命流进行压缩; 然后, 通过矫正HEFT算法赢得多科学使命流的任务扶植序列; 终末, 通过优化的ACO算法获取任务序列的最优扶植决策.
2.1 基于数据依赖的科学使命流压缩在科学使命流中, 每个任务与其先行者任务节点和后继任务节点齐存在数据依赖关系, 只好其先行者任务节点齐运行完成, 该任务节点身手运行, 若是存在一个任务节点ti, j的先行者任务节点只好ti, k, 况且ti, k的后继任务节点也只好ti, j, 那么不错将ti, j和ti, k合并成一个任务节点.这既幸免了ti, j和ti, k之间地数据传输, 又减少了任务节点数, 从而减少了任务扶植期间以及扶植用度.本文中斟酌的为单个数据中心, 莫得斟酌数据集隐秘问题.
2.2 多科学使命流任务扶植序列的生成科学使命流的分层方法为, 将团结深度的任务节点视为一层.本文的多科学使命流任务扶植序列生成算法是通过矫正HEFT算法达成的:率先计较任务节点的权重值; 其次, 将每一层上任务节点按权重值从低到高进行排序; 终末爱色电影, 按层数从低到高将每层的序列进行合并, 赢得多科学使命流任务扶植序列.这充分保证了多科学使命流扶植的自制性.
关于每个任务节点权重值的计较, 通过斟酌ti, j到出口任务texit之间的旅途长度Len(ti, j)以及ti, j的安全性支出, 使得任务节点的权重计较通过追求局部最优达到全局多主义优化扶植.ti, j的权重计较公式如下:
$rank({t_{i, j}}) = avg\{ w({t_{i, j}})\} + \mathop {\max }\limits_{{t_{i, k}} \in succ({t_{i, j}})} \{ tt({t_{i, j}}, {t_{i, k}}) + rank({t_{i, k}}) +\\ Len({t_{i, k}})\} + \mathop {avg}\limits_{l \in \{ a, b, c\} } \{ t(sl_{{t_{i, j}}}^l)\} $ (11)当ti, j是出口任务时Len(ti, j)=0, 权重计较公式如下:
$rank({t_{i, j}}) = avg\{ w({t_{i, j}})\} + \mathop {avg}\limits_{l \in \{ a, b, c\} } \{ t(sl_{{t_{i, j}}}^l)\} $ (12)任务扶植序列的生成算法如算法1所示.
算法1.任务扶植序列生成算法.
输入:包含每个科学使命流任务节点信息的部队Mqueue.
输出:使命流任务扶植序列Q.
1. get the max depth k //获取多科学使命流的最大层数k
2. q1, q2, q3, …, qk={};
3. Q={};
4. for each task t in MQueue do
5. if t==texit;
6. Calculate the rank(t) according to Eq.(12);
7. else
8. Calculate the rank(t) according to Eq.(11);
9. j==t.getdepth(); //获取任务t的层数
10. Put task t to qj;
11. end if
12.end for
13.for i to k do
14. QuickSort(qi, 1, qi.size()); //将部队中的任务按rank(t)的大小递减排序
15. Q+=qi;
16.end for
17.return Q
算法的具体奉行过程如下:
(1) 获取多科学使命流的最大层数k, 然后运行化k个空部队以及运行化使命流任务扶植序列Q为空(第1行~第3行);
(2) 轮番读取包含每个科学使命流任务节点信息的部队MQueue的任务t, 判断任务t是否为出口任务:若是是, 则按公式(12)计较该任务的权重值; 不然, 用公式(11)计较该任务的权重值, 然后读取该任务节点地点的层数j, 然后将任务t添加至部队qj(第4行~第12行);
(3) 轮番将k个部队中的任务按权重值递加排序, 并将部队添加至Q中(第13行~第16行);
(4) 复返使命流任务扶植序列Q(第17行).
2.3 多科学使命流任务序列的扶植本文中, 任务扶植算法基于ACO算法, 该算法是元启发式算法, 具有很强的跨规模才略, 不错用在科学使命流的扶植上.将ACO算法用于求解多科学使命流扶植问题, 需要斟酌的算法的求解服从以及扶植遣散的犀利.
将任务ti分拨至每个杜撰机的概率公式如下:
$\left. \begin{gathered} {p_{{t_i}, v{m_j}}} = \frac{{{{[{\tau _{{t_i}, v{m_j}}}]}^\alpha }{{[{\eta _{{t_i}, v{m_j}}}]}^\beta }}}{{\sum {{{[{\tau _{{t_i}, v{m_s}}}]}^\alpha }{{[{\eta _{{t_i}, v{m_s}}}]}^\beta }} }}, (v{m_j}, v{m_s}) \in allowe{d_v} \\ {\eta _{{t_i}, v{m_j}}} = 1/(et({t_i}, v{m_j}) + st({t_i}, v{m_j})) \\ \end{gathered} \right\}$ (13)其中, τ为信息素矩阵, η是启发性信息, ${\tau _{{t_i}, v{m_j}}}$为由任务ti到杜撰机vmj的旅途信息素强度, ${p_{{t_i}, v{m_j}}}$为蚂蚁将任务ti分拨到杜撰机vmj的概率, allowedv代表大概使用的杜撰机资源, α为旅途权, β为启发性信息的权.
计较出任务ti分拨至每个杜撰机的概率之后, 通过轮盘赌的方法决定任务ti分拨至哪个杜撰机.
为了提高扶植的服从与遣散, 从以下两个方靠近ACO算法进行优化.
1.信息素更新计谋的优化
信息素的扩散速率应跟着蚂蚁迭代次数的增多也随之增多, 矫正后, 计较花样如下:
$ {\rho ^{\rm{*}}}{\rm{ = }}\left[ {1 - {{\rm{e}}^{\varphi \times \left( {n - N} \right)/N}}} \right] \times \rho $ (14)其中, n是现时蚂蚁的迭代次数; N是设定的迭代次数; ρ是预设定的信息素数目的挥发总共; ϕ是常数, 代表信息素的总体扩散速率, 取值范围为[1, 5].
在蚂蚁寻找最优解的过程中, 幸免出现过早不停的情况.信息素存在两个阈值σmax和σmin, 当信息素${\tau _{{t_i}, v{m_j}}}$大于阈值σmax时, 应相应地减少信息素, 贬抑其过大; 当信息素${\tau _{{t_i}, v{m_j}}}$小于阈值σmin时, 应相应地增多信息素, 贬抑其过小.本文的优化方法如下:
${\tau _{{t_i}, v{m_j}}}(n + 1) = \left\{ {\begin{array}{*{20}{l}} {{\rho ^{ * {{\text{e}}^{ - 0.5}}}} \times {\tau _{{t_i}, v{m_j}}}(n) + \Delta {\tau _{{t_i}, v{m_j}}}{\text{, if }}{\tau _{{t_i}, v{m_j}}}(n) > {\sigma _{\max }}{\text{ }}} \\ {{\rho ^{ * {{\text{e}}^{0.5}}}} \times {\tau _{{t_i}, v{m_j}}}(n) + \Delta {\tau _{{t_i}, v{m_j}}}{\text{, if }}{\tau _{{t_i}, v{m_j}}}(n) < {\sigma _{\min }}} \end{array}} \right.$ (15)若是在本次迭代中发现最优解, 则发现最优解的蚂蚁在和其他蚂蚁相通更新完我方旅途上的信息素后, 还要再进行一次更新, 整个蚂蚁更新公式如下:
$\left. \begin{gathered} {\tau _{{t_i}, v{m_j}}}(n + 1) = {\rho ^ * } \times {\tau _{{t_i}, v{m_j}}}(n) + \Delta {\tau _{{t_i}, v{m_j}}} \\ \Delta {\tau _{{t_i}, v{m_j}}} = \left\{ {\begin{array}{*{20}{l}} {\sum\limits_{k = 1}^m {\Delta \tau _{{t_i}, v{m_j}}^k} + \chi \times \Delta \tau _{{t_i}, v{m_j}}^{bs}{\text{, if the Ant find the }}bs} \\ {\sum\limits_{k = 1}^m {\Delta \tau _{{t_i}, v{m_j}}^k} , {\text{ others}}} \end{array}} \right. \\ \Delta \tau _{{t_i}, v{m_j}}^{bs} = \left\{ {\begin{array}{*{20}{l}} {1/bscost, {\text{ if }}bs{\text{ }}contains({t_i}, v{m_j})} \\ {0, {\text{ others}}} \end{array}} \right. \\ \Delta \tau _{{t_i}, v{m_j}}^k = \frac{q}{{\sum {{L_k}} }} \\ \end{gathered} \right\}$ (16)其中, m为蚂蚁个数; n为迭代次数; $\Delta \tau _{{t_i}, v{m_j}}^k$为蚂蚁k由任务节点ti到杜撰机vmj的旅途上留住的信息素数目; ρ为旅途上信息素数目的挥发总共; q为信息造就量总共; χ是一个立时数, 在[0, 1]中进行收用; $\sum\limits_{k = 1}^m {\Delta \tau _{{t_i}, v{m_j}}^k} $是整个蚂蚁共同更新的信息素; bs为现时最优解; bscost为现时最优解的用度值; $\sum {{L_k}} $为蚂蚁k的扶植决策用度值.
2.启发性信息的优化
为了增大服从高的杜撰机被选到的概率, 修改启发性信息${\eta _{{t_i}, v{m_j}}}$如下:
$\left. \begin{gathered} \gamma = \frac{{({m_{v{m_j}}}/{P_{v{m_j}}}) \times m}}{{\sum\limits_{n = 1}^m {{m_{v{m_j}}}/{P_{v{m_j}}}} }} \\ {\eta _{{t_i}, v{m_j}}} = \gamma /(et({t_i}, v{m_j}) + st({t_i}, v{m_j})) \\ \end{gathered} \right\}$ (17)其中, γ代表vmj在整个杜撰机中的服从值.
多科学动态动态扶植计谋为:若用户在提交的科学使命流未奉行完成的情况下提交了新的科学使命流, 需给出新的扶植参数, 率先对新的科学使命流进行压缩, 其次计较新的科学使命流每个任务节点的权重值; 未奉行完成的科学使命流剩下的节点层数从第1层脱手计数, 然后按层数从低到高将新的科学使命流每一层任务节点依据权重值递加排序的章程合并到还未奉行完成的科学使命流地点的每一层任务部队中, 生成新的扶植序列, 终末, 利用优化的ACO算法进行扶植.这么不错幸免新的科学使命流因之前科学使命流剩余任务还未奉行而得不到扶植最终导致奉行期间跨度变大的问题.
MSW-SDCOA具体算法如算法2所示.
算法2. MSW-SDCOA算法.
输入:W={w1, w2, w3, …, wN}; //科学使命流列表
VM={vm1, vm2, vm3, …, vmm}. //云环境下杜撰机列表
输出:bestschedule. //安全性和期间守护下的最优扶植决策
1. Workflow compress
2. 通过任务扶植序列生成算法生成部队Q
3. 运行化信息素矩阵τ, 运行化蚁群Ants
4. for n to maxgen do //蚁群脱手进行迭代, maxgen是最大迭代数
5. for Ant in Ants do
6. Choose the VM for each task t in queue Q;
7. Calculate the Ant’s S(W) according to Eq.(4); //计较安全性
8. Calculate the Ant’s makespan according to Eq.(8); //计较完成期间
9. Calculate the Ant’s allc according to Eq.(9); //计较总用度值
10. if S(W)≥scon&&makespan≤deadline&&allc<bestschedule.allc
11. bestschedule=ant.sehedule;
12. else
13. continue;
14. end if
15. Update the τ;
16. end for
17.end for
18.if bestschedule==null
19. return “please modify the scheduling parameters”;
20.else
21. return bestschedule;
算法的具体奉行过程如下.
(1) 对多科学使命流进行压缩(第1行).
(2) 对压缩后的多科学使命流调用任务扶植序列生成算法生成Q(第2行).
(3) 为ACO算法的运行作念运行化使命(第3行).
(4) 脱手进行迭代, 计较每一次迭代中每只蚂蚁扶植决策的安全性、运行期间和用度, 在安全性和期间守护下判断是否为最优扶植决策:若是是, 则保留最优决策, 每一次迭代事后需要更新信息素矩阵(第4行~第17行).
(5) 迭代完成后, 若是最优扶植决策为空, 则说明未找到安妥安全和期间守护下的扶植决策, 提示用户修改扶植参数; 不然, 复返安全和期间守护下的最优扶植决策(第18行~第21行).
3 仿真正验为了分析和评估本文残酷的MSW-SDCOA算法的性能, 将MSW-SDCOA算法与HEFT-ACO(HEFT算法加上传统ACO算法)、MW-DBS算法[27]和CCRH算法[6]进行对比, 本文在CloudSim[28]平台上进行仿真扶植实验.为了能进行自制地对比, HEFT-ACO和MW-DBS算法的安全性计较均汲取本文所述的方法进行计较.实验基于以下环境:处理器为Inter(R) Core(TM)i5-4590, 3.30GHz; 8GB内存; Windows 7, 64位操作系统.
3.1 实验环境本文不斟酌数据中心问题, 实验汲取一个数据中心、10个不同类型的杜撰机, 假定每个杜撰机齐领有3种安全性职业, 各个杜撰机参数信息见表 2.
Table 2 Virtual machine parameter information 表 2 杜撰机参数信息实验所用的科学使命流为Montage, LIGO和Epigenomics, 通过汲取WorkflowGenerator生成器[29], 生成任务数为25, 50, 100的Montage使命流、任务数为30, 50, 100的LIGO使命流和任务数为24, 46, 100的Epigenomics使命流.实验中, 多科学使命流组合设定是用户同期提交的多个科学使命流.
关于3种安全性职业, 实验使用HMAC-MD5, HMAC-SHA-1和CBC-MAC-AES这3种认证花样达成身份职业, 使用7个哈希函数(MD4, MD5, RIPEMD, RIPEMD-128, SHA-1, RIPEMD-160和Tiger)达成竣工性职业, 使用8种加密算法(SEAL, RC4, Blowfish, Knufu/Khafre, RC5, Rijndael, DES和IDEA)达成玄机性职业[25].3种安全职业的风险总共参数设定为λa=3.5, λb=2.5, λc=1.5, 参数设定参考文件[30, 31].
关于优化的ACO算法, 实验中界说参数ρ=0.65, α=1.1, β=4.0, q=700, ϕ=3, 蚁群数目为60, 迭代次数为200, 参数设定参考文件[30, 31].
3.2 实验遣散对比图 3表示了在截止期间交流的情况下, 对比在不同安全性守护下, 将MSW-SDCOA算法的扶植遣散与HEFT-ACO算法、MW-DBS算法、CCRH算法的扶植遣散进行对比.实验等区分汲取了(LIGO-30, Montage-25, Epigenomics-24), (LIGO-50, Montage-50, Epigenomics-46)以及(LIGO-100, Montage-100, Epigenomics-100)这3种多科学使命流实例, MSW-SDCOA算法、HEFT-ACO算法、MW-DBS算法和CCRH算法在多种不同的多科学使命流实例进行比拟, 保证据验的准确性.实验遴选的截止期间为(tmin+tmax)/2, tmin和tmax区分代表多科学使命流在杜撰机成就条目不变且莫得安全性守护下的最小完成期间和最大完成期间, 不同组合的多科学使命流截止期间不同.从图 3不错看出, 关于不同组合的多科学使命流, 跟着安全性守护的提高, 4种扶植算法的用度也在增大.这是因为跟着安全级别的进步, 任务节点在杜撰机上运行的期间会缓缓增多.
Fig. 3 Scheduling results of different multi-scientific workflows under different security constraints 图 3 不同安全性守护下, 不同多科学使命流组合扶植遣散图 4表示了在安全性交流的情况下, 对比在不同截止期间下, 将MSW-SDCOA算法的扶植遣散与HEFT- ACO算法、MW-DBS算法、CCRH算法的扶植遣散进行对比.实验等区分汲取了(LIGO-30, Montage-25, Epigenomics-24), (LIGO-50, Montage-50, Epigenomics-46)以及(LIGO-100, Montage-100, Epigenomics-100)这3种多科学使命流实例.实验中, 安全性值设为0.7, 收用最小完成期间和最大完成期间区间中的5个数值动作用户截止期间, 即deadline=tmin+θ×(tmax-tmin), 其中, θ∈{0.15, 0.3, 0.45, 0.6, 0.75}.从图 4不错看出, 跟着用户截止期间的提高, 4种扶植算法的用度在缩短.这是因为跟着截止期间的提高, 安妥安全性和期间守护的扶植决策缓缓增多.
Fig. 4 Scheduling results of different multi-scientific workflows under different deadline constraints 图 4 不同技巧守护下, 不同多科学使命流组合扶植遣散在用度优化方面, 从图 3和图 4不错看出, MSW-SDCOA算法所生成的扶植决策用度值最低.这是由于MSW-SDCOA算法中的任务扶植序列生成算法斟酌了全局多主义优化, 从而生成愈加合理的扶植序列, 况且在信息素的优化中, 关于信息素数目的挥发总共的矫正、增多信息素的坎坷阈值以及发现最优扶植决策时的处理计谋, 幸免了ACO算法出现过早不停的情况, 以致于增强了ACO算法的全局搜索才略, 最终大概得到更好的扶植遣散.
图 5表示了在安全性和截止期间守护交流的情况下, 对比在同期到达的不同多科学使命流个数下的完成期间大小.从图 5中不错看出, 跟着多科学使命流个数的增多, 各算法运行的期间也增多, 但是本文方法的耗时常间低于HEFT-ACO算法、MW-DBA算法和CCRH算法.这是由于在运行阶段进行了使命流压缩, 使得任务数减少, 况且幸免了部分任务之间的数据传输, 在寻找最优扶植决策中, 对启发式信息的优化, 使服从高的杜撰机被选到的概率增大, 从而减少多科学使命流扶植期间.
Fig. 5 Scheduling time of the number of different scientific workflows 图 5 不同多科学使命流个数下扶植完成期间图 6表示了4种算法关于图 3和图 4中6个实验的云资源平均利用率, 从图中不错看出, 本文算法关于云资源的利用率高于HEFT-ACO算法、MW-DBA算法和CCRH算法, 这体现出在交流的云资源条目下, MSW- SDCOA算法大概有更好的收益.
Fig. 6 Average utilization of cloud resources 图 6 云资源平均利用率 4 收尾语针对现存多科学使命流用度优化模子未斟酌安全扶植问题, 本文计议了带有安全性和期间守护多科学使命流用度优化模子, 并残酷了针对该模子的用度优化算法MSW-SDCOA.MSW-SDCOA利用数据依赖关系压缩科学使命流, 减少了用度支出爱色电影, 并通过矫正HEFT算法酿成扶植序列以及优化ACO中信息素更新计谋和启发式信息, 进一步改善用度优化效果.实验中使用了3种不同规模下的真正科学使命流, 与HEFT-ACO和MW-DBA算法进行比拟, 评释了MSW-SDCOA算法的灵验性.在改日的有计划使命中, 将斟酌多个用户同期提交多个科学使命流的情况以及资源负载平衡对科学使命流扶植的影响.
上一篇:海角社区 免费视频 天下东谈主工智能大会上30多款大模子是若何来的?
下一篇:没有了