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

Released: November 02, 2018

What's new in 19.0

New features and enhancements

Arm C/C++/Fortran Compiler 19.0:

  • D-545 : Partial support for the do concurrent Fortran 2008 feature. Partial support because serial code is generated.
  • D-544 : Support for the submodules Fortran 2008 feature.
  • D-394 : Improvements to the performance of Fortran NINT and DNINT intrinsics.
  • D-393 : Improvements to the performance of Fortran math intrinsics, including the ability to auto-vectorize scalar math intrinsics. To benefit from these improvements, add the new compiler option -armpl to your compile and link arguments, and use optimization level -O2 or higher.
  • D-388 : Arm Compiler for HPC is now based on LLVM 7.0.
  • D-374 : Support for the Fortran 'NOVECTOR' directive, which enables users to disable auto-vectorization on individual loops.
  • D-373 : Support for the Fortran 'VECTOR ALWAYS' directive, which enables a user to request that a loop be auto-vectorized, irrespective of the compiler's internal cost-model, if it is safe to do so.
  • D-329 : A new C/C++ Compiler Reference Manual is available in <install_location>/<package_name>/share.

Arm Performance Libraries 19.0:

  • D-492 : Various changes to C header files:
    • BLAS, CBLAS and LAPACK function prototypes have been modified to use 'const' where appropriate, for example, for input array pointers and char * specifiers.
    • We now use C-style _Complex numbers instead of our own structure for complex numbers in the armpl.h header. If required, you can use #define to override armpl_singlecomplex_t and armpl_doublecomplex_t to something else that is bitwise-compatible (e.g. C++ std::complex type). This change is bitwise-compatible with the structure we have replaced.
    • Complex number manipulation functions have been removed from the header. You are advised to use standard C-style _Complex operations instead (or those appropriate to any redefinition such as C++ std::complex).
    • cdotc_, cdotu_, zdotc_, zdotu_, cladiv_ and zladiv_ prototypes have been modified to reflect the correct C-to-Fortran calling convention for a given compiler toolchain.
  • D-486 : Libraries tuned for Qualcomm Falkor are no longer provided.
  • D-461 : The GCC version of the library is now compatible with GCC 8.2 (previously 7.1).
  • D-430 : Enhancements to existing libamath functions.
  • D-429 : Support for LAPACK version 3.8.0.
  • D-428 : LAPACK parallel scalability tuning has been performed for the following routines on ThunderX2CN99 systems: *POTRF, *GEQRF, *GETRF.
  • D-426 : The FFT interface documented in the Arm Performance Libraries User Manual versions up to v18.4.0 has been deprecated. Users are instead encouraged to use the FFTW interface within Arm Performance Libraries for best performance. This release also includes optimizations to key FFT kernels.
  • D-425 : Added FFTW MPI single and double precision interfaces in C.
  • D-424 : Execution of advanced and guru FFTW plans is now parallelized.
  • D-423 : Added FFTW guru single and double precision interfaces in C and Fortran.
  • D-422 : Added a new suite of sparse matrix routines in C supporting sparse matrix-vector multiplication supplied in Compressed Sparse Row format, including an optimized double-precision real kernel. Added WAXPBY BLAS extension routine (w = a*x + b*y, for vectors w, x and y and scalars a and b).
  • D-421 : Performance enhancements to parallel DGEMM, especially for small to medium-sized problems.

Bug fixes

Arm C/C++/Fortran Compiler 19.0:

  • H-423 : Support, by default, for Fortran 2003 semantics for assignments to allocatable variables.
  • H-407 : In some corner cases there has been an increase in memory usage observed due to the switch to memory allocatable semantics of Fortran 2003. This can result in a segfault. In these cases the recommended workaround is to use the armflang option -Mallocatable=95 during compilation.
  • H-361 : Arm Fortran Compiler now handles the -fsave-optimization-record flag correctly.
  • H-333 : Improvements to DWARF source-level debug information for Fortran.
  • H-130 : Added missing man page for armclang++.
  • H-96 : Fixes an issue with armflang's handling of OpenMP 'threadprivate' module variables.

Arm Performance Libraries 19.0:

  • No fixed issues

Refer to the Release Notes for further information about this release.

Release Note for Release History 19.0

Arm Compiler for HPC 19.0 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 SoCs. This release includes version 19.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.0
    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.0
    The Arm Performance Libraries are optimized for AArch64 and for specific AArch64 implementations. These provide BLAS, LAPACK and FFT routines optimized for execution on 64-bit Arm. Please note that there are multiple libraries and module files available for this package. The user should load the most optimal library for their platform.

    This release includes multiple Arm Performance Libraries packages, each of which are optimized for individual Armv8 AArch64 implementations (Cortex-A72 and ThunderX2CN99). 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.0

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

  • 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. This is a GNU tool suite and the GPL source code can be downloaded separately.

Changes in this Release

New features and enhancements

Arm C/C++/Fortran Compiler 19.0:

  • D-545 : Partial support for the do concurrent Fortran 2008 feature. Partial support because serial code is generated.
  • D-544 : Support for the submodules Fortran 2008 feature.
  • D-394 : Improvements to the performance of Fortran NINT and DNINT intrinsics.
  • D-393 : Improvements to the performance of Fortran math intrinsics, including the ability to auto-vectorize scalar math intrinsics. To benefit from these improvements, add the new compiler option -armpl to your compile and link arguments, and use optimization level -O2 or higher.
  • D-388 : Arm Compiler for HPC is now based on LLVM 7.0.
  • D-374 : Support for the Fortran 'NOVECTOR' directive, which enables users to disable auto-vectorization on individual loops.
  • D-373 : Support for the Fortran 'VECTOR ALWAYS' directive, which enables a user to request that a loop be auto-vectorized, irrespective of the compiler's internal cost-model, if it is safe to do so.
  • D-329 : A new C/C++ Compiler Reference Manual is available in <install_location>/<package_name>/share.

Arm Performance Libraries 19.0:

  • D-492 : Various changes to C header files:
    • BLAS, CBLAS and LAPACK function prototypes have been modified to use 'const' where appropriate, for example, for input array pointers and char * specifiers.
    • We now use C-style _Complex numbers instead of our own structure for complex numbers in the armpl.h header. If required, you can use #define to override armpl_singlecomplex_t and armpl_doublecomplex_t to something else that is bitwise-compatible (e.g. C++ std::complex type). This change is bitwise-compatible with the structure we have replaced.
    • Complex number manipulation functions have been removed from the header. You are advised to use standard C-style _Complex operations instead (or those appropriate to any redefinition such as C++ std::complex).
    • cdotc_, cdotu_, zdotc_, zdotu_, cladiv_ and zladiv_ prototypes have been modified to reflect the correct C-to-Fortran calling convention for a given compiler toolchain.
  • D-486 : Libraries tuned for Qualcomm Falkor are no longer provided.
  • D-461 : The GCC version of the library is now compatible with GCC 8.2 (previously 7.1).
  • D-430 : Enhancements to existing libamath functions.
  • D-429 : Support for LAPACK version 3.8.0.
  • D-428 : LAPACK parallel scalability tuning has been performed for the following routines on ThunderX2CN99 systems: *POTRF, *GEQRF, *GETRF.
  • D-426 : The FFT interface documented in the Arm Performance Libraries User Manual versions up to v18.4.0 has been deprecated. Users are instead encouraged to use the FFTW interface within Arm Performance Libraries for best performance. This release also includes optimizations to key FFT kernels.
  • D-425 : Added FFTW MPI single and double precision interfaces in C.
  • D-424 : Execution of advanced and guru FFTW plans is now parallelized.
  • D-423 : Added FFTW guru single and double precision interfaces in C and Fortran.
  • D-422 : Added a new suite of sparse matrix routines in C supporting sparse matrix-vector multiplication supplied in Compressed Sparse Row format, including an optimized double-precision real kernel. Added WAXPBY BLAS extension routine (w = a*x + b*y, for vectors w, x and y and scalars a and b).
  • D-421 : Performance enhancements to parallel DGEMM, especially for small to medium-sized problems.

Bug fixes

Arm C/C++/Fortran Compiler 19.0:

  • H-423 : Support, by default, for Fortran 2003 semantics for assignments to allocatable variables.
  • H-407 : In some corner cases there has been an increase in memory usage observed due to the switch to memory allocatable semantics of Fortran 2003. This can result in a segfault. In these cases the recommended workaround is to use the armflang option -Mallocatable=95 during compilation.
  • H-361 : Arm Fortran Compiler now handles the -fsave-optimization-record flag correctly.
  • H-333 : Improvements to DWARF source-level debug information for Fortran.
  • H-130 : Added missing man page for armclang++.
  • H-96 : Fixes an issue with armflang's handling of OpenMP 'threadprivate' module variables.

Arm Performance Libraries 19.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.0*.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.

Refer to the Arm Allinea Studio licensing page on the Arm Developer website for more information about 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 here.

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

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

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

- Arm Performance Libraries 19.0

GCC 8.2.0 version:

<Specific_Core>/RHEL/7/gcc-8.2.0/armpl/19.0

Arm C/C++/Fortran Compiler version:

<Specific_Core>/RHEL/7/arm-hpc-compiler-19.0/armpl/19.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.0:

  • 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.0:

  • No known issues

Documentation and Support

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

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.0.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. For example:

  1. Copy the examples somewhere writeable:
    % cp -r /opt/arm/armpl-19.0_Generic*_19.0_aarch64-linux/examples .
  2. Load the correct environment modules:
    % module load Generic-AArch64/RHEL/7/suites/arm-compiler-for-hpc/19.0
    % module load Generic-AArch64/RHEL/7/arm-hpc-compiler-19.0/armpl/19.0.0
  3. Build it:
    % make

Uninstalling

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

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

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.