針對 C與C++ 與 Fortran 應用程式的動態源代碼與記憶體調試器
TotalView 是一款基於GUI(圖形用戶界面)的源代碼檢測分析工具,幫助您以前所未有的強大功能控制進程與線程執行,查看可視化的程式狀態與變量。 它允許您調試一個或多個進程與/或線程,完全控制程式執行。您可以覆置並解決棘手(利用線程、OpenMP、MPI 或計算加速器)的難題。 使用TotalView提供的分析顯示,他可以對您的計畫進行有效的調試與記憶體錯誤和遺漏,並診斷死鎖與競爭條件等的難題。TotalView 與專為 Linux、UNIX 與 Mac OS X 平台編寫的 C, C++ 與 Fortran 應用程式協同工作。
» C, C++ Comprehensive support for templates and standard template libraries
» Fortran Includes concepts such as common blocks and modules
» Data Visualization Visibility into program data and variables
» Memory Help for problems resulting from extensive requirements of large systems
» Multi-process Support for 20 different MPI implementations, as well as OpenMP
» Remote Display Windows and Linux desktop access
» Threads and Concurrency Troubleshoot deadlocks and race conditions
更新介紹
Signal Handling Control
TotalView 2024.2 adds support for customizing the actions the debugger performs for operating system signals sent to the target application. Being able to control the handling of signals is critical for the functionality of some applications, such as the Java Virtual Machine which uses signals to trigger JIT’ing of code and memory management operations. For any signal, specify the action that should be performed by TotalView:
· Error – Halt the application and put it in error state.
· Stop – Stop the application.
· Resend – Resend the signal to the application to handle.
· Ignore – Ignore the signal and do not send it to the application.
Bring up the Signal Action Settings panel by opening the TotalView Preferences dialog using the “gear” icon in the toolbar. Select the Signals panel to display all the configurable signals, and use the Search field to quickly narrow the set of signals. Signal handling actions are performed globally for any process being debugging by TotalView.
NVIDIA Grace / Hopper Support
TotalView 2024.2 adds support for NVIDIA Grace Arm based CPUs. This combined with the added Hopper support from the 2024.1 release enables TotalView to fully support debugging the NVIDIA Grace/Hopper computing environments.
OpenMP Debugging Improvements
TotalView 2024.2 improves its OpenMP debugging support with updates and additions to compiler support, the ability to display OpenMP Internal Control Variables (ICVs), added the ability to easily step in and out of parallel regions, improved OMP outlined function name demangling, improved OMP thread information added to the UI and CLI output, and other various OMPD bug fixes and performance improvements.
Note: Some OpenMP programs may require passing the "-compiler_vars" option to TotalView to enable displaying compiler-generated variables. Some compilers, especially Clang-based compilers, mark all variables inside a region as "artificial", which means the debugger should hide them from the user.
HDPI Improvements
Further HDPI improvements were made TotalView 2024.2 to improve scaling and font adjustments when running within differently scaled displays.
Bug Fixes and Performance Improvements
Numerous bug fixes and performance improvements have been addressed with TotalView 2024.2.
View Full Release Notes
For more details, please refer to the TotalView release notes, where you can see more details and specs on how to enable various features, what to expect from updates, and info about any features on hold.
HPC Features
Debug applications running in your HPC environments faster with TotalView, by taking advantage of its abilities to:
- Support more than 20 different MPI implementations.
- Debug multithreaded applications with pthreads, OpenMP, and TBB.
- Easily establish interactive debugging sessions within your cluster — including through batch submission systems.
- Provide visualizations of program data and variables.
- Define how aggregate data in displayed, so you can see custom data structures in simpler forms.
- Advanced NVIDIA CUDA and OpenACC GPU debugging
- Debug ROCm / HIP applications on AMD GPUs
- Perform advanced memory debugging, including memory leaks and errors.
Reverse Debugging
Speed issue resolution in HPC code by using the reverse debugging capability in TotalView to:
- Work back from a failure, error, or crash to its root cause.
- Capture a live failing process and replay the execution history to get instant visibility into what your process did and why.
- Quickly fix race conditions, segmentation faults, stackoverflow errors, and double free errors.
- Jump to a bookmark in your program's execution history.
- Full inspection of global and local variables.
- Capture hard to reproduce test and production failures during DevOps phases with Undo's LiveRecorder Software Failure Replay platform and replay the recordings in TotalView.
- Step forward and backward by function, line, and instruction.
- Support continuous integration, collaboration, and code-learning by recording code.
- Eliminate restarting your program repeatedly with different breakpoints.
- Learn new code and deliver enhancements quicker.
Memory Debugging
Find memory leaks and buffer overruns with TotalView's scalable memory-debugging technology:
- Easily find memory leaks and understand heap usage.
- Detect malloc/free, new/delete API misuse.
- Detect buffer overruns.
- Share memory debugging data with colleagues through data files and HTML reports.
- Compare memory results between sessions to verify elimination of leaks.
- Save time and money with low overhead technology that does not require recompilation or instrumentation.
Remote Debugging
TotalView provides several mechanisms to make it easy to debug remotely.
Remote UI: Run with the full power of the TotalView User Interface from your local laptop or workstation and securely debug on a remote cluster or workstation.
Remote Display Client (RDC): Easily establish a remote desktop debugging session with TotalView running remotely on a cluster or workstation. Works with batch schedulers such as SLURM, PBS Pro and Load Leveler as well.
Customers can request the RDC for free via the software download form.
Reverse Connect: Easily submit your job into a cluster and, once run, a reverse connection is made back to a waiting TotalView allowing you to efficiently debug your code.
Languages
You can debug applications written in one or more of the following languages, using TotalView:
- C and C++
- Fortran
- Mixed-language applications written in Python and C/C++
Operating Systems
The applications you debug using TotalView can run on the following operating systems:
- Linux including Cray Linux Environment (CLE) and PowerLE
- UNIX including AIX and Solaris
- macOS
Processors
You can use TotalView to debug and optimize code for laptops, workstations, servers, clusters, and supercomputers with the following processors:
- ARM (aarch64)
- Intel/AMD (x86-64, x86)
- NVIDIA GPUs on Linux x86-64, Linux ARM64, and Linux PowerLE (Power9)
- NVIDIA Jetson AGX Xavier
- OpenPOWER (ppc64le)
- Power (ppc64, ppc32)
- SPARC
APIs
Use TotalView to debug code that uses the following standardized APIs, plus many more:
- CUDA
- MPI
- OpenACC
- OpenMP
- pthreads
Support Notes
Support information here in the product distribution is a snapshot. For the latest information, see the PDF version on the TotalView documentation web site.
X Windows: X Windows is required on all platforms to run the TotalView and MemoryScape GUIs. Systems used for remote debugging, i.e. those running only the TotalView Server, do not need X Windows installed.
OpenMP: Most languages now support OpenMP. If your language supports it, and if your OpenMP code compiles successfully with one of our supported compilers, then your OpenMP is considered supported by TotalView.
OMPD: A compiler that supports either OpenMP 5.0 or 5.2 is required. For more information on OpenMP compilers, see OpenMP Compilers and Tools on the OpenMP website. TotalView has been tested against the following OMPD compilers:
– LLVM Clang 17.0.6
– LLVM Flang 17.0.1
– AMD Clang and AMD Clang ROCm 6.0 (AMD Clang version 17.0.0)
– HPE CC/C++ and Fortran 17.0.0
CUDA debugging:
Operating systems support: Linux x86-64, Linux PowerLE/OpenPOWER, and Linux-arm64 operating systems including NVIDIA Grace/Hopper systems. Current support is for the 9.2, and 10 - 12 tool chains.
NVIDIA GPUs support: Tesla, Fermi, Kepler, Pascal, Volta, Turing, Ampere, Hopper Notes: 1) There is limited support for the Dynamic Parallelism feature; 2) On the NVIDIA Jetson Xavier Developer Kit, you must debug applications as root. For more information, please see “Using the CUDA Debugger” in the TotalView User Guide.
AMD ROCm debugging:
Operating systems support: Linux x86-64. Current support is for ROCm 5.4 - 6.1.
AMD ROCm GPUs support: MI50, MI100, MI200, MI300 series GPUs
Notes: 1) TV 2024.1 (or later) is required for AMD GPU MI300 devices, which require ROCm 6.0 or later. 2) TotalView's support for AMD ROCm GPUs depends on preliminary releases of the ROCm development kit. As new ROCm releases become available, TotalView will incorporate updates, and will also continue to add new ROCm debugging capabilities to future TotalView releases.
TotalView Remote Client: The Remote Client supports debugging with TotalView on a Windows, macOS, or Linux x86 front-end system while connected to a remote back-end system. For macOS and Linux, supported front-end systems are the same as the full version of TotalView. For Windows, Windows 10 and 11 are supported. For all systems, the front-end and back-end versions must be the same. For example, for the 2024.1 version of the TotalView Remote Client, the back-end debugger must also be version 2024.1.
ReplayEngine for reverse debugging: Supported on Linux x86-64 operating systems. On other platforms, ReplayEngine buttons and menu selections are grayed out in the UI. For more information, see Reverse Debugging with ReplayEngine”. Replay Engine supports the IP transport mechanism on most MPI systems. It supports communication over Infiniband using either the IBverbs or the QLogic PSM transport layers on some systems. Please see the section “Using ReplayEngine with Infiniband MPIs” in the TotalView User Guide for details.
LiveRecorder: Debugging LiveRecorder-generated recording files up to version 7.2 of LiveRecorder is supported on Linux x86-64 operating systems.
Python debugging: Python 2.7 and 3.5 - 3.11 debugging is supported on Linux x86-64 operating systems. For more information, please see “Debugging Python” in the TotalView User Guide.
C++ STL type transformations:
RZVernal and Tioga systems:
Python” in the TotalView User Guide.
Platforms
|
Operating Systems
|
Compilers
|
MPI Products
|
Linux x86-64
|
Red Hat Enterprise 7.9, 8, and 9
CentOS 7.9, 8 (Stream), and 9 Red Hat Fedora 36, 37, and 38 Ubuntu 18.04, 20.04, and 22.04 SuSE Linux Enterprise Server 12 and 15 Rocky Linux 8 |
Intel oneAPI 2021 - 2023
Intel 18 -19 GNU (gcc, g++, gfortran) 4.3 - 13 PGI Workstation 11.2 - 18.10 Oracle Studio 12 NVIDIA OpenACC Clang 3.5 - 16 AMD Clang 5 |
Argonne MPICH
Argonne MPICH2 GNU SLURM HPE MPI 2 HPE MPT Intel MPI Intel oneAPI Open MPI OSU MVAPICH OSU MVAPICH2 Bullx MPI IBM Platform MPI Berkeley UPC (32-bit only) |
Apple Macintosh
See Note 1 |
macOS Ventura (13)
macOS Sonoma (14) |
Intel oneAPI 2021 - 2023
Intel 18 -19 GNU (gcc, g++, gfortran) 4.3 - 13 Apple Clang 9 - 13 |
Argonne MPICH
Argonne MPICH2 Intel oneAPI Open MPI |
Cray XT / XE/ XK / XC
See Note 2 |
Cray Linux Environment (CLE)
|
PGI, GNU (gcc, g++, gfortran), and CCE
|
HPE Cray MPI
|
Cray EX (Shasta)
See Note 3 |
HPE Cray OS (SLES)
|
PGI, GNU (gcc, g++, gfortran), and CCE
|
HPE Cray MPI
|
Linux PowerLE / OpenPOWER |
Ubuntu 18.04 Red Hat Enterprise Linux 7.5 |
GNU (gcc, g++, gfortran) 4.3 - 13 NVIDIA OpenACC |
Open MPI |
Linux-arm64 | Ubuntu 18.04, 20.04, and 22.04 Red Hat Enterprise 7.9 and 8 and CentOS 7.9, 8 (Stream), and 9 |
GNU (gcc, g++, gfortran) 4.3 - 13 Arm Compiler 22 NVIDIA OpenACC Clang 3 - 7 |
Open MPI |
IBM RS6000 Power AIX See Notes 4 & 5 |
AIX 7.1, 7.2, and 7.3 | GNU (gcc, g++, gfortran) 10, 11 IBM XLC 12.1, 13.1, 16.1 IBM Open XL 17.1 IBM XL Fortran 12.1, 13.1, 16.1 |
Argonne MPICH Argonne MPICH2 Open MPI PE POE |
Oracle SPARC Solaris See Note 4 |
Solaris 11 | GNU (gcc, g++, gfortran) 4.3 - 13 Oracle Studio 12 |
Argonne MPICH Argonne MPICH2 Open MPI Sun Cluster Tools |
Note 1: The Classic TotalView UI requires X11. For important notes on installing TotalView on macOS, please see the section Mac OS Installations” in the TotalView Installation Guide.
Note 2: Support on the XK6 platform for Cray's OpenMP Accelerator Directives and Cray's OpenACC Directives. For details, see the section “Directive-Based Accelerator Programming Languages” in the TotalView User Guide.. ReplayEngine supports debugging MPI-based programs using Cray MPI over the Gemini Interconnect found on Cray XE (x86_64 only) supercomputers.
Note 3: For details on installing and using TotalView on Cray EX (Shasta) systems, see "Running TotalView on a Cray EX (Shasta) system" in the Known Issues section of the TotalView release notes.
Note 4: Classic TotalView UI only
Note 5: The TotalView Message Queue Display (MQD) feature with applications using IBM MPI Parallel Environment (PE) requires the threaded version of the MPI library.