Portland (PGI) – PGI Fortran, C and C++ compilers and tools
PGI compilers deliver the performance you need on CPUs, with OpenACC and CUDA Fortran for HPC applications development on GPU-accelerated systems. OpenACC and CUDA programs can run several times faster on a single Tesla V100 GPU compared to all the cores of a dual-socket server, and interoperate with MPI and OpenMP to deliver the full power of today’s multi-GPU servers.
Is your application 10s or 100s of thousands of lines of Fortran, C and C++ code? With OpenACC directives, you don’t have to parallelize all of it at once. You can identify hot loops and code regions using the PGI profiler, then incrementally parallelize and tune them one by one. OpenACC code remains 100% standard-compliant and portable to other compilers and platforms, and enables parallel processing on CPUs and GPUs using identical source code.
Performance Profiling and Optimization
The PGI Profiler is a powerful and easy-to-use interactive performance profiler for parallel programs written with OpenMP or OpenACC directives, or using CUDA. Use it to visualize and analyze the performance of your Fortran, C and C++ programs. The PGI Profiler can correlate execution time with procedures, source code and instructions, allowing you to quickly see where and how execution time is spent. Through resource utilization data and compiler feedback information, the PGI Profiler provides features that will help you understand why parts of your program have high execution times and how you can modify your source code or compiler options to improve performance. The PGI Profiler is included with all PGI products.
A Fortran-friendly Debugger
The PGI graphical debugger for Fortran, C and C++ supports of debugging serial and parallel programs including MPI, OpenMP and hybrid MPI/OpenMP applications. The PGI Debugger can debug programs on SMP workstations, servers, distributed-memory clusters and hybrid clusters where each node contains multiple multicore x86 processors. It allows you to control threads or processes individually or in groups, and allows you to examine state down to the register level. The PGI Debugger is also included with all PGI products with all PGI products for x86-64 platforms.
PGI Product Specifications
PGI Fortran is a native parallelizing/optimizing Fortran 2003 compiler with support for OpenMP 4.5 directive-based parallel programming for multicore CPUs, and OpenACC 2.6 directive-based parallel programming for CPUs and accelerators. The PGI Fortran compiler includes CUDA Fortran extensions targeting NVIDIA CUDA-enabled GPUs.
PGI C and C++ are native parallelizing/optimizing ANSI C11 and GNU-compatible C++17 compilers. Both compilers implement OpenMP 4.5 pragma-based parallel programming for multicore CPUs, and OpenACC 2.6 pragma-based parallel programming for CPUs and NVIDIA GPUs. The PGI C++ compiler is substantially compatible with GNU g++ releases through GCC 8.1. PGI Fortran supports the industry standard ISO_C_BINDING, which allows for easy argument passing and procedure invocation between Fortran, C, and C++.
Note: Effective with the PGI 2016 release, the PGI C++ compiler is no longer supported on Microsoft Windows.
All PGI products for x86-64 systems include the OpenMP and MPI enabled parallel PGI Debugger that can debug up to 16 local MPI processes. All PGI products also include the OpenMP and OpenACC parallel PGI Performance Profiler. All PGI products also include a precompiled OpenBLAS library, and for Linux x86-64, a precompiled MPI message passing library.
PGI products for both macOS and Windows consists of command-level versions of the PGI compilers and both command-level and graphical versions of the PGI Debugger and PGI Performance profiler. An integrated development environment (IDE) is neither provided nor supported.
PGI products target 64-bit x86 processor-based workstations, servers and clusters running Linux, macOS or Windows, and 64-bit OpenPOWER processor-based systems running Linux.
A partial list of technical features supported includes the following:
Features marked with an asterisk (*) are not currently supported on OpenPOWER.
• PGFORTRAN™ native OpenMP, OpenACC and auto-parallel Fortran 2003 compiler with CUDA extensions
• PGCC® OpenMP, OpenACC and auto-parallel ANSI and K&R C11 compiler
• PGC++® OpenMP, OpenACC and auto-parallel GNU-compatible C++17 compiler (not available on Windows)
• OpenMP and MPI parallel graphical debugger*
• OpenMP and OpenACC parallel graphical performance profiler
• Full 64-bit support on multicore OpenPOWER and x86
• Support for OpenMP 4.5 on multicore CPUs
• Full support for OpenACC 2.6
• Uniform command-level development environment across 64-bit x86 processor-based systems running Linux, macOS or Windows and OpenPOWER processor-based systems running Linux
• Comprehensive set of compiler optimizations including dependence analysis and global optimization, function inlining including library functions, SIMD vectorization, invariant conditional removal, loop interchange, loop splitting, loop unrolling, loop fusion, interprocedural analysis (IPA)*, interprocedural optimization of libraries* and more.
• Support for 64-bit integers (-r8/-i8 compilation flags)
• Memory hierarchy and memory allocation optimizations including huge pages support
• Support for x86 SIMD intrinsics (C++ only)
• Tuning for non-uniform memory access (NUMA) architectures
• Process/CPU affinity support in SMP/OpenMP applications
• Support for creating shared objects on Linux, dynamic libraries on macOS and DLLs on Windows
• Integrated cpp pre-processing
• Cray/DEC/IBM extensions (including Cray POINTERs & DEC STRUCTURES/UNIONS
• Full support for Common Compiler Feedback Format compiler optimization listings
• User modules support simplifies switching between multiple compiler environments/versions
• Bundled precompiled libraries including OpenMPI, OpenBLAS and ScaLAPACK
• Includes optimized 64-bit OpenBLAS (LAPACK/BLAS) math libraries
• Supports multi-threaded execution with Intel Math Kernel Libraries (MKL) 10.1 and later on x86 processors
• UNIX-compatible command-level build/edit environment for Windows
• Interoperable with TotalView* (Linux only) and Allinea DDT*.
• Interoperable with gcc, g77, g++ and gdb
• Unconditional 30 day money back guarantee
• Host Processor: 64-bit OpenPOWER, 64-bit x86 (including AMD64 and Intel 64) processor-based workstation or server with one or more single core or multicore microprocessors. Accelerator (optional): NVIDIA CUDA-enabled GPU with compute capability 3.0 or later.
• Operating System:
-POWER9 Linux: Red Hat Enterprise Linux 7.5 for IBM Power LE.
-POWER8 Linux: Ubuntu 14.04, 16.04, 18.04, Red Hat Enterprise Linux 7.3 through 7.6.
-x86-64 Linux: CentOS 6.4 through CentOS 7.6, OpenSuSE Leap 42.2 through openSUSE Leap 15.0, SUSE Linux Enterprise Server (SLES) 12 SP 2 through SLES 15, Red Hat Enterprise Linux 6.4 through Red Hat Enterprise Linux 7.6, Fedora 14 through Fedora 29, or Ubuntu 14.04, 16.04, 17.10, 18.04 and 18.10. Interoperable with most versions of Linux using kernel revision 2.6 and glibc 2.5 or newer.
-64-bit Apple macOS version 10.10 Yosemite, 10.11 El Capitan, 10.12 Sierra, 10.13 High Sierra and 10.14 Mojave. Xcode 6.3 or newer.
-64-bit Microsoft Windows 7/8.1/10 and Server 2008 R2/2012/2016/2019.
Please Note: The last version of PGI products to support 32-bit development was 16.10.
PGI Professional Edition
PGI Professional Edition includes a perpetual license of PGI Fortran, C and C++ compilers and tools for x86-64 and OpenPOWER multicore CPUs and NVIDIA Tesla GPUs, including all OpenACC, OpenMP and CUDA Fortran features. The PGI Professional Edition enables development of performance-portable HPC applications with uniform source code across the most widely used parallel processors and systems. The perpetual license also give you access to current and all previous releases of the PGI compilers and tools. Offers technical support with frequent PGI updates that include the latest PGI feature enhancements, performance improvements and bug fixes. The PGI Professional Edition is for HPC experts who need cutting edge compilers and support for production software development.
The Next Steps
Ready To Buy?
For the time being we are unable to offer the following product ranges although we are currently working hard to increase the number of products we can offer in the future. Please contact us to talk about alternative products that we may be able to offer you.