Gridsim Toolkit 的使用和开发

来源:百度文库 编辑:神马文学网 时间:2024/04/29 22:31:04
--参考 刘祥瑞 老师的同名幻灯片
u      介绍
u      使用
u     源码分析
u     二次开发
一.介绍
•本质 :基于计算经济模型的网格仿真平台。
•目标 :研究在计算经济模型中有效的资源分配技术 。
•特点 :能够模拟网格的多方面特性;事件驱动方式; Java语言开发
•包含:Simjava、Gridsim、Gridbroker
二.使用
1 配置:在Classpath中添加%GRIDSIM%\jars\gridsim.jar和    %GRIDSIM%\jars\simjava2.jar
2 使用层次:Gridbroker包和Gridsim包
3 Gridbroker包的调用:
ü      API方式
ü      调用文件的生成:
•图形用户界面生成java文件
java -jar %GRIDSIM%\jars\visualmodeler.jar
•手工编写
ü      主要步骤: 仿真初始化→ 创建用户→ 创建资源→ 仿真
l              仿真初始化:
–    GridSim.init(用户数目,calendar,调试开关,exclude_from_file, exclude_from_processing, report_name);
l              用户的创建:
主要步骤:
创建任务→创建experiment→创建用户
创建任务:
Gridlet(id,任务量,输入数据量,输出数据量);
创建experiment:
Experiment(id,任务列表,调度策略,flag,时间限制,费用限制,输出文件,资源名列表);
创建用户:
UserEntity(名称,experiment, 传输能力,seed,延迟,结果显示方式);
l              资源的创建:
主要步骤:
创建处理器→创建计算机→创建资源特征→创建资源
创建处理器: PE(id,处理能力)
创建计算机:Machine(id,处理器列表)
创建资源特征:
ResourceCharacteristics(结构,os,计算机列表, TIME_SHARED or SPACE_SHARE, time_zone,价格);
创建资源:
GridResource(名称,传输能力,seed,资源特征, peakLoad, offPeakLoad, holidayLoad, Weekends,Holidays);
l              启动仿真
GridSim.startGridSimulation()
①GridSim的初始化和GridSim的启动
②调度器的创建: 必须继承GridSim类;在构造函数中进行离散对象注册 GridSim(name,baud_rate);Body()函数.
Body()函数的结构:
主要结构:查询资源→查询资源的静态和动态信息→映射计算→提交任务→接受结果
查询资源:GridSim.getGridResourceList()
查询信息:GridSim.getResourceCharacteristics(资源id)
GridSim.getResourceDynamicInfo(资源id)
提交任务:GridSim.gridletSubmit(任务,资源id)
接受结果:GridSim.gridletReceive()
三.源码分析
1. Gridbroker的功能:Buyya的几个调度算法模拟
2. Gridsim的功能:计算经济基础框架
3. 主要仿真流程:
初始化各个离散对象→ 启动仿真→资源的注册→broker向信息中心查询资源→broker映射计算→提交任务→资源处理任务→资源返回结果→结束仿真
4. 主要模块的功能:
–    GridInformationService: REGISTER_RESOURCE和RESOURCE_LIST
–    GridResource:内部的任务结束事件;RESOURCE_CHARACTERISTICS;RESOURCE_DYNAMICS;GRIDLET_SUBMIT
Input/Output:处理事件的发送和网络延迟。
四.GridSim Toolkit的二次开发
相关模块的添加
1.离散对象的添加:
•继承GridSim类;在构造函数里注册自身;有body()函数
•要处理的事件在GridSimTags类中说明
2. 其他模块