This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Read our privacy policy

OptimizeLab Overlay Software Repository User Guide

Aug 25, 2021

Maximizing Hardware Performance

The OptimizeLab Overlay software repository provides high-performance pre-compiled key applications and function libraries for the AArch64 architecture. It is provided as Launchpad personal package archives (PPAs) and built against Ubuntu 18.04 LTS and Ubuntu 20.04 LTS.

Software packages in the repository are carefully selected and organized to ensure no conflict with the existing software in the system of the corresponding version and continuously track and maintain the security and quality updates. During the development process, we have tried our best to avoid interfering with developers and strive to keep dynamically compiled applications compatible with the original system in most cases after using this repository. In this way, users can safely and smoothly upgrade the Ubuntu LTS version after using the software in the repository.

The repository consists of four components. As the development goes deeper, we will add more components based on user feedback and development plans. You can install repositories as required. However, most of them depend on the base component.

base

As the name implies, the base component is the basis of most other components and is recommended for all users. If this repository is not used, other repositories can still run independently. However, some performance optimization depends on the basic improvement made in this repository. As a result, the optimization effect is not obvious or even no effect is achieved.

  • Toolchain software (such as GCC 8), which supports the ARMv8.1 LSE feature and does not automatically replace the default compiler of the system.
  • Glibc: uses the new toolchain (GCC 8 or GCC 7) for compilation and enables enhanced optimization configuration. The performance is improved by more than 50% in specific cases.
  • jemalloc: The atomic operation performance and stability are improved when the memory is allocated or deallocated during busy hours.
  • Valgrind 3.15.0 (latest version)
  • Software and function libraries that other systems depend on at the bottom layer

To add this repository:

sudo add-apt-repository ppa:optimizelab/optimizelab-base
sudo apt update

database

The database component contains a newly compiled database software package. You are advised to use this component when the database is heavily loaded.

  • Optimized mysql-8.0 build, which greatly improves atomic operation performance compared with the original system software package
  • Optimized sqlite3 build
  • Optimized PostgreSQL build, which is to be released
  • openGauss database software, which is to be added

To add this repository:

sudo add-apt-repository ppa:optimizelab/optimizelab-database
sudo apt update

media

The media component is optimized and upgraded based on some selected media-related software packages. It is recommended for users who have encoding requirements. Some software can also improve the audio and video playback performance. Users who pursue high performance can also use the media component.

  • ffmpeg 4.2.2 (updated for the major version), which improves the encoding efficiency, adds functions, and improves the efficiency of the software that uses FFmpeg decoding.
  • mpv: Compiled based on the latest version of FFmpeg to improve the CPU decoding smoothness of the ARM platform
  • obs-studio 25.0.3: new version, used together with the latest FFmpeg version
  • Updated x264 to the latest version
  • Updated x265 to the latest version
  • Other necessary updates of dependencies

To add this repository:

sudo add-apt-repository ppa:optimizelab/optimizelab-media
sudo apt update

science

The science is targeted at the core software package of scientific computing and is mainly used in scenarios such as scientific computing and high-performance computing (HPC). Because it contains a large number of basic computing function libraries, the performance of the science component is significantly improved in some computing-intensive but non-scientific computing application scenarios.

  • openblas optimized build (also new version)
  • openblas 0.3.7: new version with the compilation parameters of the ARM platform optimized
  • blis 0.7.0: new version
  • lapack: new version with the compilation parameters of the ARM platform optimized
  • eigen3 3.3.7: new version
  • Julia 1.4.1: Introduced to 18.04 for the first time and may be migrated to an independent component later based on the actual situation.
  • numpy 1.17.4: new version, which incorporates some upstream performance optimization patches. SIMD optimization will be introduced with the upstream version.
  • scipy 1.3.3: new version
  • numba 0.48.0: new version
  • Other performance-related basic libraries, such as chafa, fftw3, gmp, psimd, simdjson

To add this repository:

sudo add-apt-repository ppa:optimizelab/optimizelab-science
sudo apt update

Footnotes


The repository itself is distributed under the Apache-2 license. For details, see the ``LICENSE` file. All software in the repository retains its original license agreement.

If you have any questions or requests, please commit an issue to us.