Is your development environment setup for the port?

You most likely already have a development environment in place that includes the tools and processes that work for you and your particular situation. However, if you're looking for some suggestions specific to porting and developing on the Power platform, the following recommendations may help.

Development tools recommendations

IBM Advance Toolchain

Open source development tools and runtime libraries that allow you to take advantage of the latest POWER hardware features for Linux. This self-contained toolchain does not rely on the system toolchain and requires minimum dependencies. Nor does it override the default Linux distribution toolchain (if it's installed in /opt ). Note that when an application is built with the Advance Toolchain, it then has a dependency on the Advance Toolchain runtime. So, if that application is to be deployed elsewhere, the Advance Toolchain runtime package must be installed there as well. Because the runtime is free, this is not of significant concern, but something of which to be aware. Learn more

Get the code IBM Software Development Kit for Linux on Power

The SDK for Linux on Power includes a diverse set of tools that enhance the porting, optimization, analysis, and tuning of C/C++ applications and libraries for Linux on Power. Get more information about the various download options here: https://developer.ibm.com/tutorials/download-and-install-sdk-for-lop/ or get the source code from GitHub: https://github.com/open-power-sdk Some of the available tools, which will help you with your port (and beyond) and can be individually installed from GitHub, are described below: Migration Advisor: Some issues that are identifiable by code inspection can be automatically identified with the Migration Advisor -- consider running this tool as a very early step in your porting effort. Get the code: https://github.com/open-power-sdk/migration-advisor

Source Code Advisor: Uses FDPR (described below) to analyze a representative performance scenario and report performance issues which could not be identified during compilation. Get the code: https://github.com/open-power-sdk/source-code-advisor

CPI Breakdown: Profiles a representative performance scenario and report a hierarchical set of information about where the program is spending its time. Get the code: https://github.com/open-power-sdk/cpi-breakdown

IBM Feedback Directed Program Restructuring (FDPR): An offering from IBM Research that optimizes an existing binary without the need for source code changes, recompiling, or relinking. This is also known as post-link optimization. There are open source wrapper scripts in the fdpr_wrap package. Both FDPR and fdpr_wrap packages can be found at: https://developer.ibm.com/linuxonpower/sdk-packages/ Learn more about the SDK for Linux on Power, find links to downloads, and get tips and best practices: SDK for Linux on Power developer portal

15 porting and tuning tools for Linux on Power

Integrated Development Environment (IDE) recommendations

Eclipse

Eclipse is one of the most widely used IDEs. It contains a base workspace and an extensible plug-in system for customizing your development environment. Learn more here: http://www.eclipse.org/. Kubernetes

Kubernetes is an open source system for managing containerized applications across multiple hosts. It provides basic mechanisms for deploying, maintaining, and scaling applications. Learn more here: https://github.com/kubernetes/kubernetes

Continuous Integration (CI) framework recommendations

Jenkins CI

Jenkins is a free, open source automation server that provides hundreds of plugins to support building, deploying and automating your open source project. Learn more about Jenkins and download it from here: http://jenkins-ci.org Recommendation for open source projects

The POWER CI is a Jenkins service managed by the Oregon State University (OSU) - Open Source Lab (OSL) and is intended to give developers easy access to the POWER architecture for building and managing their open source projects via Jenkins.

Request access to the POWER CI Go to the POWER CI service on Jenkins

The POWER CI is a Jenkins service managed by the Oregon State University (OSU) - Open Source Lab (OSL) and is intended to give developers easy access to the POWER architecture for building and managing their open source projects via Jenkins. Recommendation for ISV and enterprise projects

The Continuous Integration/Continuous Development (CICD) is a Jenkins service managed by IBM and is intended to give ISV developers access to the POWER architecture for building and managing their open source projects via Jenkins.

Request access to the CICD

The Continuous Integration/Continuous Development (CICD) is a Jenkins service managed by IBM and is intended to give ISV developers access to the POWER architecture for building and managing their open source projects via Jenkins. Travis CI

Travis CI will be supported on the platform soon.

Library recommendations

In addition to the typical development libraries such as libc, libm, libpthread, Zlib, OpenSSL, Boost, Tcmalloc, Intel TBB, and SPHDE (which are included in the latest release of IBM Advance Toolchain), consider these math libraries that will boost the performance of your HPC and deep learning applications. ESSL

Engineering and Scientific Subroutine Library (ESSL) is a collection of high performance mathematical subroutines providing a wide range of functions for many common scientific and engineering applications. Languages: Fortran, C and C++ serial, SMP and SPMD. Download ESSL libblas

The Basic Linear Algebra Subprograms (BLAS) are libraries used for optimizing mathematical computation on POWER8. Download libblas for Ubunutu

Download libblas for Fedora (also runs on RHEL) MASS

Mathematical Acceleration Subsystem (MASS) for Linux consists of libraries of mathematical intrinsic functions tuned specifically for optimum performance on POWER architectures. Languages: C, C++ and Fortran. Download MASS

Compiler recommendations

Many of the most popular compilers are available and optimized for POWER, including the following: GNU Compiler Collection (GCC) GCC is available from the distributions (and is also integrated into the the IBM Advance Toolchain for Linux on Power if you choose to install it). Install GCC from your distribution by using apt-get install or yum install Clang Clang is available from the distributions. Install it using apt-get install or yum install XL C/C++ for Linux There are three ways to get the community version of XL C/C++ for Linux, which is a no-charge, fully functional product for developers who do not require official IBM support. apt-get/yum/zypper Linux repositories

You'll find instructions for installing the package on Ubuntu, RHEL, and SLES here as well.

You'll find instructions for installing the package on Ubuntu, RHEL, and SLES here as well. tarball

After you download the tarball, you'll find install instructions in the the package README file.

After you download the tarball, you'll find install instructions in the the package README file. Docker image

Purchase and download the fully supported version of XL C/C++ for Linux from the IBM Marketplace. XL Fortran for Linux XL Fortran for Linux Community Edition (on little endian distributions) is a no-charge, fully functional product for developers who do not require official IBM support. You can get it three ways: apt-get/yum/zypper Linux repositories

You'll find instructions for installing the package on Ubuntu, RHEL, and SLES here as well.

You'll find instructions for installing the package on Ubuntu, RHEL, and SLES here as well. tarball

After you download the tarball, you'll find install instructions in the the package README file.

After you download the tarball, you'll find install instructions in the the package README file. Docker image

Purchase and download the fully supported version of XL Fortran for Linux from the IBM Marketplace. Compiler optimization tips Compiler optimization options for IBM POWER8

Performance profiling tools recommendations