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.1

Released: March 08, 2019

What's new in 19.1

New features and enhancements

Arm C/C++/Fortran Compiler 19.1:
  - D-669 : Arm Compiler for HPC now supports the Fortran 'TRAILZ' intrinsic, which finds the number of trailing zero bits in an integer.  Please refer to the Fortran Reference Guide for more information.

  - D-668 : Arm Compiler for HPC now supports the Fortran 'UNROLL' directive.  This is a hint to the compiler to unroll the preceding loop.  Please refer to the Fortran Reference Guide for more information.

  - D-632 : A new flag -fno-realloc-lhs has been added, for consistency with GNU compilers. Use this flag in place of -Mallocatable=95, which is no longer documented but is still supported. Refer to the Fortran Reference Guide for information about this flag.

  - D-552 : libamath is now the default library used by Arm Compiler for HPC to provide optimized scalar and vector math functions.

            - The compiler will link to libamath by default before libm in order to provide better performing implementations.

            - libamath is also provided for GCC. GCC users must link to the library explicitly to make use of the optimized math functions.

            - Always use the correct build of libamath for the compiler you are using. For example, do not compile and link code with GCC using the version of libamath supplied for Arm Compiler for HPC, use the GCC version.

  - D-513 : Arm Compiler for HPC now supports the Huawei Kunpeng 920 CPU.  Tuning for Kunpeng 920-based platforms is automatically selected with the -mcpu=native option, when the compiler is run on a Kunpeng 920-based platform. To select this explicitly, use the -mcpu=tsv110 option.


Arm Performance Libraries 19.1.0:
  - D-581 : Improved *GEMV performance.

  - D-552 : libamath is now the default library used by Arm Compiler for HPC to provide optimized scalar and vector math functions.

            - The compiler will link to libamath by default before libm in order to provide better performing implementations.

            - libamath is also provided for GCC. GCC users must link to the library explicitly to make use of the optimized math functions.

            - Always use the correct build of libamath for the compiler you are using. For example, do not compile and link code with GCC using the version of libamath supplied for Arm Compiler for HPC, use the GCC version.

  - D-499 : Performance improvements for [SCZ]GEMM, including stabilized performance for ThunderX2 systems configured in SMT > 1 mode.

  - D-498 : Improved MPI FFT parallel scaling.

  - D-497 : Support for Fortran MPI FFTW interface.

  - D-496 : FFT performance improvements, including for input lengths involving large prime
            factors.

  - D-495 : Single precision real SpMV performance optimizations.

  - D-494 : SpMV support for Compressed Sparse Column (CSC) and Coordinate (COO) sparse matrix formats with both C and Fortran interfaces.

  - D-493 : Added sparse matrix-vector multiplication (SpMV) interfaces for Fortran, including an example.

Bug fixes

Arm C/C++/Fortran Compiler 19.1:
  - H-489 : The armflang runtime library no longer exposes symbols that conflict with libnuma.

  - H-464 : A problem that occurs when a shared variable is accessed in a taskloop has now been fixed.

  - H-400 : Fixed an issue where getting the member of sizeless struct rvalue prevented successful compilation.

  - H-397 : RPMs and debs now correctly report what libraries they provide.

  - H-392 : The runtime performance of the Fortran TRANSFER function has been improved.

  - H-296 : Fixed a runtime segmentation fault in subroutines that contain OMP CRITICAL and have one or more ENTRY statements.

  - H-98 : The install should now be properly relocatable on RPM-based platforms and will register with the system RPM database if the user has appropriate permissions

  - H-59 : Fixed an issue where when the DATA statement was used to assign a value to a Cray pointer, the compiler aborted with the following message "Error: integer constant must have integer type".

Arm Performance Libraries 19.1.0:
  - No fixed issues

Known Issues

Arm C/C++/Fortran Compiler 19.1:
  - H-571 : If you have multiple versions of Arm Compiler for HPC 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.

  - H-411 : There is a regression in SVE vectorization which may result in miscompiles of loops with loop-carried dependencies.

  - H-310 : -fsimdmath is incompatible with a dynamic linker optimization known as 'lazy binding'.  When using -fsimdmath, Arm recommends that you also add '-z now' to the compile/link flags, in order to disable this optimization during linking. For more information, see Vector math routines.

Arm Performance Libraries 19.1.0:
  - No known issues

 

Release Note for Release History 19.1

Arm Compiler for HPC 19.1
=========================
Arm Compiler for HPC 19.1 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.1.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.1

  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.1.0

  This release includes multiple Arm Performance Libraries packages, each of which
  are optimized for individual Armv8 AArch64 implementations (Cortex-A72,
  ThunderX2CN99 and Kunpeng 920). 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/RHEL/7/gcc-8.2.0/armpl/19.1.0

  Arm Compiler version:
  % module load Generic-AArch64/RHEL/7/arm-hpc-compiler-19.1/armpl/19.1

- 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.1:
  - D-669 : Arm Compiler for HPC now supports the Fortran 'TRAILZ' intrinsic, which finds
            the number of trailing zero bits in an integer.  Please refer to the Fortran
            Reference Guide for more information.

  - D-668 : Arm Compiler for HPC now supports the Fortran 'UNROLL' directive.  This is a
            hint to the compiler to unroll the preceding loop.  Please refer to the Fortran
            Reference Guide for more information.

  - D-632 : A new flag -fno-realloc-lhs has been added, for consistency with GNU compilers.
            Use this flag in place of -Mallocatable=95, which is no longer documented but is
            still supported. Refer to the Fortran Reference Guide for information about this
            flag.

  - D-552 : libamath is now the default library used by Arm Compiler for HPC to provide
            optimized scalar and vector math functions.

            - The compiler will link to libamath by default before libm in order to provide
            better performing implementations.

            - libamath is also provided for GCC. GCC users must link to the library
            explicitly to make use of the optimized math functions.

            - Always use the correct build of libamath for the compiler you are using. For
            example, do not compile and link code with GCC using the version of libamath
            supplied for Arm Compiler for HPC, use the GCC version.

  - D-513 : Arm Compiler for HPC now supports the Huawei Kunpeng 920 CPU.  Tuning for
            Kunpeng 920-based platforms is automatically selected with the -mcpu=native
            option, when the compiler is run on a Kunpeng 920-based platform. To select this
            explicitly, use the -mcpu=tsv110 option.


- Arm Performance Libraries 19.1.0:
  - D-581 : Improved *GEMV performance.

  - D-552 : libamath is now the default library used by Arm Compiler for HPC to provide
            optimized scalar and vector math functions.

            - The compiler will link to libamath by default before libm in order to provide
            better performing implementations.

            - libamath is also provided for GCC. GCC users must link to the library
            explicitly to make use of the optimized math functions.

            - Always use the correct build of libamath for the compiler you are using. For
            example, do not compile and link code with GCC using the version of libamath
            supplied for Arm Compiler for HPC, use the GCC version.

  - D-499 : Performance improvements for [SCZ]GEMM, including stabilized performance for
            ThunderX2 systems configured in SMT > 1 mode.

  - D-498 : Improved MPI FFT parallel scaling.

  - D-497 : Support for Fortran MPI FFTW interface.

  - D-496 : FFT performance improvements, including for input lengths involving large prime
            factors.

  - D-495 : Single precision real SpMV performance optimizations.

  - D-494 : SpMV support for Compressed Sparse Column (CSC) and Coordinate (COO) sparse
            matrix formats with both C and Fortran interfaces.

  - D-493 : Added sparse matrix-vector multiplication (SpMV) interfaces for Fortran,
            including an example.


Bug fixes:

- Arm C/C++/Fortran Compiler 19.1:
  - H-489 : The armflang runtime library no longer exposes symbols that conflict with
            libnuma.

  - H-464 : A problem that occurs when a shared variable is accessed in a taskloop has now
            been fixed.

  - H-400 : Fixed an issue where getting the member of sizeless struct rvalue prevented
            successful compilation.

  - H-397 : RPMs and debs now correctly report what libraries they provide.

  - H-392 : The runtime performance of the Fortran TRANSFER function has been improved.

  - H-296 : Fixed a runtime segmentation fault in subroutines that contain OMP CRITICAL and
            have one or more ENTRY statements.

  - H-98 : The install should now be properly relocatable on RPM-based platforms and will
           register with the system RPM database if the user has appropriate permissions

  - H-59 : Fixed an issue where when the DATA statement was used to assign a value to a
           Cray pointer, the compiler aborted with the following message "Error: integer
           constant must have integer type".


- Arm Performance Libraries 19.1.0:
  - No fixed issues

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

- AArch64 Redhat 7
- AArch64 SUSE 12
- AArch64 Ubuntu 16.04

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

% ./arm-compiler-for-hpc-19.1*.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 /opt/arm/<package_name> with environment module
files available under /opt/arm/modulefiles. Local installs have the same
directory structure starting from your chosen installation root.

Licensing
=========
Arm Compiler for HPC requires a valid license in order to run. To request a
license, go to:

https://hpc-buy.arm.com/

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

1. Create a directory called 'licenses' within the /opt/arm directory and copy
   your client license file to it.
2. If you are using Arm Forge or Arm Performance Reports, and you don't have a
   separate license for these tools, set the ALLINEA_LICENSE_DIR environment
   variable to point to /opt/arm/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 /opt/arm/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/products/software-development-tools/hpc/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
/opt/arm/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:/opt/arm/modulefiles


Alternatively you can use the 'module use' command:

% module use /opt/arm/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/RHEL/7/suites/arm-compiler-for-hpc/19.1

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 components:

- Arm C/C++/Fortran Compiler 19.1

  Generic-AArch64/RHEL/7/arm-hpc-compiler/19.1

- Arm Performance Libraries 19.1.0

  GCC 8.2.0 version:
  <Specific_Core>/RHEL/7/gcc-8.2.0/armpl/19.1.0

  Arm C/C++/Fortran Compiler version:
  <Specific_Core>/RHEL/7/arm-hpc-compiler-19.1.0/armpl/19.1.0

- GNU GCC 8.2.0

  Generic-AArch64/RHEL/7/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.1:
  - H-571 : If you have multiple versions of Arm Compiler for HPC 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.

  - H-411 : There is a regression in SVE vectorization which may result in miscompiles of
            loops with loop-carried dependencies.

  - H-310 : -fsimdmath is incompatible with a dynamic linker optimization known as 'lazy
            binding'.  When using -fsimdmath, Arm recommends that you also add '-z now' to
            the compile/link flags, in order to disable this optimization during linking.
            For more information, see https://developer.arm.com/products/software-
            development-tools/hpc/documentation/vector-math-routines.


- Arm Performance Libraries 19.1.0:
  - No known issues

Documentation and Support
=========================
Refer to the following topics to get started with Arm Compiler for HPC and Arm
Performance Libraries:

Arm C/C++ Compiler:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-cpp-compiler/getting-started

Arm Fortran Compiler:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-fortran-compiler/getting-started

Arm Performance Libraries:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-performance-libraries/getting-started

Refer to the Release History to see the changes between releases:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-compiler-for-hpc/release-history

Access the Arm Fortran Compiler reference manual in /opt/arm/<package_name>/share or online at:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-fortran-compiler/language-reference

Access the Arm C/C++ Compiler reference manual in /opt/arm/<package_name>/share or online at:
  - https://developer.arm.com/products/software-development-tools/hpc/arm-cpp-compiler

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/products/software-development-tools/hpc/resources/porting-and-tuning

Further documentation about all the components can be found online at:
  - https://developer.arm.com/products/software-development-tools/hpc/documentation

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:

/opt/arm/armpl*19.1.0*/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 /opt/arm/armpl-19.1.0_*arm-hpc-compiler*/examples ./

# Load the correct environment modules:
% module load Generic-AArch64/RHEL/7/suites/arm-compiler-for-hpc/19.1
% module load Generic-AArch64/RHEL/7/arm-hpc-compiler-19.1/armpl/19.1.0

# Build it:
% make

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

/opt/arm/arm-compiler-for-hpc-19.1*/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.