1、并行程序, 编译与函数库简介,应用软件的调优 高性能服务器产品部 应用支持处:胡自玉(博士),主要内容,并行程序高性能计算与并行计算简介并行计算机的发展并行计算体系结构并行计算机的性能评价技术MPI函数库的设计基础并行算法的设计基础应用软件调优-化工方向,高性能计算(High Performance Computing)并行计算(Parallel Computing)并行计算,就是在并行机上所做的计算计算科学与传统的两种科学,即理论科学和实验科学,并立被认为是人类认识自然的三大支柱,他们彼此相辅相成地推动科学发展与社会进步。在许多情况下,或者是理论模型复杂甚至理论尚未建立,或者实验费用昂贵甚至
2、无法进行时,计算就成了求解问题的唯一或主要的手段。,高性能计算,高性能计算的应用领域,计算密集(compute-intensive) 科学计算与数字模拟数据密集(data-intensive) 数字图书馆、数据仓库、图像处理网络密集(network-intensive) 网络应用以上三种的混合,高性能计算的分类,并行计算机,并行计算机就是由多个处理单元组成的计算机系统,这些处理单元相互通信和协作以快速、高效求解大型复杂问题。,处理单元有多少 处理单元的功能有多强 处理单元之间怎样连接 处理单元的数据如何传递 各处理单元如何相互协作并行程序如何编写,并行计算机的发展,(1)并行机的萌芽阶段(19
3、64-1975) (2)向量机/ SMP的发展和鼎盛阶段(1976-1990)(3)MPP出现和蓬勃发展阶段(1990-1995) (4)Cluster出现,并成为并行计算机的主流(1995年后),SMP DSM(CC-NUMA) MPP Cluster,常见的几种并行计算体系结构,多个CPU连接于统一的内存总线, 多CPU共用一个内存内存地址统一编址,单一操作系统映像可扩展性较差,一般CPU个数少于32个目前商用服务器多采用这种架构,SMP- Symmetric MultiProcessing,物理上分布存储、所有内存模块统一编址非一致内存访问(NUMA)模式 基于Cache的数据一致性,又
4、称CC-NUMA节点数可扩展到几百个,小型机多为此类架构,DSM- Distributed Shared Memory,节点个数可达成百上千个节点类型可以是DM、SMP、DSM节点之间采用专用高速互连设备排列在Top500前面的多数系统属于这种类型,MPP- Massively Parallel Processors,独立的节点、商品化网络连接开放的硬件设备、操作系统、应用编程接口节点数可达几百个,性能已接近超级计算机系统近年来发展很快,已广泛应用到高性能科学计算领域,.,.,System Area Network,Local Area Network,LAN,I/O Bus,Memory B
5、us,System,Chipset,SAN,CPUs,Cluster,集群:将多个计算机系统通过网络连接起来如同一个系统一样提供服务。 集群一般可以获得高并行处理能力、高可用性、负载均衡和管理便捷性。 高并行处理能力: 多结点间通过并行环境和并行程序设计实现应用的高效并行处理。 高可用性:通过“failover”(失效恢复)集群技术获得。当然某结点发生故障时候,资源可以自动在2个或者多个结点间自动迁移。 负载均衡:通过在多个结点上实现应用的负载均衡实现。 管理便捷性:通过机群系统软件和机群管理软件对整个机群实现单一管理。,Cluster,Linpack,Linpack是国际上流行的用于测试高性
6、能计算机系统浮点性能的benchmark通过对高性能计算机求解线性代数方程组能力的测试,评价高性能计算机的浮点性能HPL(High Performance Linpack)针对大规模的并行计算机系统的测试HPL版Linpack一般用于并行超级计算机用户可以选择矩阵的大小(问题规模)、使用各种优化方法来执行测试程序,寻求最佳的测试结果 计算量(2/3 * N3 2*N2) / 计算时间http:/lib.org/benchmark/hpl/,www.top500.org,NAS并行基准测试,数值空气动力学模拟(NAS22)并行基准测试NPB(NAS Parallel Benchmark)是由NA
7、SAAmes 于1991 年研究开发的由8 个来源于计算流体动力学(CFD23)的程序组成,这8 个不同的程序从不同的方面反映了CFD 计算的特点,包括5 个核心和3 个模拟CFD 应用目前每个基准测试有4 类问题规模:A、B、C、D,A 规模最小,D 最大。,SPEC HPC 测试,SPEC 成立于20 世纪80 年代末,它的目的就是建立、维持和认证相关的基准测试以应用于新一代的高性能计算机,它的主要工作有两个:开发测试计算机性能的测试工具。SPEC HPC 软件包有三大组成部分:SPEC CHEM(化学) SPEC ENV(环境)SPEC SEIS(地震)最新的测试程序是SPEC HPC2
8、002,SPEC HPC2002 的评价指标说明了一个系统在24 小时能运行的性能测试次数,主要内容,并行程序MPI函数库的设计基础MPI的简介MPI的核心函数MPI的编辑与运行MPI的通信并行算法的设计基础应用软件调优-化工方向,什么是MPI?,MPI(Message Passing Interface )MPI是一个库,而不是一门语言;MPI是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准; MPI是一种标准或规范的代表,各厂家可以有自己对它的具体实现;目标: 是提供一个实际可用的、可移植的、高效的和灵活的消息传递接口标准.MPI提供C/C+和Fortran语言的绑定,MPI
9、的实现,MPICH:最重要的MPI实现。 mpich1.* ; mpich2.* (www-unix.mcs.anl.gov/mpi/ mpichIntel MPI: (http:/ MVAPICH: (http:/mvapich.cse.ohio-state.edu/download/mvapich2)LAM MPI: Ohio State University开发。 (http:/www.lam-mpi.org/download/下载),MPI程序的编译与运行,MPI程序的编译:mpicco mpi_prog mpi_proc.cmpiCCo mpi_prog mpi_prof.Cmpif
10、77 o mpi_prog mpi_prog.fmpif90 o mpi_prog mpi_prof.f90ifort mpi_prog.f -L/usr/local/mpich-1.2.7/lib lmpich -lfmpichMPI程序的运行命令:mpirun machinefile filename np N (machinefile:机器列表文件; np:运行的进程数)MPI程序的运行过程:找到机器列表通过SSH或RSH找到所有机器在所有机器上执行程序结束所有机器上的程序,MPI程序的运行,#include #include “mpi.h”int main (int argc, cha
11、r* argv) MPI_Init (,例1:简单的Hello world程序,MPI程序的一般结构,MPI简介MPI的核心函数MPI的启动和结束点对点通信非阻塞通信集合通信MPI的四种通信模式MPI并行程序的两种基本模式,MPI并行程序设计基础,MPI的核心函数,MPI的初始化和结束MPI_Init, MPI_FinalizeMPI_Comm_size, MPI_Comm_rank点到点通信MPI_Send, MPI_Recv非阻塞通信MPI_Isend, MPI_Irecv, MPI_Wait集合通信MPI_Bcast, MPI_ReduceMPI的四种通信模式,MPI初始化:Fortra
12、n:MPI_INIT(ierr)C: int MPI_Init(int* argc , char* argv)MPI的初始化例行函数,用于初始化MPI运行环境每一个MPI进程调用的第一个MPI函数都是MPI_Init。该函数指示系统完成所有的初始化工作,以备对后续MPI库的调用进行处理。MPI结束:Fortran: MPI_FINALIZE(ierr)C:int MPI_Finalize(void)结束MPI执行环境。该函数一旦被应用程序调用时,就不能调用MPI的其它例行函数(包括MPI_Init),用户必须保证在进程调用MPI_Finalize之前把与完成进程有关的所有通信结束。,MPI的初
13、始化和结束,确定通信域中的进程数量C:MPI_Comm_size(MPI_Comm comm, int * size) 当MPI初始化后,每一个活动进程变成了一个叫做MPI_COMM_WORLD(全集)的通信域中的成员。通信域是一个不透明的对象,提供了在进程之间传递消息的环境。进程通过调用函数MPI_Comm_size来确定一个通信域中的进程总数。确定进程的标识符 C: MPI_Comm_rank(MPI_Comm comm, int *rank)在一个通信域内的进程是有序的。在一个有p个进程的通信域中,每一个进程有一个唯一的序号(ID号),取值为0p。进程可以通过调用函数MPI_Comm_r
14、ank来确定它在通信域中的序号。,通信域函数,#include #include “mpi.h”int main (int argc, char* argv) int numProc, myRank; MPI_Init (,例2:简单的C+MPI程序,消息发送函数 MPI_Send(buf,count,datatype,dest,tag,comm) 参数说明:IN buf:发送缓冲区的起始地址IN count:将要发送的数据的个数IN datatype:发送数据的数据类型IN dest:目的进程标识号IN tag:消息标志IN comm:通信域MPI_Send将发送缓冲区中的count个dat
15、atype数据类型的数据发送到目的进程,目的进程在通信域中的标识号是dest,本次发送的消息标志是tag,使用这一标志,就可以把本次发送的消息和本进程向同一目的进程发送的其他消息区别开。,点到点通信,阻塞通信,消息传送机制阻塞方式:它必须等到消息从本地送出之后才可以执行后续的语句保证了缓冲区等资源的可再用性,非阻塞方式:它不须等到消息从本地送出就可以执行后续的语句但非阻塞调用的返回并不保证资源的可再用性非阻塞通信主要用于计算和通信的重叠,从而提高整个程序执行的效率。,非阻塞通信,非阻塞消息发送函数: MPI_Isend(buf, count, datatype, dest, tag, comm
16、, request) 参数说明: IN buf 发送缓冲区的起始地址 IN count 发送数据的个数 IN datatype 发送数据的数据类型 IN dest 目的进程号 IN tag 消息标志 IN comm 通信域 OUT request 返回的非阻塞通信(状况的)对象MPI_ISEND的功能是启动一个(标准的)非阻塞发送操作它调用后立即返回,MPI_ISEND的调用返回并不意味着消息已经成功发送,它只表示该消息可以被发送。,非阻塞通信,非阻塞消息接收函数: MPI_Irecv(buf, count, datatype, dest, tag, comm, request) 参数说明:
17、OUT buf 接收缓冲区的起始地址 IN count 接收数据的最大个数 IN datatype 每个数据的数据类型 IN source 源进程标识 IN tag 消息标志 IN comm 通信域 OUT request 非阻塞通信(状况的)对象MPI_IRECV的功能是启动一个(标准的)非阻塞接收操作,它调用后立即返回。MPI_IRECV调用的返回并不意味着已经接收到了相应的消息,它只表示符合要求的消息可以被接收。,非阻塞通信,非阻塞通信的完成对于非阻塞通信调用的返回并不意味着通信的完成,需要专门的通信语句来完成或检查该非阻塞通信。完成调用结束后,可以保证该非阻塞通信已正确完成。MPI_W
18、AIT(request,status) 等到与该非阻塞通信对象相应的非阻塞通信完成后才返回,同时释放该阻塞通信对象。MPI_TEST(request,flag,status)它的返回不一定等到与非阻塞通信对象相联系的非阻塞通信的结束。若调用时该阻塞通信已经结束,则与MPI_WAIT效果相同,完成标志flag=true若调用时该阻塞通信还没完成,可以返回,但完成标志flag=false,非阻塞通信,集合通信,集合通信是包含在通信因子中的所有进程都参加操作集合通信一般实现三个功能通信:组内数据的传输同步:组内所有进程在特定的地点在执行进度上取得一致计算:对给定的数据完成一定的操作集合操作的三种类型
19、:通信:广播(broadcast)、分散(scatter)、收集(gather)、全互换(alltoall)等同步(barrier):集合中所有进程都到达后,每个进程再接着运行规约(reduction):集合中的其中一个进程收集所有进程的数据并计算(如:求最大值、求最小值、加、乘等),集合通信的通信功能,一对多通信广播 MPI_Bcast()散发 MPI_Scatter(),多对一通信收集 MPI_Gather(),多对多通信组收集MPI_Allgather()全互换MPI_Alltoall(),组通信的同步功能,MPI_Barrier(MPI_Comm,comm)在组中建立一个同步栅栏当每个
20、进程都到达MPI_Barrier调用后,程序才接着往下执行,集合通信的计算功能,归约操作MPI_Reduce(),就是接收缓冲区中数据的改变,而这是直接与各个进程发送缓冲区中的数据密切相关的。归约、组归约、归约并散发、扫描及用户自定义归约操作等MPI预定义的归约操作有:求最大值、最小值、求和、求积、逻辑与、逻辑或等,例2:并行PI程序, 的并行求解算法: 由三角函数和积分公式可知: 假设将区间0,1 分成n等份,记 ,则采 用梯形积分公式计算上式积分如下: 由极限的定义,可以将 作为计算的近似值。 即取 ,这里,算法的几何意义:设计求值并行算法的关键是构造一个合适的函数f ( x) ,使得它计
21、算起来既简便,误差又小。,例2:并行PI程序,例2:并行PI程序,#include mpi.h#include #include double f(double);double f(double x) /* 定义函数f(x) */ return (4.0 / (1.0 + x*x);int main(int argc,char *argv) int done = 0, n, myid, numprocs, i; double PI25DT = 3.141592653589793238462643; /* 准确的值*/ double mypi, pi, h, sum, x; double sta
22、rtwtime = 0.0, endwtime; int namelen; char processor_nameMPI_MAX_PROCESSOR_NAME;,MPI_Init( /*给矩形面积赋初值*/,例2:并行PI程序,for (i = myid + 1; i = n; i += numprocs) /*每一个进程计算一部分矩形的面积,若进程总数numprocs为4,将0-1区间划分为100个矩形,则各个进程分别计算矩形块: 0进程 1 5 9 13 . 971进程 2 6 10 14 . 982进程 3 7 11 15 . 993进程 4 8 12 16 . 100*/ x = h
23、* (double)i - 0.5); sum += f(x);mypi = h * sum; /*各个进程并行计算得到的部分和*/MPI_Reduce(/*将部分和累加得到所有矩形的面积该面积和即为近似值*/,例2:并行PI程序,例2:并行PI程序,if (myid = 0) /*执行累加的0号进程将近似值打印出来*/ printf(pi is approximately %.16f, Error is %.16fn, pi, fabs(pi - PI25DT); endwtime = MPI_Wtime(); printf(wall clock time = %fn, endwtime-s
24、tartwtime); fflush( stdout ); MPI_Finalize();,MPI的四种通信模式,标准通信模式(standard mode) MPI_SEND MPI_RECV是否对发送的数据进行缓存是由MPI自身决定的,而不是由并行程序员来控制。也就是说,没准是否进行缓存。缓存通信模式(buffered-mode) MPI_BSEND使用缓冲区发送消息, 只要缓冲区足够大, 而不管接收进程是否开始接收它都将立即返回, 也就是说, 在发送消息时是不需要等待的。消息发送能否进行及能否正确返回不依赖于接收进程,完全依赖于是否有足够的通信缓冲区可用。同步通信模式(synchronou
25、s-mode) MPI_SSEND它可以在没有接收信号时就开始发送, 但要等到接收完成之后才能结束通信操作, 好处是无需用户自己申请缓冲区.就绪通信模式(ready-mode) MPI_RSEND只当已经有接收信号时才开始发送消息, 否则将出现错误.,主要内容,并行程序MPI函数库的设计基础并行算法的设计基础并行程序的设计方法并行算法的相关的基本概念并行算法的分解并行算法的分类应用软件调优-化工方向,并行程序设计方法,分割按任务分割按数据分割通信确定通信聚合合理组织各任务映射按处理器来设计聚合后 的任务,分割,任务分割优点:开发成本低,天然的分割缺点:负载均衡,扩展性,加速比,数据分割优点:难
26、度小,扩展性好,负载均衡缺点粒度较细,一般情况,将任务分割与数据分割结合在一起。,通信,考虑分割后的各个模块关系,确定通信模式都有哪些数据需要共享模块间是否有依赖关系点对点通信一个进程对另一个进程集合通信一组进程共享数据,聚合,如何将分割的各模块组合给进程运行提高性能,减少通信量,增大粒度将通信频繁的小模块分为同一组保证程序的可扩展性,随着数据规模的增大可使用更多的CPU资源易于编写和维护程序,映射,按处理器来设计聚合后的任务最大化的CPU利用率最小的CPU间通信量每颗CPU分配1个任务还是多个任务动态负载均衡还是静态负载均衡,并行算法,并行计算的相关基本概念并行算法设计基本原则并行化分解方法
27、并行算法分类数值计算并行算法,并行计算的相关基本概念,并行算法设计:将一个任务分解为多个可同时执行的子任务,这些子任务分别运行在不同的处理器上,通过相互之间的数据交换完成同一个任务。与并行计算有关的概念:粒度:各个处理机可独立并行执行的任务大小的度量。加速比:效率:性能:,与体系结构相结合线性结构,二维网络结构具有可扩展性并行算法是否随处理机个数增加而能够线性或近似线性的加速粗粒度通常情况,粒度越大越好减少通信减少通信量和通信次数优化性能单机计算效率和并行效率,并行算法设计基本原则,区域分解法:分解被执行的数据非重叠的区域分解,这种分解将离散化后的方程化成一些独立的小规模问题和一个与每个小问题
28、关联的全局问题,此种分解给出的方法是子结构方法。带重叠的区域分解,并行化分解方法,功能分解法:功能分解是将不同功能组成的问题,按照其功能进行分解的一种手段,其目的是逐一解决不同功能的问题,从而获得整个问题的解。例如:使用Newton 法求解非线性方程F(x) = 0 在求解方程的过程中,需要用到函数值和导数值。因此,如果一部分处理机负责计算函数值,另一部分处理机负责计算导数值,就可以得到一种并行计算方法。 这时候计算是按照功能进行分配的,也既是所谓的功能分解。,并行化分解方法,流水线技术:流水线技术是并行计算中一个非常有效的、常用的手段,在并行计算中起着非常重要的作用。以求解一簇递推问题为例加
29、以说明: 上述计算中,沿 j 方向的计算是互相独立的,而沿 i 方向的计算则存在着向前依赖关系(递推关系),无法独立进行。 不失一般性,我们假设数据划分仅沿 i 方向进行,即假设在有3 个处理器的分布式系统上,ai,j 被分成 3 段,如图所示,相同颜色的部分是可以并行计算的。,并行化分解方法,流水线计算示意图,分而治之方法:以一个简单的求和问题为例,说明什么是分而治之方法。假设在q = 2*2*2个处理机上计算: 可以将计算依次分解为两个小的求和问题,用下图简单的描述(图中给出的是处理机号)。在图中,从上至下是分解的过程,从下至上是求部分和的过程。这就是有分有治的一个简单过程,也既是一种分而
30、治之方法。,并行化分解方法,分而治之计算示意图,按运算的基本对象数值并行算法非数值并行算法按进程间的依赖关系同步并行算法异步并行算法纯并行算法按并行计算任务的大小粗粒度并行算法细粒度并行算法,并行算法分类,数值计算是指基于代数关系运算的计算问题如矩阵运算、多项式求值、线性代数方程组求解等。求解数值计算问题的方法称为数值算法(Numerical Algorithm)科学与工程中的计算问题如计算力学、计算物理、计算化学等一般是数值计算问题非数值计算是指基于比较关系运算诸如排序、选择、搜索、匹配等符号处理,相应的算法也称为非数值算法(Non-numerical Algorithm)非数值计算在符号类
31、信息处理中获得广泛应用,如数据库领域的计算问题,海量数据挖掘等近年来广泛关注的生物信息学主要也是非数值计算,并行算法分类,矩阵并行计算 行列分块算法 行行分块算法 列行分块算法 列列分块算法 Cannon算法线性方程组并行求解 并行LU分解算法 三角方程组的并行分解算法对称正定线性方程组并行解法代数特征值问题并行解法迭代算法并行化,数值计算并行算法,矩阵并行计算矩阵存储方式卷帘式,数值计算并行算法,串行矩阵乘法(i-j-k形式)行列分块并行算法,数值计算并行算法,行列分块算法示意图,数值计算并行算法,线性方程组的并行求解线性方程组的定义和符号 a1,1x1 + a1,2x2 + + a1,nx
32、n = b1 a2,1x1 + a2,1x2 + + a2,nxn = b2 ,记为 AX=b an,1x1 + an,1x2 + + an,nxn = bn,数值计算并行算法,线性方程组的LU分解算法,第一步:LU分解,第二步:解三角方程组,数值计算并行算法,数值计算并行算法,分块矩阵在处理器阵列的数据分布情况随机生成的稠密矩阵 被分成 的块,循环分布在 的二维处理器阵列上。,分块矩阵的LU分解过程示意,数值计算并行算法,主要内容,并行程序MPI函数库的设计基础并行算法的设计基础应用软件调优-化工方向应用软件瓶颈分析应用软件的优化方法应用软件优化举例应用软件特征分析,应用软件存在的瓶颈分析,
33、,软件是瓶颈软件架构跟不上硬件架构的发展重硬不重软,软件升级更新慢计算算法陈旧理论突破困难交叉背景人员匮乏,单位:核,注:参考上海超算中心2011年数据,浪潮之应用软件性能提升之应对策略,,应用特征分析硬件优化软件优化,GPUMIC专用机,输入参数优化代码级优化物理模型创新算法优化,模型算法革新,技术架构创新,系统平台优化,持续循环,通向性能提高100倍之路,平 台 为 依 据应 用 为 导 向理 论 为 指 引,基于应用主要性能特征指导硬件和软件优化,,,平衡多样的计算需求,构建可扩展的高性能计算系统,最大化发挥现有海量应用的性能。,HPC应用需求按硬 件主要组成划分: CPU 内存 存储
34、互联,浪潮HPC系统平台优化,浪潮HPC系统平台优化,,软件平台优化,应用优化,计算密集型应用优化思路,硬件平台优化,CPU:提升频率HT: 关,OS:Linux、精简内核、向量化支持编译器: ifort/icpc O2/O3 SSE AVX 数学库: MKL、IMSL、Goto,输入参数:精度、收敛条件、边界条件代码优化:数组向量化,循环、函数优化模型理论:如赝势、DFT、QMC、CI,浪潮HPC系统平台优化,,软件平台优化,应用优化,硬件平台优化,I/O密集型应用优化思路,阵列性能:硬盘、RAID、控制器、整机性能、多路径模式网络性能:存储网络、数据网络,文件系统参数:依应用调整参数协议转
35、换:Samba协议转换作业调度:合理分配处理器与IO资源,输入参数:与文件系统相匹配的数据块代码优化:与文件系统匹配的并行IO模型,浪潮HPC系统优化-示例,,测试软件环境:CFD自研代码,27M cellsIntel composer xe 2012测试硬件环境:1个管理结点、1 个IO 结点,8 个刀片计算节点Inifiband计算网络,某研究所CFD自研代码, 要求在固定硬件平台下, 进行应用运行性能优化。,浪潮HPC系统优化-示例,问题定位及分析,,分析: CPU的sy,与id项说明CPU没有得到充分的应用。 应用程序出现了多个进程处于sleep状态。 程序处于sleep状态,一般是由
36、于进程运行步调不一致,部分进程出现等待其它进程的数据的情况。,图:CPU运行状态监控图,浪潮HPC系统优化-示例,问题定位及分析,,分析:由MPI函数运行时间看出MPI_Waitall平均占了22.5%的wall time.,图:程序MPI函数运行时间,浪潮HPC系统优化-示例,优化对比,,浪潮HPC系统优化-示例,优化对比,,浪潮HPC系统优化-示例,优化对比,,浪潮HPC系统优化-示例,优化结果,,应用经过系统优化后,性能得到了明显提升,加速比也较优化前有了近似线性的表现。,,浪潮HPC模型与算法革新,1950,1970,1960,1980,1990,2000,2010,HF,DFT,Ca
37、r-Parrrinello,模型算法创新是突破性能的关键,应用程序使用的是几十年前的算法,浪潮HPC模型与算法革新,,硬件平台,系统/中间件平台,程序代码,密度泛函,分子动力学,有限元,FFT,线性方程,物理模型,数学算法,理论模型,并行模式,算法参数,收敛条件,浪潮HPC模型与算法革新-示例,,研究背景: 该课题研究了半导体量子点中少电子的自旋轨道耦合性质,通过控制自旋轨道耦合强度的外加电场,来调控电子的自旋态,以实现自旋电子学器件,对电子信息产业发展意义重大物理模型、算法分析: 使用全Configuration Interaction (CI) 方法计算少电子态,其中对哈密顿量的对角化采用
38、QR算法优化前性能表现: 内存占用量极大,最大矩阵规模104,并行度差10核,所能研究体系3个电子态,浪潮HPC模型与算法革新-示例,优化分析使用部分CI方法(大幅减少弱相关性计算)使用Iteration方法(提高并行度)Fortran代码实现,相对C/C+有10%左右性能提升使用大量列矢量,适合AVX指令向量化加速,向量化率99%优化集合通信,,(理论入手并指导实现),浪潮HPC模型与算法革新-示例,优化结果,,优化后的程序可以用来研究多电子自旋相互作用,也可以用来研究拓扑绝缘体的边缘态,意义重大!,Some science research software application,Cha
39、racteristic Features-Gaussian,Gaussian examplesAnimating Optimizations and Reaction Paths,Steps from a geometry optimization of benzene,This sequence displays a series structures from an Intrinsic Reaction Path (IRC) calculation of the 1,2 hydrogen shift reaction in which formaldehyde transforms int
40、o trans hydroxy carbene,Speedup and Network comparison,,1NF5280M3( Use OpenMP to run the Gaussian,using 16 CPU for each node )2NF5280M3(Use Linda to run the Gaussian,using 8 CPU for each node),The chart shows the comparison of Gaussian examples running time on the TS850 and NF5280M3 platformDark gre
41、y represents the case of TS850, while the light grey represents the case of NF5280M3, Results show that TS850 platform can exhibit good performance characteristics for Gaussian platform,Run characteristics on E5-2670 Platform,,CPU:Higher CPU coefficient of utilization, nearly 100%;Gflops: Maximum pe
42、ak is 160Gflops, High requirement on the CPU frequency;Memory: little memory bandwidth 15Gb/s higher performanceDisk IO:High requirement high data to storage and communicate, only at the initial and the final of program running need the data to read the files;,The Gaussian characteristic summary,,Computationally intensive:Higher CPU frequency higher performanceStorage IO: High requirement Need high disk space to storage dataNetwork: High requirement high data to storage and communicateMemory band-width sensitive:little memory bandwidth higher performance,诚信尊重追求卓越,