欢迎来到 bowen.cn 官方网站!
并行与分布仿真系统

并行与分布仿真系统

内容简介本书的重点是并行与分布

联系电话:
产品详情

内容简介

本书的重点是并行与分布式离散事件仿真技术,本书作者把该领域20年的研究成果进行了汇编和梳理,讨论了并行与分布式计算机在系统行为的建模与分析以及分布式虚拟环境的建立方面的应用。
本书清晰地描述了如何实现并行与分布式仿真技术。本书详细地解释了正确实现仿真所的同步算法,包括对时间弯曲算法和乐观技术的透彻讨论。,本书提供了十分丰富的参考文献、图例、表格以及当前的系统实例,如美国国防部的高层体系结构HLA,HLA已经成为美国国防项目的标准体系结构。

目录

目 录
第一部分 总 论
第1章 背景与应用 3
1.1 为什么要用分布/并行仿真 5
1.2 分析仿真与虚拟环境 6
1.3 历史回顾 8
1.3.1 高性能计算团体 8
1.3.2 国防团体 9
1.3.3 交互式游戏和互联网团体 9
1.4 应用 10
1.4.1 军事应用 11
1.4.2 娱乐 11
1.4.3 社会交往和商业合作 12
1.4.4 教育和训练 12
1.4.5 远程通信网络 12
1.4.6 数字逻辑电路和计算机系统 13
1.4.7 交通 14
1.5 基础技术 14
1.6 硬件平台 14
1.6.1 并行计算机与分布式计算机 14
1.6.2 共享存储多处理器 16
1.6.3 分布式存储多计算机 17
1.6.4 单指令流、多数据流计算机 18
1.6.5 分布式计算机 18
1.7 总结 19
1.8 补充阅读材料 19
第2章 离散事件仿真基本原理 23
2.1 时间 25
2.2 实时、比例实时与尽可能快执行 26
2.3 状态改变和时间流机制 27
2.3.1 时间步进执行 27
2.3.2 事件驱动执行 29
2.4 离散事件仿真程序 29
2.5 一个应用例子 31
2.6 仿真的启动与停止 34
2.7 并行/分布式仿真例子 34
2.8 世界观和面向对象仿真 35
2.8.1 仿真过程 36
2.8.2 基于对象仿真和面向对象仿真 38
2.8.3 查询事件和推拉处理 39
2.8.4 事件取消 40
2.9 开发并发执行的其他途径 40
2.10 补充阅读材料 41
第二部分 并行与分布式离散事件仿真
第3章 保守同步算法 45
3.1 同步问题 47
3.2 使用空消息避免死锁 49
3.3 前瞻量和仿真模型 52
3.4 死锁的检测和恢复 53
3.4.1 死锁检测 53
3.4.2 死锁恢复 55
3.5 同步执行 57
3.5.1 集中式栅障 58
3.5.2 树栅障 58
3.5.3 蝴蝶栅障 59
3.5.4 暂态消息 60
3.5.5 一个简单的同步协议 63
3.5.6 逻辑进程间的距离 64
3.6 受限滞后 67
3.7 条件信息与无条件信息 69
3.8 动态进程及互连 69
3.9 可重复性和并发事件 71
3.9.1 使用时戳的隐藏域排序并发事件 71
3.9.2 优先数 72
3.9.3 接收方指定排序 72
3.10 保守机制的性能 72
3.11 保守机制的总结和评论 77
3.12 补充阅读材料 78

第4章 时间弯曲算法 81
4.1 预备知识 83
4.2 本地控制机制 84
4.2.1 回退状态变量 85
4.2.2 取消消息发送 86
4.2.3 零前瞻量、并发事件及可重复性 91
4.3 全局控制机制 92
4.3.1 化石回收 93
4.3.2 错误处理 94
4.4 计算全局虚拟时间 95
4.4.1 暂态消息问题 95
4.4.2 同步报告问题 97
4.4.3 Samadi的 GVT算法 98
4.4.4 Mattern的GVT算法 98
4.5 其他机制 102
4.5.1 动态内存分配 102
4.5.2 周期性状态保存 104
4.5.3 指定保存内容 105
4.5.4 事件取消 107
4.5.5 懒惰撤销 108
4.5.6 懒惰再评估 110
4.6 调度逻辑进程 111
4.7 总结 112
4.8 补充阅读材料 112
第5章 乐观技术 115
5.1 时间弯曲算法中的内存使用 117
5.1.1 预备内容:状态向量和消息发送时戳 118
5.1.2 内存管理机制和消息返回 119
5.1.3 存储化 120
5.1.4 回撤协议 122
5.1.5 人工回退协议 123
5.1.6 回剪协议 124
5.1.7 基于内存的流控制协议 125
5.1.8 性能和内存需求之间的权衡 126
5.2 时间弯曲算法中的性能风险 127
5.2.1 追逐错误计算 127
5.2.2 回退反射 129
5.3 其他乐观同步算法 130
5.3.1 移动时间窗 131
5.3.2 基于前瞻量的阻塞机制 131
5.3.3 本地回退

摘要与插图

(1)状态变量:描述系统的状态(例如,图2-5显示了以后将在机场仿真实例中用到的变量,这些变量简要地表示了机场上空的飞机数量、地面飞机数量和跑道的状态)。
  (2)事件表:包含了在仿真的将来某时刻将要发生的事件(图2.5显示了图2-4中的事件,时戳值为9:56的事件没有出现是由于它尚未被创建)。
  (3)全局时钟:表示仿真时间轴上仿真目前所属的时刻(在图2.5中仿真推进到仿真时间8:45)。
  若时钟变量包含一个丁值,这表示物理系统中直到丁表示的时刻为止的所有活动已经仿真完毕,而迟于丁的活动尚未仿真。事件表中的所有事件的时戳值必须大于或等于丁。
  从操作层面上来讲,一个事件通常通过这样一个数据结构来实现,它包括该事件的时戳(例如下午9:16)、事件类型的表示(例如飞机抵港)和详细描述事件细节的各种参数(例如396航班到达洛杉矶机场)。
  在物理系统中像飞机抵港这样的“事件”会“自然发生”。而在仿真世界中,除非仿真计算使得事件发生,否则什么也不会发生。换句话说,需要一种机制来创建事件。在仿真中创建新事件的机制被称为调度事件。例如,假设图2-4和图2.5中描述的仿真将仿真时间推进到9:00,此时的事件表示200航班已降落。这时仿真可能调度一个新的事件,表示该飞机将在9:56离港的事实。在仿真程序中“调度一个事件”是通过为新事件分配内存空间、填入时戳值、事件类型和相关参数,并将事件加入事件表数据结构来实现的,事件调度是仿真程序对物理系统因果关系建模的一种方式。
在线客服
微信联系
客服
扫码加微信(手机同号)
电话咨询
返回顶部