当前位置:文档之家› 高性能计算介绍

高性能计算介绍


常见编译器
Intel Compiler 由Intel公司针对Intel处理器开发(Xeon、Pentium) 支持Linux、Windows 支持C/C++(icc:Intel C/C++ Compiler)、Fortran77/90/95 (ifc: Intel Fortran Compiler) 支持多线程和OpenMP
•ScaLAPACK:可扩展线性代数库(Scalable LAPACK),是LAPACK的增强版本 是美国能源部ODE2000支持开发的20多个ACTS工具箱之一,由Oak Ridge国家 实验室、加州大学Berkeley分校和Illinois大学等联合开发 分布式存储环境运行的线性代数库,主要为可扩放的、分布存储的并行计算机而 设计的 支持稠密和带状矩阵的各类操作,如:乘法、转置、分解等等 开发源码,/scalapack
消息传递编程
常见并行环境——并行编程标准归 类
• 所有并行编程标准可分为以下三类:
– 数据并行
• HPF, Fortran90 • 用于SMP, DSM
– 共享编程
• OpenMP • 用于SMP, DSM
– 消息传递
• MPI, PVM • 用于所有并行计算机
• 三者可混合使用:
– 如对以SMP为节点的Cluster来说, 可以在节点间进行 消息传递,在节点内进行共享变量编程.
IBM Compiler for AIX VisualAge C/C++ for AIX XL Fortran for AIX
在IBM AIX Developer Kit中,包含了Java(TM) 2 Technology Edition支持。 Practical Extraction and Report Language (perl) GNU C/C++ Python
作者也不认为这种扩展应用会存在什 么无法克服的困难. 但也不要期待有
效的并行编程方法与技术能够在一夜 之间诞生. 期间还需要有许多的工作 和实验要做. 毕竟, 今天的编程技术 (串行)是若干年来艰苦的探索才取得 的. 现在编程工作似乎成了一种令人 单调乏味的工作,事实上,并行编程的
出现将会使重新恢复编程工作者们的 探索精神 ...” (Gill, S. (1958), “Parallel Programming” The
现代计算机的共同特点: 并行性
现代计算机的共同特点: 并行性
Internet
外网 内网 路由器 防火墙 千兆交换机
局域网
管理节点
存储节点
存储阵列
远程
以太网 Infiniband
光纤网 KVM网
机房
管理千兆 交换机
计算集群
高速Infiniband 交换机
本地KVM
控制台
为什么要做高性能计算? --应用需求
•并行计算粒度大,特别适合于大规模可扩展并行算 法
由于消息传递程序设计要求用户很好地分解问题,组织不 同进程间的数据交换,并行计算粒度大,特别适合于大规模 可扩展并行算法.
•消息传递是当前并行计算领域的一个非常重要的并 行程序设计方式
常见并行环境——什么是MPI?
Massage Passing Interface:是消息传递函数库的 标准规范,由MPI论坛开发,支持Fortran和C
– – OpenMP : portable shared memory parallelism
• 消息传递库标准(Message Passing Libraries)
– – MPI : Message Passing Interface – – PVM : Parallel Virtual Machine
➢ 计算科学与传统的两种科学,即理论科学和实验科学,并立 被认为是人类认识自然的三大支柱,他们彼此相辅相成地推 动科学发展与社会进步。在许多情况下,或者是理论模型复 杂甚至理论尚未建立,或者实验费用昂贵甚至无法进行时, 计算就成了求解问题的唯一或主要的手段。
并行:古老的思想!
“...并行计算并不是什么新的思想, 只是将它扩展应用于计算机而已”.
常见并行环境——消息传递并行程序设 计
•消息传递并行程序设计
指用户必须通过显式地发送和接收消息来实现处理机间 的数据交换。
在这种并行编程中,每个并行进程均有自己独立的地址
空间,相互之间访问不能直接进行,必须通过显式的消 息传递来实现。
这种编程方式是大规模并行处理机(MPP)和机群 (Cluster)采用的主要编程方式。
MKL MKL是intel核心数学库,包含了blas,lapack,fft,scalapack等
数学库。安装intel编译器时已经自动安装在路径
blacs,fftw2,fftw3,netcfd,jasper,PETSc,AZTEC etc......
常见并行环境——并行编程标准
• 数据并行语言标准
ACML ACML:AMD Core Math Library,基于Opteron处理器 AMD公司公司与英国Numerical Algorithms Group(NAG)共同开发 支持32bit和64bit的Windows平台、 32bit和64bit的Linux平台 提供一级、二级、三级BLAS以及LAPACK、FFT 通过PGI编译器同时支持面向Linux开发的OpenMP和非OpenMP
PC Workstation Mini Computer
1994年的计算机食物链
(hitting wall soon)
Mainframe (future is bleak) Vector Supercomputer
Mini Computer
Workstation
PC
MPP
现在和未来的计算机食物链
OpenMPI OpenMPI 是一种高性能消息传递库,融合了其他几个项目(FTX-MPI)的技术和资源。 它是MPI-2标准的一个开源实现,由一些科研机构和企业一起开发和维护。
Mvapich MVAPICH 是VAPI层上InfiniBand的MPI的缩写,它也是MPI标准的一种实现。可
为什么要做高性能计算?
➢人类对计算及性能的要求是无止境的
➢ 从系统的角度:集成系统资源,以满足不断增长的 对性能和功能的要求
➢ 从应用的角度:适当分解应用,以实现更大规模或 更细致的计算
为什么要做高性能计算?
• 问题: 科学和工程问题的数值模拟与仿真 – 计算密集 – 数据密集 – 网络密集 – 三种混合
– Fortran90, HPF(1992), Fortran95/2001:显式数据分
布描述,并行DO循环.
• 线程库标准(Thread Library)
数据并行编程
– – Win32 API. – – POSIX threads线程模型.
共享变量编程
• 编译制导(Compiler Directives)
•LAPACK:线性代数计算子程序包(Linear Algebra Package) LAPACK是建立在BLAS 1、BLAS 2和BLAS 3基础之上 使用Fortran 77语言开发 使用了线性代数中最新、最精确的算法,同时采用了将大型矩阵分解成 小块矩阵的方法从而可以有效的使用存储空间 开放源码,/lapack/
高性能计算的功能
目录
1 高性能计算介绍 2 高性能计算架构和组成 3 高性能计算测评
4
高性能计算架构和组成
硬件体系组成
共享存储对称多处理机系统(SMP)
• SMP:
– 对称式共享存储:任意 处理器可直接访问任意 内存地址,且访问延迟、 带宽、几率都是等价的; 系统是对称的;
– 微处理器: 一般少于64个; – 处理器不能太多, 总线和
Computer Journal, vol. 1, April, pp. 2-
10.)
Parallel Programming with MPI by Peter Pacheco(2000)
什么是并行计算?
• 并行计算: 由运行在多个部件上的小任务合作来求解一个 规模很大的计算问题的一种方法
zi1 zi2 c
高性能计算介绍
曙光信息产业有限公司
仅限于内部代理商技术交流
西部大区_陕西蔡立 2011.08
18691871326
目录
1 高性能计算介绍 2 高性能计算架构和组成 3 高性能计算测评
4
高性能计算介绍
并行计算--高性能计算
➢ 并行计算(Parallel Computing) 高端计算(High-end Parallel Computing) 高性能计算(High Performance Computing) 超级计算(Super Computing) 任何高性能计算和超级计算都离不开使用并行技术
•一种新的库描述,不是一种语言。共有上百个函数调 用接口,在Fortran和C语言中可以直接对这些函数进 行调用 •MPI是一种标准或规范的代表,而不是特指某一个对 它的具体实现 •MPI是一种消息传递编程模型,并成为这种编程模型 的代表和事实上的标准
常见并行环境——常见MPI介绍
MPICH 由美国阿尔贡国家实验室(ANL)和数学与计算机科学部等多家机构共同定制。 MPICH是MPI标准的一种重要且基础的实现方式。 MPI是为统一不同的MPP/Cluster产家的消息传递API而制订的工业标准。
软件及系统层面组成
•编译环境 •数学库 •并行软件环境
抛开用户程序设计 以及用户算例问题, 这部分层面的设计 和使用对计算性能 将会有很大影响
常见编译器
GNU Compiler 自由软件,一般操作系统都自带 支持C/C++、Fortran77、Java、COBAL等等许多语言 支持大部分硬件平台 高性能计算中常用的: C/C++:GCC (GNU C/C++ Compiler) Fortran 77:G77 不支持Fortran 90/ 95 不支持OpenMP 是最常用的编译器,性能一般(相对于一些针对特定平台优化的编译器) 由于缺少对Fortran 90/ 95,限制了其在高性能计算中的使用
相关主题