高性能计算优化技术 xx股份有限公司解决方案中心_第1页
高性能计算优化技术 xx股份有限公司解决方案中心_第2页
高性能计算优化技术 xx股份有限公司解决方案中心_第3页
高性能计算优化技术 xx股份有限公司解决方案中心_第4页
高性能计算优化技术 xx股份有限公司解决方案中心_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高性能计算优化技术,曙光信息产业股份有限公司,1、高性能集群优化概述2、硬件级优化3、编译级优化3.1编译器及编译选项的优化3.2数学库优化3.3MPI选择优化4、运行级优化4.1操作系统优化4.2共享内存通信优化4.3进程绑定优化4.4 消息传递机制优化,高性能计算优化概述,高性能计算架构变化,数据来源:2010 TOP 500 排行榜,高性能计算网络发展,数据来源:2010 TOP 500 排行榜,高性能计算操作系统份额,数据来源:2010 TOP 500 排行榜,千兆交换机,局域网,Internet,路由器,防火墙,远程控制,内网,外网,以太网交换机,控制台,本地KVM,以太网,光纤网,Infiniband网,KVM管理网,登陆/管理节点,机房环境,并行存储系统,高速Inifiniband交换机,刀片集群,GPGPU节点,计算系统,存储系统,SMP胖节点,2,算例上传作业提交,101100011010100100010010010010011000110101001000100100110001101010010001001001100011010100100010010000100100110001101010000100100110001101010000100100110001101010000100100110001101010,高性能计算作业的工作流程,高性能计算机系统架构,高性能计算机中的关键技术,高性能集群三要素,无密码访问配通,统一的系统印象,统一的文件印象,对于普通用户来说,所有节点看到的某一个文件都是相同的文件。通过nfs或者并行文件系统实现。,通过NIS或同步用户信息来实现。,网络全通 rsh或ssh无密码访问配通,高性能应用软件的编程模型,高性能应用软件状态,优化手段的对比,硬件级优化,CAE(CFD),石油勘探,气象环境海洋,图像渲染,物质的物理化学材料属性的科研工作中,基因科学、蛋白质科学的研究以及新药的研发,地震资料处理,用于油气勘探,气象环境海洋的数值预报,动画、电影、图像的高逼真效果制作,物理化学材料,生命科学,六大应用领域,高性能计算在国内的六大应用领域,计算机辅助工程,广泛应用于工业生产中,其它:卫星图像处理、金融计算等,物理化学材料: 计算物理材料:vasp,cpmd,Material Studio。 计算化学:gaussian、gamess,ADF。CAE领域: 结构计算:ansys、abaques,nastran 流体计算:fluent,CFX 电磁仿真:Fecko生命科学: 生物信息学:MPIBLAST,BWA等 分子动力学:Namd,gromacs,lammps。 药物设计:dock,autodock,DiscoveryStudio。,主流高性能应用介绍,气象海洋环境科学气象预报:WRF,MM5,Graphes海洋科学:roms石油勘探Omega,cgg等动漫渲染3dmax,Maya等,主流高性能应用介绍,高性能应用典型特征,第一步:确定应用的典型特征,找出除CPU需求外其它的需求。第二步:升级需求最为迫切的硬件资源。第三步:了解应用的扩展性。第四步:扩展性好的应用,可以考虑购买更多的计算节点,扩展性差的应用,考虑升级单个核心和单个节点的计算能力。,如何实现硬件级优化,有序安装内存条配置三通道、四通道内存性能相比双通道提升50%,计算设备内存配置,设置系统南桥的SATA硬盘控制器的工作方式修改为AHCI模式(Advanced Host Controller Interface,高级主机控制器界面)AHCI提供基于系统内存的通信方式(类似于DMA),BIOS设置硬盘控制器,开启以下选项C1E(C1 Enhanced Halt Stat)Support通过调节倍频来逐级的降低处理器的主频,同时还可以降低处理器电压EISTEnhanced Intel SpeedStep Technology需要确认操作系统支持EIST技术,例如Windows2008、Suse11或给系统升级内核 Turbo mode最新Intel/AMD平台可以实现CPU的自动超频,BIOS设置CPU配置,开启以下选项Hardware Prefetcher/Adjacent Cache Line Prefetch当硬件检测到一个streaming的数据或指令读取,并且有last level cache miss发生时,这种prefetch就被启动按序读取内存内容到cache,直到遇到page boundary当Fetches 数据的时候,相邻的两个64-byte cache lines被同时取,而不管是否真的需要后一个cache line的内容Nehalem-Ep以后平台开启硬件预取有利于提高性能Intel Virtualization TechExecute-Disable Bit CapabilityIntel HT Technology信息服务类应用需要打开,BIOS设置CPU配置,CSI(Common System Interface,通用系统接口)Links Speed: Full-SpeedFrequency: 6.4GTPower Optimization: AdaptiveMemory ModeIndependent(独立)Channel Mirroring(镜像)内存阵列(相当于RAID 1)LockStep(锁步)将多个通道当作是一个通道进行控制风扇转速将风扇转速跳到最大,保证系统有效散热,提高性能Intel I/OAT(I/ O Acceleration Technology) IOAT技术可有效提升I/O数据传输效能,最高可节省50%CPU占用率。,BIOS设置芯片组设置,I/O负载应尽可能分布到各个硬盘上去 每个硬盘尽量少分区对于与典型的文件不同的有特点的文件集合(如大小、数量),应创建一个针对其优化的文件系统hdparmhdparm -d 1 /dev/hdb hdparm -W 1 /dev/hdb hdparm -T -t /dev/hdb nmonhtopsvn co /svnroot/htop/trunk htop Using Asynchronous I/O Raw Disk I/O ext2、ext3、JFS、XFS、ReiserFS,IO设备文件系统,NFS+RDMADDR网络14节点并发测试读写带宽,IO设备网络文件系统NFS,echo 1024 65000 /proc/sys/net/ipv4/ip_local_port_rangeecho 100 1200 128 512 15 5000 500 1884 2/proc/sys/vm/bdflushecho 1 /proc/sys/net/ipv4/icmp_echo_ignore_broadcastsecho 1 /proc/sys/net/ipv4/icmp_ignore_bogus_error_responsesecho 1048576 /proc/sys/net/ipv4/netfilter/ip_conntrack_maxecho 1 /proc/sys/net/ipv4/ip_forwardecho 268435456 /proc/sys/kernel/shmallecho 536870912 /proc/sys/kernel/shmmaxecho 600 /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_establishedecho 120 /proc/sys/net/ipv4/neigh/default/gc_stale_timeecho 1024 /proc/sys/net/ipv4/neigh/default/gc_thresh1echo 2048 /proc/sys/net/ipv4/neigh/default/gc_thresh2echo 4096 /proc/sys/net/ipv4/neigh/default/gc_thresh3echo 52428800 /proc/sys/net/ipv4/route/max_sizeecho 1 /proc/sys/net/ipv4/conf/all/proxy_arpecho 1 /proc/sys/net/ipv4/tcp_window_scaling,以太网络协议优化,根据不同的模式,双网卡绑定性能可提升50%80%配置/etc/sysconfig/network-scripts/ifcfg-bond0修改/etc/sysconfig/network-scripts/ifcfg-eth0修改/etc/sysconfig/network-scripts/ifcfg-eth1配置/etc/modules.confmodprobe bonding miimon=100 mode=1,以太网络多网卡绑定,各种网络基本性能,越高越好,越低越好,网络对应用性能的影响,NAMD 扩展性,FLUENT 扩展性,WRF 扩展性,VASP 扩展性,2-Tier CLOS最常见的Infiniband网络连接方式保证所有节点间通信实现全线速无阻塞 Hyperscale可以有效减少节点之间的跳跃次数新版OpenSM已解决死锁问题半分带宽 (in terms of 4X links) = 3*B*N2/4 where B is the number of 12X links per bundle,Infiniband网络网络连接拓扑,Min Hop默认路由impi,TCPmpich2,TCPompi,Gather-数据收集Good: impi+IB,sm; impi+IBBad: mpich2+TCP,impi+TCP,测试结果IMB,Scatter-数据分散Good: impi+IB,sm; impi+IBBad: mpich2+TCP,ompi+IPoIB,测试结果IMB,AllGather-全数据收集,测试结果IMB,AlltoAll-整体数据转置,测试结果IMB,Reduce-数据约简,测试结果IMB,Reduce-Scatter 数据约简分散,测试结果IMB,AllReduce-全数据约简,测试结果IMB,Barrier-数据同步,测试结果IMB,结果总结:单点通信:相比以太网络,IB网络在通信的延时和带宽上均提升较大,而IPoIB仅提升了带宽,延时未明显变化Intel MPI配IB网络在在所有单点测试中性能最佳,带宽达到3196 MB/sec集合通信:Intel MPI在配IB网络加共享内存时,各MPI函数测试能达到最佳性能,mvapich2和openmpi配IB+sm性能次之。Open mpi的tcp网络性能较差。,测试结果IMB,运行级优化,运行级优化适用范围广泛,适用于所有的高性能应用。运行级优化效果往往不如硬件级优化及编译级优化效果明显。常用高性能应用程序运行级优化主要包含如下几种方式。操作系统优化MPI程序进程绑定优化MPI通讯共享内存优化其它MPI优化选项MPI消息传递机制优化,运行级优化,SMP和NUMA调度器可调部分CHILD_PENALTY CREDIT_LIMIT MAX_TIMESLICE 分析如共享内存的比例、读写的访问情况CPU Affinitynumactl-interleave=all,调度器优化,内核编译时添加CONFIG_HUGETLB_PAGE 和CONFIG_ HUGETLBFS 选项/proc/meminfo显示了能支持的大页面大小HugePages_Total: 0HugePages_Free: 0Hugepagesize: 2048 kB/proc/filesystems先显示hugetlbfs 类型/proc/sys/vm/nr_hugepages当前的大页面数目echo x /proc/sys/vm/nr_hugepages 可以预分配大页面mmap 系统调用时,需要root用户预先mount hugetlbfs 到/mnt/huge共享内存系统调用时,不需要mount hugetlbfs特点:必须物理上连续,且不可分页,适合于大内存系统;,大页面Huge TLB,IPC参数调整# echo 1024 /proc/sys/kernel/msgmni,进程间通信IPC,服务列表关闭多余的不用服务apmdapmd用来监视系统用电状态,并将相关信息通过syslogd写入日志。也可以用来在电源不足时关机 arpwatch用来维护以太网物理地址和ip地址的对应关系 atd运行用户用at命令调度的任务。也在系统负荷比较低时运行批处理任务 autofs当您需要时自动转载文件系统,而当您不需要时自动卸载 chargentcp版本的chargen serverchargen-udpudp版本的chargen server crond周期地运行用户调度的任务。比起传统的unix版本添加了不少属性,而且更安全,配置更简单 daytimetcp版本的daytime server daytime-udpudp版本的daytime server echotcp版本的echo server echo-udpudp版本的echo server eklogin接受rlogin会话鉴证和用kerberos5加密的一种服务 finger用于应答finger请求的服务 gpm为文本模式下的linux程序提供了鼠标的支持。它也支持控制台鼠标的拷贝,粘帖操作以及弹出式菜单 (必须) gssftp接受可被kerberos5验证的ftp连接,系统服务,httpdhttp是著名的www服务器,可用来提供html文件以及cgi动态内容服务 identd提供验证身份的方法 ipchainsipchains包过滤防火墙 iptablesiptables包过滤防火墙 ipvsadm调用ipvsadm来建立和维护ipvs路由选择表 isdn启用isdn(综合服务数字网)服务 kadmin更改在主控kdc中使用本机的kadmin工具,或透过kadmin服务来完成 kdcrotate设置配置文件/etc/krb5.con中的kdcs表项 keytable该程序的功能是转载您在/etc/sysconfig/keyboards里说明的键盘映射表 klogin接受bsd方式的rlogin会话,但需要使用kerbeos5验证 kprop是否允许kdc接收来的master kdc的升级 krb5-telnet允许普通的telnet登陆,但也可使用kerberos5验证 krb524是以改变kerberos5到kerberosIV的赁证 krb5kdc开启kerberosIV和5所需的连接以获得赁证 kshell接受rshell命令鉴证和用kerberos加密的服务 kudzu运行硬件检测,并可选择性地设置硬件变化 lpdlpd是系统打印守护程序,负责将lpr等程序提交给打印作业,系统服务,netfs负责装载/卸载nfs、samba、ncp文件系统 network激活/关闭启动时的各个网络接口 (必须) nfsnfs是一个流行的基于tcp/ip网络的文件共享协议.该服务提供了nfs文件共享服务 nfslock提供nfs文件上锁功能 nscd该服务负责密码和组的查询,并且缓冲查询结果 Pcmcia 安装pcmcia卡(一般用于笔记本电脑) portmapportmap用来支持rpc连接,rpc被用于nfs以及nis等服务 postgresqlpostgresql关系数据库引擎 random保存和恢复系统的高质量随机数生成器,这些随机数是系统一些随机行为提供的 rloginrlogin程序服务,提供来自远程信任主机的注册功能 routed该守护程序支持rip协议的自动ip路由表维护.rip主要使用在小型网络上,大一点的网络就需要复杂一点的协议 rsh提供rcmd程序或者rsh程序的服务 rstatdrstat协议允许网络上的用户获得同一网络上各机器的性能参数 rsync对ftp服务的一个很好的附加,允许循环码求和校验等 rusersd该服务使网络用户可以定位同一网络上的其他用户 rwalldrwall协议允许远程用户向在同一系统中活跃着的终端发送消息,类似wall的本地行为,系统服务,rwhod允许远程用户获得运行rwho精灵的机器上所有已登录用户的列表,与finger类似 smb启动和关闭smbd和nmbd精灵程序以提供smb网络服务snortd一个轻量级的网络入侵检测工具 swatsamba网络配置工具,可以通过流览器的901端口连接使用swat syslogsyslog是操作系统提供一种机制,守护程序通常使用这些机制将各信息写到各个系统日志文件 (必须) Sshd OpenSSH服务器 telnet提供telnet服务,使用未加密的用户/密码组进行验证 timetcp版本的rfc 868 time server time-udpudp版本的rfc 868 time server webminwebmin是基于web的集系统管理与网络管理于一身的强大管理工具 xfs在引导和关闭时启动和停上x字体服务,并可能重新生成字体表 (必须) xinetd因特网操作服务程序。提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全, 监控网络对各种它管理的服务的需求,并在要的时候启动相应的服务程序 ypbind实现网络信息服务的服务器端 anacron 不考虑系统downtime期间的cron服务 amd 自动安装NFS守候进程,系统服务,裁减kernel CONFIG_SYSFS_DEPRECATED_V2=y CONFIG_SLUB_DEBUG=y CONFIG_SLUB=y CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_MCORE2=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_P6_NOP=y CONFIG_HZ_100=y CONFIG_HZ=100 CONFIG_CPU_IDLE_GOV_MENU=y,系统内核,用Intel编译器重新编译kernel,对比GNU的效果GCC 4.5 Flags:-O3 ICC 11.1.059 Flags:-O3 -ip -fp-model fast=2 -unroll-aggressive -vec-guard-write结果LMbench 3.0,系统内核,临时更改Swapoff a自动关闭方法一修改/etc/init.d/rc.local增加swapoff命令方法二vim /etc/fstab#swap was on /dev/sda11 during installation#UUID=0a55fdb5-a9d8-4215 none swap sw 0 0注释掉SWAP分区项,即可,系统交换分区,目前有两种进程绑定策略供选择:命令行形式和rankfile形式。1. 命令行形式常用的进程绑定选项如下:-bind-to-socket按socket绑定进程-bind-to-core按core绑定进程-bind-to-none不设进程绑定(默认)-bysocket尽量利用连续的socket(与-bind-to-socket配合使用)-bycore尽量利用连续的core(与-bind-to-core配合使用)-report-bindings报告进程绑定信息,MPI进程绑定方式-OPENMPI,2. rankfile形式OpenMPI可以通过rankfile对进程绑定进行更加详细的设置,rankfile规定了每个进程(即rank,从0开始编号)在节点及CPU上的分布情况,文件格式如下:$ cat rankfilerank 0=node0 slot=2rank 1=node1 slot=4-7,0rank 2=node2 slot=1:0rank 3=node3 slot=1:2-3$ mpirun -np 4 -hostfile hostfile -rankfile rankfile ./programrankfile说明:一行一个rank,后面跟执行该rank的节点名及slot-listslot-list为执行该rank的CPU基本单元编号,从0开始。该编号由BIOS和操作系统共同决定。也可以按socket:core形式给出。详情参考:/doc/v1.4/man1/orterun.1.php,MPI进程绑定方式-OPENMPI,MPICH2提供了丰富的进程绑定选项,既有基于命令行的选项设定,也有基于hostfile文件的设置。1. 绑定选项最简单的方法是利用-binding选项,其中又包含了基于CPU和Cache的两种情况。基于CPU的绑定最常用:-binding cpu#绑定到cpu处理单元-binding cpu:sockets#绑定到cpu sockets-binding cpu:cores#绑定到cpu cores-binding cpu:threads#绑定到cpu线程,MPI进程绑定方式-MPICH2,2. 修改hostfile文件MPICH2通过在hostfile里的绑定选项(binding),可以控制进程在节点内的分布情况。如下所示:$ cat hostfilenode0:4binding=rr#round-robin方式绑定node1:4binding=user:0,-1,-1,3#绑定0和3进程,1和2进程不绑定node2:4binding=user:0,1,2,3#绑定所有4个进程binding=rr表示系统按照round-robin方式在CPU处理核心上分布进程,binding=user表示用户自定义,user后面跟着绑定的进程编号,不写或-1表示不绑定。详情参考:/mpich2/index.php/Using_the_Hydra_Process_Manager,MPI进程绑定方式-MPICH2,MVAPICH2的进程绑定是通过HWLOC(Portable Hardware Locality)程序包实现,HWLOC默认已经安装。有两种设置方式:1. MV2_CPU_BINDING_POLICY变量设置MV2_CPU_BINDING_POLICY=bunch:聚集绑定,进程尽可能在一个物理CPUMV2_CPU_BINDING_POLICY=scatter:分散绑定,进程尽可能在多个物理CPU下面两幅图形象地说明了bunch(上)和scatter(下)两种绑定方式在一个节点跑4个进程时的区别:,MPI进程绑定方式-MvaPICH2,2. MV2_CPU_MAPPING变量设置MV2_CPU_MAPPING变量指定参与计算的CPU核心编号,如:$ cat hostfilenode0:4node1:4$ mpirun_rsh -ssh -np 8 -hostfile hosts MV2_CPU_MAPPING=0:1:2:3 ./program在每个节点上,4个进程都绑定到编号为0,1,2,3的四个CPU核心上。此外,MVAPICH2也可以使用hydra管理器中的进程绑定策略,参见MPICH2。更多运行方式参考:/support/user_guide_mvapich2-1.7rc1.html,MPI进程绑定方式-MvaPICH2,IntelMPI默认启动了进程绑定(I_MPI_PIN=enable),有两种常用的设置方法:1. I_MPI_PIN_DOMAIN变量-env I_MPI_PIN_DOMAIN core绑定CPU核心-env I_MPI_PIN_DOMAIN sock绑定CPU socket-env I_MPI_PIN_DOMAIN node绑定节点此外,还可以按照cache进行绑定。,MPI进程绑定方式-IntelMPI,2. I_MPI_PIN_PROCESS_LIST变量I_MPI_PIN_PROCESS_LIST可以提供比I_MPI_PIN_DOMAIN更多的控制选项,用来指定节点内部进程在CPU上的分布顺序。I_MPI_PIN_PROCESS_LIST又有三种指定形式:显式声明绑定列表(推荐使用),如:I_MPI_PIN_PROCESS_LIST=0,1,2,3,则节点上的0,1,2,3进程分别绑定到0,1,2,3的CPU核心上。进程映射策略,如:I_MPI_PIN_PROCESS_LIST=allcores:grain=core将按核心数依次循环绑定进程,该方法设置复杂,适合特别细化的进程绑定情况,一般很少用到。预设场景策略,包括scatter和bunch两种情况,见MVAPICH2进程绑定说明。详情参考Intel MPI Reference Manual。,MPI进程绑定方式-IntelMPI,共享内存通信方式保证单个节点内的所有进程都通过内存来进行网络通信,由于内存的访问性能高于目前的网络设备,同时,内存的通讯降低了网络设备的负载,从而提高了应用的性能。,MPI共享内存通信方式优化,MPI共享存储通信方式-显示开启,MPI共享存储通信方式-默认开启,应用软件优化的过程,UP to 40%,如何对应用软件vasp的优化?,OpenFOAM,OpenFOAM(Open Fi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论