240 likes | 421 Views
数字流域模型的 集群计算与并行算法. 报告人:李铁键. 王光谦 李铁键 刘家宏. 水沙科学与水利水电工程国家重点实验室. 汇报内容. 数字流域模型的计算需求 河网编码方法 并行计算的任务调度流程与分配算法 并行计算的实现. 数字流域模型的计算需求. 数字流域模型的框架. 数以万计的单元组成流域. 瓦窑堡. 河网成为 模型计算 的承载者. 每个坡面 - 沟道单元的机理型水沙模型. 水沙演进的上下游依赖 使计算必须遵从 一定的顺序 不同子流域的不相关性 又使并行计算成为可能. 需要解决的问题. 河网的编码方法 并行计算平台的选择 任务调度流程
E N D
数字流域模型的集群计算与并行算法 报告人:李铁键 王光谦 李铁键 刘家宏 水沙科学与水利水电工程国家重点实验室
汇报内容 • 数字流域模型的计算需求 • 河网编码方法 • 并行计算的任务调度流程与分配算法 • 并行计算的实现
数以万计的单元组成流域 瓦窑堡 河网成为模型计算的承载者 每个坡面-沟道单元的机理型水沙模型
水沙演进的上下游依赖使计算必须遵从一定的顺序不同子流域的不相关性又使并行计算成为可能水沙演进的上下游依赖使计算必须遵从一定的顺序不同子流域的不相关性又使并行计算成为可能 需要解决的问题 • 河网的编码方法 • 并行计算平台的选择 • 任务调度流程 • 任务分配算法
将超一维的河网抽象为二叉树 • 直接定位能力: 第n层的起始编码为2n-1 节点k的子节点编号为2k和2k+1 • 与河网的对应关系: 节点k—河段 节点2k—上游干流河段 节点2k+1—上游支流 用数组表示的完全二叉树
现实河网不是完全二叉树,而是偏向干流一侧的满二叉树:现实河网不是完全二叉树,而是偏向干流一侧的满二叉树: 二叉树的二元编码 • 保留了直接定位能力 • 节省序号数字 • 显式的层数代表河段距流域出口的距离 • 层内编号代表河段距干流的距离(指数变化)
(5,2) (5,3) (2,1) (4,1) (5,0) (3,0) (2,0) (4,0) (5,1) (3,1) (4,3) (4,2) 基于二进制字符串的编码生成方法 (1,0) • 将层数定义为编码的长度分量 • 将层内编号定义为编码的取值分量
大流域的分级分区编码 树->森林
任务调度流程 主从模式 数据库集中存储 动态任务单元 • 可控并行粒度 • 可适应计算节点的性能差异
任务分配算法 • 分级分区河网的处理: • 按子流域级别由高至低、支流由上游至下游的顺序排列各河网树 • 计算任务搜索在整个森林中进行 • 每株树中允许生成多个计算任务(子树) • 将待算子树的河段编码按上下游顺序展平到数组中,作为计算任务包发送到空闲的计算节点 • 计算节点运行专业模型,依次计算任务包中的各河段
待算子树的生成 设定期望子树规模[Min, Max] 设定各河段的计算状态为F指针指向流域出口 结束此次调用 Y 指针沿干流向上游方向游走至河段以上子树规模<Max N 存在此河段? 指针定位至当前河段的下游河段的支流 N 子树规模>Min&计算状态为F Y • 按先干流后支流的顺序 搜索符合要求的子树 • 通过 设定计算状态标志 以遵从 上下游依赖关系 由指针位置拆分出待算子树将指针位置至流域出口河段的计算状态置为T,程序返回
并行粒度(子树规模)控制 • 子树规模越小, 计算过程中的数据交换量越大 • 子树规模越大, 计算过程中的并行度下降得越快 • 需要控制并行粒度先粗后细,动态变化 • 参与计算的进程随剩余河网并行度的降低而减少
支出 收入 动态最优并行粒度: 时间收益算法 • 时间收益:分配一个计算任务包给空闲进程(相对于不分配)所能获得的并行时间的减少量。 增加的时间 Tlost=Max{TD·[1-T(p)/T(p+1)],T0(n)} 减少的时间 Tbenif=Tc(n)/p • p : 当前进程数 n: 子树规模 • TD: 相应子树的串行数据访问时间 • TC: 相应子树的串行模型计算时间
特定粒度下的进程数上限 特定进程数下的可用粒度 时间收益算法 进程数与并行粒度互动的任务分配过程 并行效率随集群规模的增大而降低存在一个集群规模的上限 特定进程数下存在一个可用粒度范围进程数过多将不存在优化的任务分配
TDWM_MPI_exe DB MPI_Control MPICH Windows API C++ Windows 软件运行平台
MPI_Control 图形显示区: 进度、CPU利用率 运行控制与参数设置 运行报告 集群显示与选择区: 计算机、进程 消息滚动区
运行情况总结 • 适应性强 • 河网:形状、规模 • 集群:性能不对等 • 并行效率很高 • 集群规模和总性能受限于数据库 • 数据库系统能承受的并发量 • 分布数据库的发展方向
谢 谢 ! • 数据库访问总串行时间 • 空闲总串行时间 • 通讯时间 • 并行度 • 并行效率