2.1 Compiler options2.1.1 IBM XL compiler options2.1.2 GCC compiler options2.2 Porting applications to IBM Power Systems2.3 IBM Engineering and Scientific Subroutine Library2.3.1 ESSL Compilation in Fortran, XL C/C++, and GCC/G++2.3.2 ESSL example2.4 Parallel ESSL2.4.1 Program development2.4.2 Using GPUs with Parallel ESSL2.4.3 Compilation2.5 Using POWER8 vectorization2.5.1 AltiVec operations with GNU GCC2.5.2 AltiVec operations with IBM XL2.6 Development models2.6.1 OpenMP programs with the IBM Parallel Environment2.6.2 CUDA C programs with the NVIDIA CUDA Toolkit2.6.3 OpenACC2.6.4 IBM XL C/C++ and Fortran offloading2.6.5 MPI programs with IBM Parallel Environment v2.32.6.6 Hybrid MPI and CUDA programs with IBM Parallel Environment2.6.7 OpenSHMEM programs with the IBM Parallel Environment2.6.8 Parallel Active Messaging Interface programs2.6.9 MPI programs with IBM Spectrum MPI2.6.10 Migrating from IBM PE Runtime Edition to IBM Spectrum MPI2.6.11 Using Spectrum MPI