PureEdgeSim仿真器阅读笔记

参考文献:

论文面向的问题:

虽然目前边缘计算和雾计算取得了一些进展,但是存在缺乏仿真工具的问题,尤其是在边缘计算的情况下,异构和受限设备以对等的方式合作并共享资源的情况下。

提出的解决方案:

提出了一个仿真工具包PureEdgeSim,它可以模拟资源管理策略,并从延迟、能耗、网络拥塞、资源利用率和任务成功率等方面评估云计算、雾计算和边缘计算环境的性能。并提出了一种基于模糊决策树的负载平衡算法。它利用强化学习,使其能够适应物联网环境变化,并实现物联网自我能力。同时描述了一个模拟物联网环境的案例研究,以展示PureEdgeSim功能,并评估这些计算范式的性能以及所采用的负载平衡算法的影响。

PureEdgeSim的介绍:

其通过支持数千个设备的模拟来提供高扩展性。它还支持边缘设备的异构性(即设备移动性:移动或固定设备,能源:电池或电源,不同的延迟要求等),并提供了更真实的网络模型。它还提供了一个任务编排器模块,该模块管理可用资源,平衡工作负载,并支持模拟多层场景,其中许多计算范式可以相互结合使用。

**PureEdgeSim分层架构**

**PureEdgeSim模型之间的关系**

Scenario Manager(场景管理器):

为了使实现模拟场景更容易、更轻松,其他每个模块都提供了一组可调参数,Scenario Manager从输入文件加载这些参数。它加载Tasks Generator(任务生成器)所需要的应用程序属性。它还从相应的文件中加载数据中心管理器所需的云数据中心、雾数据中心和边缘设备特性。最后,加载了网络模块使用的网络设置、任务编排模块使用的体系结构和算法,以及仿真管理器需要的仿真延迟、日志参数等仿真参数。它包含两个重要的类:从配置文件加载用户场景的文件解析器和充当这些参数占位符的Simulation Parameters类。

总结:从输入文件中加载其他模块或者仿真过程中所需要的的数据

Tasks Generator(任务生成器):

该模块负责生成任务。默认情况下,根据场景,任务生成器会为每个边缘设备分配应用程序,如e-health、smart home和augmented reality。每个应用程序都有其特定的特性,这些特性可以在应用程序输入文件中定义(即任务大小、CPU利用率、延迟要求等)。然后,根据分配的应用类型和用户定义的任务生成率,任务生成器将生成仿真过程中每个设备将卸载的所有任务。但是,根据他们的需要,PureEdgeSim用户可以轻松地扩展任务生成器类并创建自定义生成器或更实际的生成器。

总结:负责在仿真过程化中为每一个设备生成任务,可扩展

Tasks Orchestration(任务编排器):

为了允许其更广泛的适用性,PureEdgeSim支持定制资源管理策略的实现。这是通过任务编排模块完成的。它由代表决策者的编排器组成。它根据所使用的编排(即负载平衡)算法和体系结构来决定是卸载任务还是在本地执行任务以及卸载到哪里。用户可以通过扩展Orchestrator类轻松地实现他们自己的编排策略,这反映了PureEdgeSim的灵活性和高度的可扩展性。

总结:提供给总体所需要的编排(负载均衡)算法来决定是卸载任务还是在本地执行任务,以及卸载任务在何处(用户可在这里编写自己的算法)

Network Module(网络模块):

主要由网络模型组成。与Cloudsim plus(Cloudsim plus相同)中,分配给每个虚拟机的带宽保持不变,该网络模型考虑到模拟的每个时刻的网络负载,并相应地更改为每个正在传输的任务分配的带宽。因此,当传输任务时,在每个时刻(即从传输开始到传输结束),其分配的带宽将根据此时使用该网络传输的任务总数而变化。该网络模型还考虑了广域网或局域网拥塞造成的带宽限制。因此,如果多个设备连接到同一个LAN接入点,分配给每个设备的带宽就会减少。如果分配的带宽小于广域网的带宽,那么卸载到云端的任务的传输速度将受到局域网带宽的限制,而不是广域网的带宽。

总结:提供网络模型,并再传输过程中,宽带根据任务总数变化 ,并且考虑到了拥塞的带宽限制。

Location Manager(位置管理器):

由于地理分布,雾和边缘计算可以在移动设备移动期间为其提供服务,同时保证最小的延迟,从而催生了新一代的延迟敏感应用,如联网车辆。这个模块通过为每个人分配初始位置并管理它们的移动性来实现这一点。它包含两个主要类:表示设备X和Y坐标的Location类和生成移动设备移动路径的Mobility Manager类。

总结:为每个人分配初始位置并管理它们的移动性。

Data Centers Manager (数据中心管理模块):

Edge和Fog计算模拟器需要在不修改其内部结构的情况下,使用新型设备轻松扩展。此外,每个应用场景(智能城市、联网车辆等)可能需要不同类型的设备(在移动性、能源等方面)。数据中心管理器模块确保了这一点。该模块管理所有数据中心和设备(即云、雾或边缘)。它由两个主要类组成:1)Edge数据中心类继承自CloudSim Plus的数据中心简单类。它包含了边缘设备的特定属性及其相应的方法,如位置、移动性(即设备是否移动)、能源(即电池或电源插座)和电池容量(如果设备是电池供电的),从而可以对设备的异质性进行建模。2) 根据配置文件(即描述数据中心和边缘设备特性的输入文件)生成不同服务器和设备、主机及其虚拟机的服务器管理器。

总结:总结:管理数据中心和设备,方便设备的扩展

Simulation Manager(模拟管理器)

这个模块代表仿真的核心。它负责启动和管理仿真环境、调度事件和生成输出文件。它表示CloudSim Plus和其他PureEdgeSim模块之间的接口。它包含两个主要类:1)Simulation Manager类2) 负责模拟输出的模拟记录器类。1)Simulation Manager类,用于初始化仿真、启动仿真并计划其结束。它还计划任务生成(即,何时生成每个任务并将其发送到编排器),显示模拟进度并打印结果。2) 负责模拟输出的模拟记录器类。它计算结果,在每次迭代结束时显示结果,并以逗号分隔值(CSV)格式保存,以便以后使用电子表格编辑器(例如Microsoft Excel、OpenOffice Calc)轻松利用这些结果。

总结:负责启动和管理仿真环境、调度事件和生成输出文件。

总结:Main Application作为程序大门,Data Centers Manage和Simulation Manager作为程序交互核心,其他模块各司其职,共同带动模拟的进行

PureEdgeSim(一)仿真器阅读笔记相关推荐

  1. trainer setup_Detectron2源码阅读笔记-(一)Configamp;Trainer

    一.代码结构概览 1.核心部分 configs:储存各种网络的yaml配置文件 datasets:存放数据集的地方 detectron2:运行代码的核心组件 tools:提供了运行代码的入口以及一切可 ...

  2. VoxelNet阅读笔记

    作者:Tom Hardy Date:2020-02-11 来源:VoxelNet阅读笔记

  3. Transformers包tokenizer.encode()方法源码阅读笔记

    Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode

  4. 源码阅读笔记 BiLSTM+CRF做NER任务 流程图

    源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...

  5. Mina源码阅读笔记(一)-整体解读

    2019独角兽企业重金招聘Python工程师标准>>> 今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者 ...

  6. “CoreCLR is now Open Source”阅读笔记

    英文原文:CoreCLR is now Open Source 阅读笔记如下: CoreCLR是.NET Core的执行引擎,功能包括GC(Garbage Collection), JIT(将CIL代 ...

  7. QCon 2015 阅读笔记 - 团队建设

    QCon 2015阅读笔记 QCon 2015 阅读笔记 - 移动开发最佳实践 QCon 2015 阅读笔记 - 团队建设 中西对话:团队管理的五项理论和实战 - 谢欣.董飞(今日头条,LinkedI ...

  8. 05《软件需求模式》阅读笔记

    剩下的两个阅读笔记写第二部分.各类需求模式,共八个领域和它的需求模式,这一次写前四个. 基础需求模式,它是所有种类的系统都可能需要的一些东西.系统间接口需求模式使用系统间接口需求模式定义被定义的系统和 ...

  9. [置顶] Linux协议栈代码阅读笔记(一)

    Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int p ...

最新文章

  1. Microsoft Dynamics Marketplace
  2. 自制ACL+DHCP实验(初版)
  3. mysql useradd_useradd失败
  4. mysql 5.6 emoji_让MySQL支持Emoji表情 mysql 5.6
  5. 使用curl自动签到smzdm
  6. Android-滑动解锁高亮文字自定义TextView
  7. 京东B2B业务架构演变阅读心得
  8. 初次使用cocoapods注意事项
  9. 彻底解决zend studio 下 assignment in condition警告
  10. 【JSP】web.xml配置JavaWeb项目首页
  11. Unknown system variable 'query_cache_size'
  12. 还原对于服务器失败 备份集中的数据库备份与现有数据库不同
  13. 技术状态管理计划-模板
  14. Lua包管理工具Luarocks详解
  15. 最新ApkIDE少月版+JAVA环境变量一键配置软件合集
  16. JS逻辑运算符的与,或,非
  17. 正弦交流电有效值系数sqrt(2)的推导
  18. 纳秒脉冲等离子体放电
  19. 这些程序员搞笑段子,看了真的笑skr人!
  20. 一维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_8】

热门文章

  1. VMware Workstation 9下安装Fedora 18教程(转)
  2. 当科技遇上中秋,会碰撞出怎样的火花?
  3. C++:else/elseif使用
  4. Hiveserver2的代理执行之路
  5. excel的frequency函数的用法和实例
  6. python中属性是什么意思啊_python中的静态属性和方法是什么意思
  7. 【每日一练】63—CSS实现金属边框文本效果
  8. “最强”硬核游戏机-基于FPGA硬解游掌机样机展示(GameGirl)
  9. bcache源码分析(一)bcache使用
  10. Xcode 6 技巧: 矢量图像,代码片段以及其他