230 likes | 421 Views
Parallel Plasma Equilibrium Reconstruction for EAST. 罗正平 2010/09/02. 主要内容. 项目背景. 等离子体平衡重建 原理. 并行计算介绍. 平衡算法并行化及其问题. 2. 1. 3. 4. 5. 下一步 计划. 项目背景. 优化的等离子体控制需要精确控制等离子体位置和 形状. 等离子体位形无法直接测量,但可由外部诊断信号重建. EAST 实时位形控制采用 RTEFIT/ISOFLUX. RTEFIT 是离线 EFIT 的简化版本. 并行EFIT程序快速实现离线EFIT功能.
E N D
Parallel Plasma Equilibrium Reconstruction for EAST 罗正平 2010/09/02
主要内容 项目背景 等离子体平衡重建原理 并行计算介绍 平衡算法并行化及其问题 2 1 3 4 5 下一步计划
项目背景 优化的等离子体控制需要精确控制等离子体位置和形状 等离子体位形无法直接测量,但可由外部诊断信号重建 EAST实时位形控制采用RTEFIT/ISOFLUX RTEFIT是离线EFIT的简化版本 并行EFIT程序快速实现离线EFIT功能
等离子体平衡重建原理 Controller PID, SISO/MIMO Magnetic Sensors Grad-Shafranov Equation Shape Reconstruction
等离子体平衡重建原理 诊断测量计算值 计算网格格点磁通值
等离子体平衡重建原理 Buneman算法或Green函数法 离线EFIT:多次迭代收敛的串行代码 最小二乘拟合
等离子体平衡重建原理 RTEFIT: 简化的离线EFIT
并行计算 是指在并行计算机上,将一个应用分解成多个子任务,分配给不同处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加快求解的速度或提高求解应用问题规模的目的。 高性能计算(High Performance Computing,HPC) 超级计算(Super Computing)
并行计算 • 对称多处理机(Symmetric Multiprocessor) • 对称式共享存储,任意处理器可以直接访问任意内存地址,且访问延迟、带宽、几率都是等价; • 处理器不能太多,总线或交叉开关一旦做成难于扩展。
并行计算 • 分布式共享存储系统(Distributed Shared Memory) • 各处理器拥有物理上相互独立的内存模块。系统整体上,将各个内存虚拟共享。 • 各处理器访问本地内存和远程共享内存的延迟带宽不一致(相差3~10倍)。
并行计算 • 机群(Cluster) • 每个节点都是一台完整的计算机(可以是一台SMP),有完整的操作系统;各个节点通过高性能定制网络相互连接。 • 相对其它并行计算机,可扩展性能好,性价比高。
并行计算 指令级并行 • 提高主频,增加处理器核心 • 向量运算、流水线技术、多线程 缺点: 导致处理器内部功能部件增多,系统复杂,功耗和发热增加。 多处理器并行 • 多个处理器通过总线实现并行 • 多线程、共享变量 多计算机并行 • 多个计算机通过高速网络互联实现并行 • 多进程、消息传递
并行计算 • OpenMP是基于线程的并行编程模型,使用Fork-Join并行执行模型。所有的OpenMP程序开始于一个单独的主线程,主线程串行执行直到遇到并行域才开始并行执行。 主线程 Fork • 所有的OpenMP并行化,都是通过使用嵌入到C/C++或Fortran源代码中的编译制导语句来达到的。 并行域 Join 主线程 Fork Join 主线程
并行计算 • 基于MPI的并行程序,是有一个或多个彼此通过调用库函数进行消息收发通信的进程所组成。 P/M 互连网络 MPI P/M …… …… • 绝大部分MPI实现中,一组固定的进程在程序初始化时生成,可以执行SPMD或MPMD模式。 P/M P/M P/M P/M
平衡算法并行化 CPU: Intel Xeon(R) E5335 Node: Dual quad-core SMP-CMP cluster MPI
平衡算法并行化 • 主要思想: • 采取区域分解,每个进程只负责计算部分数据; • 除必要情况,减少数据传递和同步;
平衡算法并行化 Plasma current density calculation 区域分解: 在子网格区域采用Buneman算法; 边界条件计算需要交换数据; 各部分子网格边界需要交换数据;
平衡算法并行化 Least Square Fitting 调用ScaLAPACK函数“PDGELS”,求解,要求: 数据采用循环块状划分,需要在计算过程中传递数据和同步;
平衡算法并行化 节点间运行:1.2s /8次迭代(8进程8节点) TCP/IP 节点内运行:1.0s/8次迭代(8进程8核) Shared memory 进程数: 最小二乘响应矩阵维数:< 80行(38+35+7?)
平衡算法并行化问题 计算时间远远达不到实时重建的要求 1 计算过程中需要数据传递,未达到计算与通信的重叠优化 2 同步引起的延迟和消息传递启动延迟(最大可达70ms ??) 结论:程序设计失败
下一步计划 1采用OpenMP,迁移到5室的shenma机群上(Quad-Octal core) 2 采用基于CUDA架构的GPU