Company type | Subsidiary |
---|---|
Industry | Software, programming tools |
Founded | 1989Wilsonville, Oregon, United States | in
Founders | Vince Schuster Larry Meadows Bob Toelle Glenn Denison |
Fate | Acquired by Nvidia |
Headquarters | , United States |
Area served | Worldwide |
Products | Compilers Debuggers Profilers IDEs |
Parent | STMicroelectronics (2000–2013) |
Website | pgroup |
PGI (formerly The Portland Group, Inc.) was a company that produced a set of commercially available Fortran, C and C++ compilers for high-performance computing systems. On July 29, 2013, Nvidia acquired The Portland Group, Inc. [1] [2] As of August 5, 2020, the "PGI Compilers and Tools" technology is a part of the Nvidia HPC SDK product available as a free download from Nvidia. [3] [4]
The Portland Group was founded as a privately held company in 1989, using compiler technology developed at and acquired from Floating Point Systems Inc. The first products, pipelining Fortran and C compilers, were released in 1991, targeting the Intel i860 processor. These compilers were used on Intel supercomputers like the iPSC/860, the Touchstone Delta, and the Paragon, and were the compilers of choice for the majority of i860-based platforms. [5]
In the early 1990s, PGI was deeply involved in the development of High Performance Fortran, or HPF, a data parallel language extension to Fortran 90 which provides a portable programming interface for a wide variety of architectures. PGI produced an HPF compiler, called PGHPF, until its last release, version 15.10, on October 28, 2015. [6]
In 1996, PGI developed x86 compilers for the ASCI Red Supercomputer at Sandia National Laboratories, [7] the first computer system to sustain teraflop performance. In 1997, PGI released x86 compilers for general use on Linux workstations. [8]
The Portland Group was acquired by STMicroelectronics on December 19, 2000. During STMicroelectronics ownership, PGI operated as a wholly owned subsidiary producing high-performance computing (HPC) compilers and tools for Linux, Windows, Mac OS, and STMicroelectronics ST100 series of embedded DSP cores. [9] [10]
PGI has been deeply involved in the expansion of the use of GPGPUs for high-performance computing, developing CUDA Fortran [11] [12] with Nvidia and PGI Accelerator Fortran and C compilers [13] which use programming directives. PGI and NVIDIA have both participated in the specification of the new standard OpenACC directives for GPU computing since it was first announced on November 3, 2011. [14] [15] On May 21, 2013, PGI released a compiler for the OpenCL language on multi-core ARM processors. [16]
Nvidia acquired PGI from STMicroelectronics on July 29, 2013 [1] [2] and offered the PGI technology under the "PGI Compilers and Tools" product line. [17] On August 5, 2020, Nvidia announced that the "PGI Compilers and Tools" product line has evolved into a new NVIDIA HPC SDK product available as a free download from Nvidia. The Nvidia HPC SDK includes rebranded PGI compilers and added features for developing HPC applications. [3] [4]
PGI compilers incorporate global optimization, vectorization, software pipelining, and shared-memory parallelization capabilities targeting both Intel and AMD processors. PGI supports the following high-level languages:
Below is a list of the PGI compilers that have been rebranded and integrated into the Nvidia HPC SDK: [3]
PGI also provided a parallel debugger, PGDBG, and a performance profiler, PGPROF, both of which supported OpenMP and MPI parallelism on Linux, Windows, and Mac OS. On Windows, the PGI Fortran compiler and debugger was fully integrated into Microsoft Visual Studio as a product called PGI Visual Fortran (PVF). Mac OS support and the PVF product were discontinued after the release of PGI version 19.10 on November 6, 2019. [18]
Below is a list of PGI programming tools that have been retired and replaced by other Nvidia programming tools in the Nvidia HPC SDK: [3]
Cray Inc., a subsidiary of Hewlett Packard Enterprise, is an American supercomputer manufacturer headquartered in Seattle, Washington. It also manufactures systems for data storage and analytics. Several Cray supercomputer systems are listed in the TOP500, which ranks the most powerful supercomputers in the world.
LLVM is a set of compiler and toolchain technologies that can be used to develop a frontend for any programming language and a backend for any instruction set architecture. LLVM is designed around a language-independent intermediate representation (IR) that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes. The name LLVM originally stood for Low Level Virtual Machine, though the project has expanded and the name is no longer officially an initialism.
Linaro DDT is a commercial C, C++ and Fortran 90 debugger. It is widely used for debugging parallel Message Passing Interface (MPI) and threaded programs, including those running on clusters of Linux machines.
PhysX is an open-source realtime physics engine middleware SDK developed by Nvidia as a part of Nvidia GameWorks software suite.
Watcom C/C++ is an integrated development environment (IDE) product from Watcom International Corporation for the C, C++, and Fortran programming languages. Watcom C/C++ was a commercial product until it was discontinued, then released under the Sybase Open Watcom Public License as Open Watcom C/C++. It features tools for developing and debugging code for DOS, OS/2, Windows, and Linux operating systems, which are based upon 16-bit x86, 32-bit IA-32, or 64-bit x86-64 compatible processors.
Chapel, the Cascade High Productivity Language, is a parallel programming language that was developed by Cray, and later by Hewlett Packard Enterprise which acquired Cray. It was being developed as part of the Cray Cascade project, a participant in DARPA's High Productivity Computing Systems (HPCS) program, which had the goal of increasing supercomputer productivity by 2010. It is being developed as an open source project, under version 2 of the Apache license.
In computing, CUDA is a proprietary parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for accelerated general-purpose processing, an approach called general-purpose computing on GPUs (GPGPU). CUDA API and its runtime: The CUDA API is an extension of the C programming language that adds the ability to specify thread-level parallelism in C and also to specify GPU device specific operations. CUDA is a software layer that gives direct access to the GPU's virtual instruction set and parallel computational elements for the execution of compute kernels. In addition to drivers and runtime kernels, the CUDA platform includes compilers, libraries and developer tools to help programmers accelerate their applications.
Intel oneAPI DPC++/C++ Compiler and Intel C++ Compiler Classic are Intel’s C, C++, SYCL, and Data Parallel C++ (DPC++) compilers for Intel processor-based systems, available for Windows, Linux, and macOS operating systems.
Clang is a compiler front end for the C, C++, Objective-C, and Objective-C++ programming languages, as well as the OpenMP, OpenCL, RenderScript, CUDA, SYCL, and HIP frameworks. It acts as a drop-in replacement for the GNU Compiler Collection (GCC), supporting most of its compilation flags and unofficial language extensions. It includes a static analyzer, and several code analysis tools.
Intel Fortran Compiler, as part of Intel OneAPI HPC toolkit, is a group of Fortran compilers from Intel for Windows, macOS, and Linux.
OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators. OpenCL specifies programming languages for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism.
OpenACC is a programming standard for parallel computing developed by Cray, CAPS, Nvidia and PGI. The standard is designed to simplify parallel programming of heterogeneous CPU/GPU systems.
Numba is an open-source JIT compiler that translates a subset of Python and NumPy into fast machine code using LLVM, via the llvmlite Python package. It offers a range of options for parallelising Python code for CPUs and GPUs, often with only minor code changes.
Absoft Fortran Compilers are set of Fortran compilers for Microsoft Windows, Apple Macintosh, and Linux produced by Absoft Corporation. The compilers are source code compatible across platforms.
GPUOpen is a middleware software suite originally developed by AMD's Radeon Technologies Group that offers advanced visual effects for computer games. It was released in 2016. GPUOpen serves as an alternative to, and a direct competitor of Nvidia GameWorks. GPUOpen is similar to GameWorks in that it encompasses several different graphics technologies as its main components that were previously independent and separate from one another. However, GPUOpen is partially open source software, unlike GameWorks which is proprietary and closed.
SYCL is a higher-level programming model to improve programming productivity on various hardware accelerators. It is a single-source embedded domain-specific language (eDSL) based on pure C++17. It is a standard developed by Khronos Group, announced in March 2014.
Nvidia NVDEC is a feature in its graphics cards that performs video decoding, offloading this compute-intensive task from the CPU. NVDEC is a successor of PureVideo and is available in Kepler and later NVIDIA GPUs.
ROCm is an Advanced Micro Devices (AMD) software stack for graphics processing unit (GPU) programming. ROCm spans several domains: general-purpose computing on graphics processing units (GPGPU), high performance computing (HPC), heterogeneous computing. It offers several programming models: HIP, OpenMP, and OpenCL.
oneAPI is an open standard, adopted by Intel, for a unified application programming interface (API) intended to be used across different computing accelerator (coprocessor) architectures, including GPUs, AI accelerators and field-programmable gate arrays. It is intended to eliminate the need for developers to maintain separate code bases, multiple programming languages, tools, and workflows for each architecture.