Skip to content

Latest commit

 

History

History
executable file
·
62 lines (55 loc) · 7.63 KB

可能使用到的工具记录.md

File metadata and controls

executable file
·
62 lines (55 loc) · 7.63 KB

内存、分析和MPI跟踪工具

  • mpiP - - mpiP 是一个轻量级、可扩展的 MPI profiling 库,用于收集 MPI 应用程序的统计信息。与跟踪工具相比,mpiP 生成的开销和数据量较少。它捕获的所有信息都是任务本地的,并在报告生成期间使用通信将所有任务的结果合并到一个输出文件中。mpiP 通过链接库的方式工作,这意味着不必重新编译应用程序即可使用 mpiP
  • TAU (Tuning and Analysis Utilities) -- - TAU 是一个可移植的分析工具包,用于性能分析并行程序,支持 Fortran、C、C++、UPC、Java 和 Python 等多种编程语言。TAU 能够通过函数、方法、基本块和语句的插桩以及基于事件的采样来收集性能信息。TAU 提供了一个 API,允许选择分析组以组织和控制插桩。TAU 的性能可视化工具 paraprof 提供了性能分析结果的图形显示,用户可以快速识别应用程序中的性能瓶颈。此外,TAU 还可以生成事件跟踪,这些跟踪可以与 VampirParaverJumpShot 跟踪可视化工具一起显示。
  • Vampir -- Vampir 是一个性能可视化工具,它提供了一个易于使用的框架,使开发者能够快速显示和分析任意程序行为的详细程度。VampirTraceVampir 的主要代码插桩和运行时测量框架,支持多种插桩方法,包括源代码级别和编译/链接时的插桩。VampirVampirTrace 提供了一个性能工具框架,特别关注高度并行应用程序。性能数据是从多进程(MPI、SHMEM)、线程并行(OpenMP、Pthreads)以及基于加速器的范式(CUDA、HIP、OpenCL、OpenACC)中收集的。
  • memP -- - memP 是一个内存分析工具,用于跟踪和分析 MPI 程序中的内存使用情况。它可以帮助用户识别内存泄漏和非最优的内存使用模式。
  • Memcheck(Valgrind)
  • gprof
  • Intel VTune Amplifier
  • HPCToolKit

Stack Trace Analysis Tool (STAT) 用于并行应用程序的高度可扩展、轻量级的调试工具。

  1. 收集和合并堆栈跟踪:STAT通过收集并行应用程序所有进程的堆栈跟踪,并将它们合并成一种紧凑且直观的形式,从而帮助缩小代码中错误的位置。
  2. 形成调用图前缀树:STAT的输出结果表明每个应用程序进程正在执行的代码位置,这有助于缩小错误范围。合并过程自然地将表现出相似行为的进程分组到进程等价类中。每个等价类的代表随后可以使用功能齐全的调试器(如TotalView或DDT)进行更深入的分析。
  3. 跨平台支持:STAT已经被移植到多个平台,包括Linux集群、IBM CORAL系统(即IBM Power CPU + NVIDIA GPU)、IBM的Blue Gene机器和Cray系统。它适用于用C、C++和Fortran编写的Message Passing Interface (MPI)应用程序,支持线程,并支持CUDA。STAT已经展示了在超过1,000,000个MPI任务上的可扩展性,并且其对数扩展特性使其非常适合更大的系统。
  4. 开源软件:STAT是由劳伦斯利弗莫尔国家实验室、威斯康星大学和新墨西哥大学合作开发的。它目前是一个在伯克利软件分发(BSD)许可证下发布的开源软件。STAT构建在高度可移植的开源基础设施之上,包括用于工具守护进程启动的LaunchMON、用于可扩展通信的MRNet和用于获取堆栈跟踪的Dyninst。
  5. 图形用户界面:STAT包括一个图形用户界面(GUI),用于运行STAT和可视化STAT输出的调用前缀树。这个GUI提供了多种操作来帮助关注特定的调用路径和感兴趣的任务。它还可以用于识别各种等价类,并包括一个接口,用于附加到代表性任务的重型调试器。
  6. 性能和可扩展性:STAT在性能测试中表现出色,能够在千分之一秒的延迟内从数千个进程中收集信息,这比现有工具有显著改进。
  7. STATBench工具:STAT的源代码还包括STATBench,这是一个仿真STAT的工具。STATBench通过充分利用并行资源和生成人工堆栈跟踪,使得在任意机器架构和应用程序上对STAT进行基准测试成为可能

PGI编译器是The Portland Group(简称PGI)提供的一种针对多种CPU与操作系统的高性能编译器,它被广泛用于开发复杂且需要进行大量计算的程序。PGI编译器支持多种编程语言,包括Fortran、C和C++,并且可以在Linux、Mac OS X和Windows平台上提供一致的功能和优化能力。以下是PGI编译器的一些主要特点:

  1. 原生支持多种语言:PGI提供原生Fortran、C和C++编译器,支持Fortran 95及带有Fortran 2003扩展的语言,符合OpenMP 3.0标准,并支持GPU。
  2. 跨平台优化:PGI产品在多种平台上提供一致的功能和优化能力,这有助于在各种平台上开发与优化应用程序,从便携式笔记本到世界上最快的超级计算机。
  3. 全局优化和向量化:PGI编译器具备全局优化、过程间优化、向量化、共享内存并行的能力,这些优化技术有助于提升应用程序的性能。
  4. 配置文件反馈优化技术:PGI编译器使用配置文件反馈优化技术,并能够生成异构并行代码。
  5. 支持CUDA Fortran:增强的PGI Fortran编译器支持由NVIDIA和PGI共同定义的CUDA Fortran扩展,允许直接控制数据移动的各方各面,支持显式GPU Accelerator编程,并减轻运算密集函数的负荷。
  6. 支持PGI Accelerator编程模型:PGI Fortran和C编译器也支持PGI Accelerator编程模型,这种高级的隐式模型允许图形加速器使用Fortran指令或C编译指示,从而减轻主机CPU上运算密集的代码段的负荷。
  7. 并行编译器与工具集成套件:PGI提供一套完整的编译器与工具集成套件,用于开发高性能并行应用程序,包括完全集成的图形PGDBG和PGPROF并行MPI/OpenMP应用程序调试和分析工具。
  8. 支持多种操作系统:PGI编译器生成的代码为行业最流行的高性能计算(HPC)平台进行了优化,并且可以在广泛的64位与32位桌面和服务器操作系统下运行,包括30多种流行的Linux版本、Mac OS X以及Microsoft Windows的大多数版本。
  9. 与NVIDIA CUDA库配合:PGI编译器可以与NVIDIA CUDA库配合,编译Fortran-CUDA程序,为GPU加速提供支持。
  10. 免费试用许可证:PGI提供完全不受限制的15天免费试用许可证,允许用户在正式购买前体验PGI编译器和工具的功能

数学库

  • ATLAS - 自动调优的线性代数软件 ATLAS
  • BLAS - 基本线性代数子例程 BLAS
  • FFTW - 快速傅里叶文库 FFTW
  • GSL - GNU Scientific Library GSL 在基于 C 的程序中使用 GSL 例程,只需添加适当的 compile and link 选项 编译时:
// 添加头文件
#include <gsl/...>

链接时:

gcc gsl.c -lgsl -L/usr/lib64/libgsl.so -lgslcblas -L/usr/lib64/libgslcblas.so
  • LAPACK - Dense linear algebra LAPACK
  • LIBM - Standard C math library libm
  • PETSc - 求解线性系统的例程集合 PETSc
  • ScaLAPACK - 用于分布式内存消息传递 MIMD 计算机的高性能线性代数例程库 ScaLAPACK
  • SLATEC - 全面的软件库,包含 1400 多个用 Fortran 77 编写的通用数学和统计例程 符号数学工具
  • Mathematica - 符号数学工具 Mathematica
  • Sage