Release History

This page lists the Arm Allinea Studio release history.

To download and install the latest version of Arm Allinea Studio, see our downloads page and follow the installation steps given on the download page.

Details on Release versions and links to the Release Notes and Documentation of Arm C/C++ Compiler, Arm Fortran Compiler, and Arm Performance Libraries are provided below.

Arm Allinea Studio also includes Arm Forge (Release History) and Arm Performance Reports (Release History). 

For more compatibility information, see our supported platforms topic.

Arm Allinea Studio

Version 19.3

Released: August 30, 2019

What's new in 19.3

Arm C/C++/Fortran Compiler 19.3.0

New features and enhancements:

  • D-987 : Product reference guides are now available in HTML format in the <install_location>/<package_name>/share directory.

  • D-983 : Support for the F2008 optional argument "BACK=" was added to the MINLOC and MAXLOC intrinsics.

  • D-865 : When targeting SVE, the option '-z now' is passed implicitly to the compile/link flags, to disable a feature known as lazy binding.  The implementation of lazy binding in the GNU dynamic loader is currently imcompatible with the draft Procedure Call Standard (PCS) for the ARM 64-bit Architecture (AArch64) with SVE support [1].  Once compatible loaders are generally available, this change will be reverted.  If needed, lazy binding can be passing the '-z lazy' option during compilation.  [1] https://developer.arm.com/docs/100986/latest/procedure-call-standard-for-the-arm-64-bit-architecture-aarch64-with-sve-support

  • D-812 : Arm Optimization Report is a new, beta-quality feature of Arm Compiler for Linux. Arm Optimization Report makes it easier to see what optimization decisions the compiler is making, in-line with your source code. For more information, see https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/documentation/arm-opt-report.

  • D-804 : The Arm Compiler for Linux package now includes a SLES15 installer.

  • D-803 : The Arm Compiler for Linux package now includes a RHEL 8 installer.

Bug fixes:

  • H-697 : Fixed a security vulnerability affecting users of the community stack protection feature. For more information, please see https://kb.cert.org/vuls/id/129209/

  • H-692 : Fixed an issue for a crash that could occur when compiling Fortran OpenMP loops with reductions on boolean variables (which can generate atomic instructions).

  • H-689 : Fixed an issue where the LEN Fortran intrinsic could return an argument of INTEGER(8) type in cases where INTEGER was expected.

  • H-681 : Improved vectorization of reductions, for current generation processors.

  • H-667 : Fixed an issue where using a parameter array of type INTEGER*8, defined with implied-do notation in a module, caused an internal compiler error "interf:new_symbol_and_link, symbol not found".

  • H-657 : The compiler now automatically vectorizes sincos and sincosf functions, which are not standard math.h functions, when the -fsimdmath or -armpl option is passed on the command line.

  • H-634 : Improved the vectorization of Fortran loops that have calls to math routines.

  • H-587 : Fixed an issue where the compiler libraries had the psmisc package as a dependency. The psmisc package is no longer required.

  • H-456 : When using the --install-to option, the installer no longer appends /opt/arm to the user-specified path.

  • H-428 : Fixed an issue where Modulefiles did not work correctly when the compiler installation was relocated.

Arm Performance Libraries 19.3.0

New features and enhancements:

  • D-846 : A new interface for sparse matrix-matrix multiplication (SpMM) has been added to Arm Performance Libraries.

    - SpMM is an extension of the existing sparse interface supporting all functionality from the usual BLAS GEMM interface.

    - Matrices can be supplied in CSR, CSC, COO, or dense formats.

    - SpMM is available for both C and Fortran, and examples are included for both.

    - A sparse matrix addition function, and functions to generate identity and null matrices, are also provided for convenience. Sparse matrix-vector multiplication (SpMV) functions have been optimized for parallel cases.

  • D-843 : FFT performance improvements.

    - Optimizations for transform lengths involving large prime factors.

    - Parallel performance improvements for multi-dimensional problems.

  • D-675 : Performance enhancements for BLAS level 3 calls. In particular, updated versions of both ?SYMM and ?HEMM are included for all microarchitectures.

  • D-674 : A generic, SVE-enabled version of Arm Performance Libraries is now provided. The SVE-enabled version has not been tuned for any particular microarchitecture, and is available to experiment with SVE in an emulated mode, ahead of silicon deployments. Examples are provided which demonstrate how to run SVE code.

 

Bug fixes:
  • None in this release.

Arm Forge 19.1.3
(includes 19.1, 19.1.1, 19.1.2, and 19.1.3)

Arm DDT new features and enhancements:

  • Support for Arm C/C++/Fortran Compiler up to version 19.2.
  • Fixed an issue where GDB 8.1 would not start on an Ubuntu 16.04 system without libmpfr installed.
  • Support for debugging of IBM Spectrum MPI jobs launched with Spindle.
  • GDB 8.1 is now the default DDT debugger.
  • Support for the GDB 7.10.1 debugger has been removed.
  • Memory Debugging support for PMDK.
  • Support for debugging CUDA 10.0 and 10.1 binaries.
  • Remote connect network traffic is now compressed by default so some actions will now be faster when using this feature.
  • Support for Cray Shasta detection.

Arm DDT bug fixes:

  • [FOR-7342] Fixed an issue with memory debugging aligned allocations.
  • [FOR-6659] Clarified information in the user guide about startup issues with OpenMPI 3.0 and 3.1.
  • [FOR-6503] Fixed an issue where variables named "array" in a struct were not evaluated.
  • [FOR-6142] Fixed an issue with memory debug, where the total number of free calls were double counted when using memkind_realloc.
  • [FOR-6049] Fixed an issue with remote client messages when X11 is not available.
  • [FOR-7236] Fixed an issue where MPI auto-detection did not work with HPE MPT 2.18+.
  • [FOR-7195] Fixed an issue that occurs when output brackets are present in the output file argument.
  • [FOR-7417] Track memory allocations for Fortran applications compiled with the  -mkl option to the Intel compiler.
  • [FOR-7140] Fixed an issue where allocated Fortran arrays are reported as not allocated.
  • [FOR-7376] Fixed an issue that caused the offline report memory leak bar charts to flow onto multiple lines.
  • [FOR-6985] Fixed an issue that prevented the expansion of Fortran arrays in the Current Line window. 
  • [FOR-7660] Fixed an issue when launching an application with Slurm 19.0.5.
  • [FOR-7661] Arm Forge now auto-detects HPE HMPT.

Arm MAP new features and enhancements:

  • Support for Arm C/C++/Fortran Compiler up to version 19.2.
  • Improved GUI performance and reduced memory consumption when viewing large .map files.
  • New CPU metrics for Armv8-A platforms.
  • New CPU metrics for IBM Power9 platforms.
  • MAP now displays stacks from Python code on non-main threads.
  • Architecture information is now stored to the generated .map file.
  • CPU metrics on Power and Armv8-A are now available with a standard Arm Forge license.
  • Support for displaying Caliper instrumented regions (https://github.com/LLNL/Caliper) to Arm MAP. Refer to section 32, 'Performance Analysis with Caliper Instrumentation', in the Arm Forge user guide.
  • Section 24.1 in the Arm Forge user guide has been updated to better describe the CPU instruction metrics available on x86_64, Armv8-A and IBM Power 8 and Power 9 platforms.
  • Remote connect network traffic is now compressed by default so some actions will now be faster when using this feature.
  • Support for Cray Shasta detection.

Arm MAP bug fixes:

  • [FOR-6642] Improved unwinding for PGI-compiled binaries on IBM Power systems.
  • [FOR-6414] Fixed an issue that occurs when profiling applications that were statically compiled by the PGI compiler.
  • [FOR-6659] Clarified information in the user guide about startup issues with OpenMPI 3.0 and 3.1.
  • [FOR-5518] Fixed an issue that caused a slowdown of the analysis phase when profiling Python scripts.
  • [FOR-7236] Fixed an issue where MPI auto-detection did not work with HPE MPT 2.18+.
  • [FOR-7195] Fixed an issue that occurs when output brackets are present in the output file argument.
  • [FOR-7366] You can now see a breakdown of time spent calling functions and executing instructions per line on AArch74- and ppc64le-based systems.
  • [FOR-7660] Fixed an issue when launching an application with Slurm 19.0.5.
  • [FOR-7661] Arm Forge now auto-detects HPE HMPT.
  • [FOR-7663] MAP GPU profiling now works as expected when GPUs are in "Exclusive Process" mode.
  • [FOR-7879] Autodetection of make-profiler-libraries now works as expected on Cray systems.

Arm Performance Reports 19.1.3
(includes 19.1, 19.1.1, 19.1.2, and 19.1.3)

New features and enhancements:

  • Support for Arm C/C++/Fortran Compiler up to version 19.2.
  • Architecture information is now stored to the generated .map file.
  • New CPU metrics for IBM Power9 and Armv8-A platforms.
  • Support for Cray Shasta detection.

Bug fixes:

  • [FOR-6642] Improved unwinding for PGI-compiled binaries on IBM Power systems.
  • [FOR-6414] Fixed an issue that occurs when profiling applications that were statically compiled by the PGI compiler.
  • [FOR-6659] Clarified information in the user guide about startup issues with OpenMPI 3.0 and 3.1.
  • [FOR-7236] Fixed an issue where MPI auto-detection did not work with HPE MPT 2.18+.
  • [FOR-7195] Fixed an issue that occurs when output brackets are present in the output file argument.
  • [FOR-7660] Fixed an issue when launching an application with Slurm 19.0.5.
  • [FOR-7661] HPE HMPT is now auto-detected.
  • [FOR-7879] Autodetection of make-profiler-libraries now works as expected on Cray systems.

Release Note for Release History 19.3

Arm Compiler for Linux 19.3
=====================
Arm Compiler for Linux 19.3 suite provides a complete compiling environment,
with Arm C/C++/Fortran Compiler and Arm Performance Libraries, to develop and
tune your HPC applications on Armv8-A based platforms. This release includes
version 19.3.0 of the Arm Performance Libraries which provides Fortran
compatibility with the Arm C/C++/Fortran Compiler. This release also includes
GNU GCC 8.2.0 to provide the optimal experience on the latest Arm HPC systems
when using the Arm Performance Libraries and GCC.

It contains the following packages:

- Arm C/C++/Fortran Compiler 19.3

  Arm Compiler is a Linux user-space C/C++/Fortran compiler tailored for
  scientific computing, HPC and enterprise workloads. This release includes a
  number of enhancements and bug fixes.

- Arm Performance Libraries 19.3.0

  This release includes multiple Arm Performance Libraries packages, each of which
  are optimized for individual Armv8 AArch64 implementations (Cortex-A72 and
  ThunderX2CN99). An SVE-enabled version is also provided, although this does not
  have tunings for any particular microarchitecture. This release includes builds
  of the libraries which are compatible with GNU GCC 8.2.0 as well as the Arm
  Compiler. We recommend you use the version that matches your platform for the
  best performance. You can also use the generic AArch64 implementation by
  running:

  GCC 8.2.0 version:
  % module load Generic-AArch64/<OS>/<OS_Version>/gcc-8.2.0/<ARMPL_Name>/19.3.0

  Arm Compiler version:
  % module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-19.3/<ARMPL_Name>/19.3

- GNU GCC 8.2.0

  A build of GNU's GCC 8.2.0 release is provided for convenience and for
  OpenMP/libgfortran compatibility with the Arm Performance Libraries. As a GNU
  tool suite, the GPL-licensed source code can be downloaded separately.

Changes in this Release
=================
New features and enhancements:

- Arm C/C++/Fortran Compiler 19.3:
  - D-987 : Product reference guides are now available in HTML format in the
            <install_location>/<package_name>/share directory.

  - D-983 : Support for the F2008 optional argument "BACK=" was added to the MINLOC and
            MAXLOC intrinsics.

  - D-865 : When targeting SVE, the option '-z now' is passed implicitly to the compile/link
            flags, to disable a feature known as lazy binding.  The implementation of lazy
            binding in the GNU dynamic loader is currently imcompatible with the draft
            Procedure Call Standard (PCS) for the ARM 64-bit Architecture (AArch64) with SVE
            support [1].  Once compatible loaders are generally available, this change will
            be reverted.  If needed, lazy binding can be passing the '-z lazy' option during
            compilation.  [1] https://developer.arm.com/docs/100986/latest/procedure-call-
            standard-for-the-arm-64-bit-architecture-aarch64-with-sve-support

  - D-812 : Arm Optimization Report is a new, beta-quality feature of Arm Compiler for
            Linux. Arm Optimization Report makes it easier to see what optimization
            decisions the compiler is making, in-line with your source code. For more
            information, see https://developer.arm.com/tools-and-software/server-and-
            hpc/arm-architecture-tools/documentation/arm-opt-report .

  - D-804 : The Arm Compiler for Linux package now includes a SLES15 installer.

  - D-803 : The Arm Compiler for Linux package now includes a RHEL 8 installer.


- Arm Performance Libraries 19.3.0:
  - D-846 : A new interface for sparse matrix-matrix multiplication (SpMM) has been added to
            Arm Performance Libraries.

            - SpMM is an extension of the existing sparse interface supporting all
            functionality from the usual BLAS GEMM interface.

            - Matrices can be supplied in CSR, CSC, COO, or dense formats.

            - SpMM is available for both C and Fortran, and examples are included for both.

            - A sparse matrix addition function, and functions to generate identity and null
            matrices, are also provided for convenience. Sparse matrix-vector multiplication
            (SpMV) functions have been optimized for parallel cases.

  - D-843 : FFT performance improvements.

            - Optimizations for transform lengths involving large prime factors.

            - Parallel performance improvements for multi-dimensional problems.

  - D-675 : Performance enhancements for BLAS level 3 calls. In particular, updated versions
            of both ?SYMM and ?HEMM are included for all microarchitectures.

  - D-674 : A generic, SVE-enabled version of Arm Performance Libraries is now provided. The
            SVE-enabled version has not been tuned for any particular microarchitecture, and
            is available to experiment with SVE in an emulated mode, ahead of silicon
            deployments. Examples are provided which demonstrate how to run SVE code.


Bug fixes:

- Arm C/C++/Fortran Compiler 19.3:
  - H-697 : Fixed a security vulnerability affecting users of the community stack protection
            feature. For more information, please see https://kb.cert.org/vuls/id/129209/

  - H-692 : Fixed an issue for a crash that could occur when compiling Fortran OpenMP loops
            with reductions on boolean variables (which can generate atomic instructions).

  - H-689 : Fixed an issue where the LEN Fortran intrinsic could return an argument of
            INTEGER(8) type in cases where INTEGER was expected.

  - H-681 : Improved vectorization of reductions, for current generation processors.

  - H-667 : Fixed an issue where using a parameter array of type INTEGER*8, defined with
            implied-do notation in a module, caused an internal compiler error
            "interf:new_symbol_and_link, symbol not found".

  - H-657 : The compiler now automatically vectorizes sincos and sincosf functions, which
            are not standard math.h functions, when the -fsimdmath or -armpl option is
            passed on the command line.

  - H-634 : Improved the vectorization of Fortran loops that have calls to math routines.

  - H-587 : Fixed an issue where the compiler libraries had the psmisc package as a
            dependency. The psmisc package is no longer required.

  - H-456 : When using the --install-to option, the installer no longer appends /opt/arm to
            the user-specified path.

  - H-428 : Fixed an issue where Modulefiles did not work correctly when the compiler
            installation was relocated.


- Arm Performance Libraries 19.3.0:
  - No fixed issues

System Requirements
================
This suite is supported on the following Linux platforms:

- AArch64 Redhat 7 and 8
- AArch64 SUSE 12 and 15
- AArch64 Ubuntu 16.04+

Installation Instructions
=================
To install the Arm Compiler for Linux suite, run the installation script as a
privileged user:

% ./arm-compiler-for-hpc-19.3*.sh

The installer displays the EULA and prompts you to agree to the terms.  Type
'yes' at the prompt to continue.

For headless installation, run the installer with the '--accept' command-line
parameter to automatically accept the EULA.

To perform a local install, run the installer with the '--install-to <dir>'
option.

All packages are unpacked to <install_location>/<package_name> with
environment modulefiles available under <install_location>/modulefiles.
The default installation location is /opt/arm/. Local installs have the
same directory structure starting from your chosen installation root.

Licensing
=======
Arm Compiler for Linux is available as part of Arm Allinea Studio,
and requires a valid license to run. To request a license, go to:

https://store.developer.arm.com/store/high-performance-computing-hpc-tools/arm-allinea-studio

Once you have obtained a license file from Arm, follow these steps to make it
available for use:

1. Save your license:
   - If you chose the default <install_location> directory, create a directory
     called 'licenses' within /opt/arm/ and copy your client license file to it.
   - If you specified a custom <install_location> directory, create an
     /opt/arm/licenses directory path, then copy your client license file to the
     'licenses' directory.
2. If you are using Arm Forge or Arm Performance Reports, and you do not have a
   separate license for these tools, set the ARM_LICENSE_DIR environment
   variable to point to <install_location>/licenses.
3. If you have a floating license, add the server license file to the machine
   where Arm Licence Server is installed. Create a directory called 'licenses'
   within the <install_location>/licenceserver directory and copy your license
   file to it. Restart Arm Licence Server to pick up the new floating license.

Please refer to the Arm Allinea Studio licensing page on the Arm Developer
website for more information about licensing:

https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-allinea-studio/licensing

RPMs
=====
The installed packages are shipped as RPMs for RPM based Linux distributions.
These RPMs are signed by Arm's HPC GPG key. The public key can be downloaded
from:

https://developer.arm.com/-/media/files/keys/GPG-PUB-KEY-ARM-HPC-SW-TOOLS.PUB

This key can be imported by running:

% rpm --import GPG-PUB-KEY-ARM-HPC-SW-TOOLS.PUB

Environment Modules
================
Each installed package has an Environment Module file installed under
<install_location>/modulefiles. You can add this directory to your
${MODULESHOME}/init/.modulespath file or to your $MODULEPATH environment
variable. For example:

% # For SH or BASH shells:
% export MODULEPATH=$MODULEPATH:<install_location>/modulefiles


Alternatively you can use the 'module use' command:

% module use <install_location>/modulefiles

Once your environment has been configured to use the module files, use the
'module avail' command to list the available modules and the 'module load'
command to set up your environment to use them.

The main module file for this release is loaded by running:

% module load Generic-AArch64/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/19.3

This will load all of the modules belonging to the packages included with this
product with the exception of the Arm Performance Libraries. You can also
module load the individual tools:

- Arm C/C++/Fortran Compiler 19.3

  Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler/19.3

- Arm Performance Libraries 19.3.0

  GCC 8.2.0 version:
  <Specific_Core>/<OS>/<OS_Version>/gcc-8.2.0/<ARMPL_Name>/19.3.0

  Arm C/C++/Fortran Compiler version:
  <Specific_Core>/<OS>/<OS_Version>/arm-hpc-compiler-19.3.0/<ARMPL_Name>/19.3.0

- GNU GCC 8.2.0

  Generic-AArch64/<OS>/<OS_Version>/gcc/8.2.0

More information about Environment Modules can be found at:
  http://modules.sourceforge.net

C Libraries
========
The compilers included with this suite are built to use the C Libraries
provided by your Linux distribution. If errors such as "ld: cannot find crt1.o"
are reported, you will need to install the libraries on your system.

The package names for these libraries are:

SUSE and RHEL: glibc-devel
Ubuntu:        libc6-dev

Known Issues
==========
- Arm C/C++/Fortran Compiler 19.3:
  - H-741 : Copying module files to a different directory after installation, or using a
            symlink to the module files, might result in an error using 'module load'. If
            this issue affects you, to get the correct advice for your system configuration,
            please contact Arm support. Module configuration flexibility will be improved in
            a later release of Arm Compiler for Linux.

  - H-734 : Where multiple possible licences are available to the compiler, and where one
            licence has no remaining seats, the compiler might fail to obtain a licence.
            This has only been observed on Ubuntu 18.04 distributions that were updated in
            late July. To resolve, remove the licence which has no remaining seats from the
            directory.

  - H-571 : If you have multiple versions of Arm Compiler for Linux installed that depend on
            the same GCC version, running the uninstall.sh script will fail. Instead, remove
            the packages manually, using the Package Manager, or modify the uninstall.sh
            script to prevent removal of the GCC package.

  - H-421 : When the uninstaller is run, it does not remove all of the files. It is safe to
            remove the remaining files manually.


- Arm Performance Libraries 19.3.0:
  - H-702 : Loading the Arm Performance Library 'armpl' module and then using the Arm
            Compiler '-armpl=ilp64' option to select the ILP64 interface to Arm Performance
            Libraries, pulls in the LP64 armpl.h include file. To avoid this issue, unload
            the 'armpl' module and then load the 'arm-hpc-compiler' module instead. The
            '-armpl' option then works as expected. This issue will be fixed in a future
            version of Arm Compiler for Linux.


Documentation and Support
====================
To get started with Arm Compiler for Linux and Arm Performance Libraries, see:

Arm C/C++ Compiler:
  - https://developer.arm.com/docs/101458/latest/getting-started

Arm Fortran Compiler:
  - https://developer.arm.com/docs/101380/latest/get-started

Arm Performance Libraries:
  - https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-performance-libraries/getting-started

For more information about Arm Compiler for Linux and Arm Performance Libraries,
refer to the following reference guides:

Arm Fortran Compiler (also available in <install_location>/<package_name>/share):
  - https://developer.arm.com/docs/101380/latest

Arm C/C++ Compiler (also available in <install_location>/<package_name>/share):
  - https://developer.arm.com/docs/101458/latest

Arm Performance Libraries:
  - https://developer.arm.com/docs/101004/latest

To see the changes between releases, refer to the Release History:

https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-allinea-studio/release-history

Detailed instructions for building many common scientific applications,
benchmarks and libraries using Arm HPC tools are available on the Arm Developer
website:

https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/resources/porting-and-tuning

System Administrator environment configuration information can be found online at:

https://developer.arm.com/tools-and-software/server-and-hpc/help/system-administration

Further documentation about all the tools can be found online at:

https://developer.arm.com/tools-and-software/server-and-hpc/help

If you require support, contact support-hpc-sw@arm.com

Example Code
===========
Example code is included in this suite as part of the Arm Performance
Libraries. This code can be found at:

<install_location>/<ARMPL_Name>*<ARMPL_Version>*/examples

You will need to copy this to a writeable directory and load both the Arm
Compiler and Arm Performance Libraries environment modules for the examples to
build.

EG:

# Copy the examples somewhere writeable:
% cp -r <install_location>/armpl-19.3.0_*arm-hpc-compiler*/examples ./
% cd examples

# Load the correct environment modules:
% module load Generic-AArch64/<OS>/<OS_Version>/suites/<SUITE_Mod_Name>/19.3
% module load Generic-AArch64/<OS>/<OS_Version>/arm-hpc-compiler-19.3/<ARMPL_Name>/<ARMPL_Version>

# Build it:
% make

Uninstalling
=========

For convenience, this package includes an "uninstall.sh" script at:

<install_location>/arm-compiler-for-hpc-19.3*/uninstall.sh

This script attempts to uninstall all the packages supplied as part of this
suite. Note that this may not be possible if other packages, outside of this
suite, depend on them. You will need to uninstall the dependant packages as
well.

Please note that, if you use the --install-to option provided by the installer,
you will need to uninstall the packages by manually removing their directories.