Linaro Forge User Guide
This document describes how to install and use Linaro Forge.
- Linaro Forge
- DDT
- Get started with DDT
- Prepare a program for debugging
- Express Launch (DDT)
- Run a program
remote-exec
required by some MPIs (DDT)- Open core files
- Attach to running programs
- Debug single-process programs
- Debug OpenMP programs
- Debug MPMD programs
- Manual launch of multi-process non-MPI programs
- Start a job in a queue
- Job scheduling with jsrun
- Use custom MPI scripts
- Start DDT from a job script
- Numactl (DDT)
- Python debugging
- Save and load sessions
- DDT user interface
- Source code (DDT)
- Control program execution
- Process control and process groups
- Focus control
- Start, stop, and restart a program
- Step through a program
- Stop messages
- Set breakpoints
- Conditional breakpoints
- Suspend breakpoints
- Delete breakpoints
- Load and save breakpoints
- Default breakpoints
- Synchronize processes
- Set watchpoints
- Tracepoints
- Version control breakpoints and tracepoints
- Examine the stack frame
- Align stacks
- View stacks in parallel
- Browse source code
- View multiple files simultaneously
- Signal handling
- Variables and data
- Variables window
- Sparklines
- Current line
- Local variables
- Arbitrary expressions and global variables
- Edit variables
- Help with Fortran modules
- View complex numbers in Fortran
- C++ STL support
- Custom pretty printers
- View array data
- UPC support
- Change data values
- View numbers in different bases
- Examine pointers
- Multi-dimensional arrays in the Variable View
- Multi-Dimensional Array Viewer (MDA)
- Cross-process and cross-thread comparison
- Assign MPI ranks
- View registers
- Process details
- Disassembly
- Interact directly with the debugger
- Program input and output
- Logbook
- Message queues
- Memory debugging
- Use and write plugins
- GPU debugging
- Control GPU threads
- Examine GPU threads and data
- GPU devices information
- Attach to running GPU programs
- NVIDIA GPU debugging
- ROCm GPU debugging
- Intel Xe GPU debugging
- Offline debugging
- Get started with DDT
- MAP
- Get started with MAP
- Welcome page
- Express Launch (MAP)
- Prepare a program for profiling
- Debug symbols
- Disable function inlining
- Disable tail call optimization
- Linking
- Dynamic linking on Cray X-Series systems
- Static linking
- Static linking on Cray X-Series systems
- Dynamic and static linking on Cray X-Series systems using the modules environment
- map-link modules installation on Cray X-Series
- Unsupported user applications
- Profile a program
remote-exec
required by some MPIs (MAP)- Profile a single-process program
- Send standard input (MAP)
- Start a job in a queue (MAP)
- Use custom MPI scripts (MAP)
- Start MAP from a job script
- Numactl (MAP)
- MAP user interface
- Program details
- Time display mode
- Program output
- Source code (MAP)
- Selected lines view
- Stacks view
- OpenMP Regions view
- Functions view
- Library view
- Project Files view
- Metrics view
- Compiler remarks
- MPI Call Statistics dialog
- Configurable Perf metrics
- Main-thread, OpenMP, and Pthread view modes
- Processes and cores window
- Run MAP from the command line
- Export profiler data in JSON format
- NVIDIA GPU profiling
- AMD GPU profiling
- Python profiling
- Performance analysis with Caliper instrumentation
- Arm Statistical Profiling Extension (SPE)
- Get started with MAP
- Performance Reports
- Get started with Performance Reports
- Compilers for example programs
- Compile on Cray X-series systems
- Run an example program
- Simultaneously generate both a
.map
file and Performance Report - Generate a performance report for an example program
- Generate a performance report from an existing .map file
- View or export a performance report whilst viewing a .map file
- Run real programs
- Link with a program
- Dynamic linking on Cray X-Series systems (Performance Reports)
- Static linking (Performance Reports)
- Static linking on Cray X-Series systems (Performance Reports)
- Procedure
- Dynamic and static linking on Cray X-Series systems using the modules environment (Performance Reports)
- map-link modules installation on Cray X-Series systems (Performance Reports)
- Unsupported user applications (Performance Reports)
- Express Launch mode (Performance Reports)
- Compatibility Launch mode
- Generate a performance report for a real program
- Specify output locations
- Support for DCIM systems
- Enable and disable metrics
- Summarize an existing MAP file
- Interpret performance reports
- Perf metrics
- Get started with Performance Reports
- Supported platforms
- Get support
- General troubleshooting
- GUI cannot connect to an X Server
- Licenses
- F1 cannot display this document
- MPI not detected
- Starting a program
- Starting scalar programs
- Starting scalar programs with aprun
- Starting scalar programs with srun
- Problems when you start an MPI program
- Starting multi-process programs
- No shared home directory
- Linaro DDT or Linaro MAP cannot find your hosts or the executable
- The progress bar does not move and Linaro Forge times out
- Resource temporarily unavailable
- Attaching
- Source code view
- Input/Output
- Controlling a program
- Evaluating variables
- Memory debugging
- The View Pointer Details window says a pointer is valid but does not show you which line of code it was allocated on
- mprotect fails error when using memory debugging with guard pages
- Allocations made before or during
MPI_Init
show up in Current Memory Usage but have no associated stack back trace - Deadlock when calling printf or malloc from a signal handler
- Program runs more slowly with Memory Debugging enabled
- MAP specific issues
- MPI wrapper libraries
- Thread support limitations
- No thread activity while blocking on an MPI call
- I am not getting enough samples
- I just see main (external code) and nothing else
- Linaro MAP reports time spent in a function definition
- Linaro MAP does not correctly identify vectorized instructions
- Linking with the static Linaro Forge sampler library fails with FDE overlap errors
- Linking with the static Linaro Forge sampler library fails with an undefined references to “__real_dlopen”
- Linaro MAP adds unexpected overhead to my program
- Linaro MAP takes an extremely long time to gather and analyze my OpenBLAS-linked application
- Linaro MAP over-reports MPI, Input/Output, accelerator or synchronization time
- Linaro MAP collects very deep stack traces with boost::coroutine
- Excessive memory use
- Known issues and notes
- Configuration
- Queue template script syntax
- Worked Examples
- Security
Proprietary notice
This document is protected by copyright and other related rights and the practice or implementation of the information contained in this document may be protected by one or more patents or pending patent applications. No part of this document may be reproduced in any form by any means without the express prior written permission of Linaro. No license, express or implied, by estoppel or otherwise to any intellectual property rights is granted by this document unless specifically stated.
Your access to the information in this document is conditional upon your acceptance that you will not use or permit others to use the information for the purposes of determining whether implementations infringe any third party patents.
THIS DOCUMENT IS PROVIDED AS IS
. LINARO PROVIDES NO REPRESENTATIONS
AND NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT
LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY
QUALITY, NONINFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE WITH
RESPECT TO THE DOCUMENT. For the avoidance of doubt, Linaro makes no
representation with respect to, and has undertaken no analysis to
identify or understand the scope and content of, third party patents,
copyrights, trade secrets, or other rights.
This document may include technical inaccuracies or typographical errors.
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL LINARO BE LIABLE FOR ANY DAMAGES, INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF ANY USE OF THIS DOCUMENT, EVEN IF LINARO HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
This document consists solely of commercial items. You shall be
responsible for ensuring that any use, duplication or disclosure of this
document complies fully with any relevant export laws and regulations to
assure that this document or any portion thereof is not exported,
directly or indirectly, in violation of such export laws. Use of the
word partner
in reference to Linaro’s customers is not intended to
create or refer to any partnership relationship with any other company.
Linaro may make changes to this document at any time and without notice.
If any of the provisions contained in these terms conflict with any of the provisions of any click through or signed written agreement covering this document with Linaro, then the click through or signed written agreement prevails over and supersedes the conflicting provisions of these terms. This document may be translated into other languages for convenience, and you agree that if there is any conflict between the English version of this document and any translation, the terms of the English version of the Agreement shall prevail.
The Linaro corporate logo and words marked with or are registered trademarks or trademarks of Linaro Limited in the US and/or elsewhere. All rights reserved. Other brands and names mentioned in this document may be the trademarks of their respective owners. Please follow Linaro’s trademark usage guidelines at https://www.linaro.org/legal#trademark-usage.
Copyright © 2023-2024 Linaro Limited. All rights reserved
Copyright ©2017-2023 Arm Limited (or its affiliates). All rights reserved.
Copyright ©2002-2017 Allinea Software Limited.
Linaro Limited. Company 07180318 registered in England. Harston Mill, Harston, Cambridge, CB22 7GG, UK.
Confidentiality status
This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license restrictions in accordance with the terms of the agreement entered into by Linaro and the party that Linaro delivered this document to.
Product status
The information in this document is Final, that is for a developed product.
Web address