Tools to Port and Optimize
Arm Allinea Studio provides the following tools to help port and optimize applications for Arm:
A commercially-supported, Linux user-space, C/C++ and Fortran compiler, tuned for scientific computing, HPC, and enterprise workloads:
Processor-specific optimizations for various server-class Arm-based platforms.
Optimal shared-memory parallelism using latest Arm-optimized OpenMP runtime.
Optimized scalar and vector maths functions.
C++ 17 and Fortran 2003 language support with OpenMP 4.5.
Support for Armv8-A and SVE architecture extension.
Based on LLVM and Flang, leading open-source compiler projects.
Runs on leading Linux distributions: RedHat, SUSE, and Ubuntu.
Arm Performance Libraries
Commercially-supported, 64-bit Armv8-A core math libraries, optimized for HPC applications on Arm-based platforms, providing best-in-class serial and parallel performance:
Commonly used low-level math routines: BLAS, LAPACK, and FFT.
Provides FFTW-compatible interface for FFT routines.
Batched BLAS support.
Generic Armv8-A optimizations by Arm.
Tuning for specific platforms in collaboration with silicon vendors.
Validated with NAG's industry standard test suite.
Available for Arm Compiler or GCC.
Arm Forge Professional
A cross-platform toolkit to debug (Arm DDT) and profile (Arm MAP) high-performance parallel applications:
Available on the vast majority of the Top500 machines in the world.
Fully supported by Arm on x86, IBM Power, Nvidia GPUs, etc.
Powerful and in-depth error detection mechanisms (including memory debugging).
Sampling-based profiler to identify and understand bottlenecks.
Available at any scale (from the desktop to leadership-class HPC).
Unique capabilities to simplify remote interactive sessions.
Innovative approach to present essential information to users.
Arm Performance Reports
Characterize and understand the performance of HPC application runs:
Analyze metrics around CPU, memory, IO, and hardware counters.
Users can to add their own metrics.
Analyze data and report the information that matters to users.
Provides simple guidance on how to improve workload efficiency.
Define application behavior and performance expectations.
Integrate outputs to various systems for validation (for example, continuous integration).
Can be automated completely (no user intervention).