PGI Glossary

The PGI compilers and tools are supported on both 32-bit and 64-bit variants of the Linux, Mac OS X and Windows operating systems on a variety of x86-compatible processors. There are a wide variety of releases and distributions of each of these types of operating systems. The Portland Group defines the following terms with respect to these platforms:

Term Definition
AMD64 A 64-bit processor from AMD designed to be binary compatible with 32-bit x86 processors, and incorporating new features such as additional registers and 64-bit addressing support for improved performance and greatly increased memory range. This includes the AMD* Athlon64*, AMD Opteron* AMD Turion*, and Barcelona processors.
Barcelona The Quad-Core AMD Opteron processor (i.e. Opteron Rev x10) is often referred to as Barcelona.
DLL A dynamic linked library on Win32 or Win64 platforms of the form xxx.dll containing objects that are dynamically linked into a program at the time of execution.
driver The compiler driver controls the compiler, linker, and assembler, and adds objects and libraries to create an executable. The -dryrun option illustrates operation of the driver. pgf77, pgf95, pghpf, pgcc, pgCC (Linux), and pgcpp are drivers for the PGI compilers. A pgf90 driver is retained for compatibility with existing makefiles, even though pgf90 and pgf95 drivers are identical.
Dual-, Quad-, or Multi-core Some x64 CPUs incorporate two or four complete processor cores (functional units, registers, level 1 cache, level 2 cache, etc) on a single silicon die. These are referred to as Dual-core or Quad-core (in general, Multi-core) processors. For purposes of OpenMP or auto-parallel threads, or MPI process parallelism, these cores function as distinct processors. However, the processing cores are on a single chip occupying a single socket on the system motherboard. In PGI 7.2, there are no longer software licensing limits on OpenMP threads for Multi-core.
EM64T a 64-bit IA32 processor from Intel Corp. with Extended Memory 64-bit Technology extensions that are binary compatible with AMD64 processors. In 2007, Intel designated IA32 processors with EM64T as Intel 64 technology.
FLEXnet The flexible license management software from Acresso.
Hyperthreading Some IA32 CPUs incorporate extra registers that allow two threads to run on a single CPU with improved performance for some tasks. This is called hyperthreading and abbreviated HT. Some linux86 and linux86-64 environments treat IA32 CPUs with HT as though there were a second pseudo CPU, even though there is only one physical CPU. Unless the Linux kernel is hyperthread-aware, the second thread of an OpenMP program will be assigned to the pseudo CPU, rather than a real second physical processor (if one exists in the system). OpenMP Programs can run very slowly if the second thread is not properly assigned.
IA32 An Intel Architecture 32-bit processor designed to be binary compatible with x86 processors, but incorporating new features such as streaming SIMD extensions (SSE) for improved performance. This includes Intel Pentium 4, Intel Xeon, and Intel Core 2 processors. For simplicity, these release notes refer to x86 and IA32 processors collectively as 32-bit x86 processors.
Intel 64 A 64-bit IA32 processor with Extended Memory 64-bit Technology extensions designed to be binary compatible with AMD64 processors. This includes Intel Pentium 4, Intel Xeon, and Intel Core 2 processors.
Large Arrays Arrays with aggregate size larger than 2GB, which require 64-bit index arithmetic for accesses to elements of arrays. Program units that use Large Arrays must be compiled using -mcmodel=medium. If
-Mlarge_arrays Is specified and -mcmodel=medium is not specified, the default small memory model is used, and all index arithmetic is performed in 64-bits. This can be a useful mode of execution for certain existing 64-bit applications that use the small memory model but allocate and manage a single contiguous data space larger than 2GB.
linux86 32-bit Linux operating system running on an x86, AMD64 or Intel 64 processor-based system, with 32-bit GNU tools, utilities and libraries used by the PGI compilers to assemble and link for 32-bit execution.
linux86-64 64-bit Linux operating system running on an AMD64 or Intel 64 processor-based system, with 64-bit and 32-bit GNU tools, utilities and libraries used by the PGI compilers to assemble and link for execution in either linux86 or linux86-64 environments. The 32-bit development tools and execution environment under linux86-64 are considered a cross-development environment for x86 processor-based applications.
Mac OS X Collectively, all osx86 and osx86-64 platforms supported by the PGI compilers.
-mcmodel=small Compiler/linker switch to produce small memory model format objects/executables in which both code (.text) and data (.bss) sections are limited to less than 2GB. This switch is the default and only possible format for linux86 32-bit executables. This switch is the default format for linux86-64 executables. Maximum address offset range is 32-bits, and total memory used for OS+Code+Data must be less than 2GB.
-mcmodel=medium Compiler/linker switch to produce medium memory model format objects/executables in which code sections are limited to less than 2GB, but data sections can be greater than 2GB. This option is supported only in linux86-64 environments. It must be used to compile any program unit that will be linked in to a 64-bit executable that will use aggregate data sets larger than 2GB and will access data requiring address offsets greater than 2GB. This option must be used to link any 64-bit executable that will use aggregate data sets greater than 2GB in size. Executables linked using -mcmodel=medium can incorporate objects compiled using -mcmodel=small as long as the small objects are from a shared library.
MPI "Message Passing Interface&auot;—a language-independent communications protocol used to program parallel computers.
MPICH A freely available, portable implementation of MPI, a standard for message-passing for distributed-memory applications used in parallel computing.
Network Installation A term that applies to installing software on a shared file system available to many machines. Typically this type of installation allows multiple users to access and run the software—up to the number of licenses associated with the software.
NUMA Non-Uniform Memory Access. A type of multi-processor system architecture in which the memory latency from a given processor to a given portion of memory can vary, resulting in the possibility for compiler or programming optimizations to ensure frequently accessed data is "close" to a given processor as determined by memory latency.
osx86 32-bit Apple Mac OS X operating systems running on an x86 Core 2 or Core 2 Duo processor-based system with the 32-bit Apple and GNU tools, utilities, and libraries used by the PGI compilers to assemble and link for 32-bit execution.
osx86-64 64-bit Apple Mac OS X operating systems running on an x64 Core 2 Duo processor-based system with the 64-bit and 32-bit Apple and GNU tools, utilities, and libraries used by the PGI compilers to assemble and link for either 64- or 32-bit execution.
SFU Windows Services for Unix is the precursor to SUA. SFU supports 32-bit applications on Windows 2000, Windows Server 2003, and XP.
Shared library A Linux library of the form libxxx.so containing objects that are dynamically linked into a program at the time of execution.
SSE Collectively, all SSE extensions supported by the PGI compilers.
SSE1 32-bit IEEE 754 FPU and associated streaming SIMD extensions (SSE) instructions on Pentium III, AthlonXP* and later 32-bit x86, AMD64 and Intel 64 compatible CPUs, enabling scalar and packed vector arithmetic on single-precision floating-point data.
SSE2 64-bit IEEE 754 FPU and associated SSE instructions on P4/Xeon and later 32-bit x86, AMD64 and Intel 64 compatible CPUs. SSE2 enables scalar and packed vector arithmetic on double-precision floating-point data.
SSE3 Additional 32-bit and 64-bit SSE instructions to enable more efficient support of arithmetic on complex floating-point data on 32-bit x86, AMD64 and Intel 64 compatible CPUs with so-called Prescott New Instructions (PNI), such as Intel IA32 processors with Intel 64 extensions and newer generation (Revision E and beyond) AMD64 processors.
SSE4A and ABM AMD Instruction Set enhancements for the Quad-Core AMD Opteron Processor. Support for these instructions is enabled by the -tp barcelona or -tp barcelona-64 switch.
SSSE3 An extension of the SSE3 instruction set found on the Intel Core 2.
Static linking A method of linking: On Linux, use -Bstatic to ensure all objects are included in a generated executable at link time. Static linking causes objects from static library archives of the form libxxx.a to be linked in to your executable, rather than dynamically linking the corresponding libxxx.so shared library.

On Windows, the Windows linker links statically or dynamically depending on whether the libraries on the link-line are DLL import libraries or static libraries. By default, the static PGI libraries are included on the link line. To link with DLL versions of the PGI libraries instead of static libraries, compile and link with the -Bdynamic option.
SUA The Microsoft Subsystem for UNIX-based Applications is a source-compatible subsystem for compiling and running 32- and 64-bit UNIX-based applications on a computer running Windows. SUA is supported on Windows 2003 R2 and Vista. SUA is bundled with Windows; however, the full SUA Utilities SDK must be installed to link programs.
Win32 Any of the 32-bit Microsoft* Windows* operating systems (XP/2000/Server 2003) running on an x86, AMD64 or Intel 64 processor-based system. On these targets, the PGI compiler products include additional Microsoft tools and libraries needed to build executables for 32-bit Windows systems.
Win64 Any of the 64-bit Microsoft Windows operating systems (XP Professional / Windows Server 2003 x64 Editions) running on an x64 processor-based system. On these targets, the PGI compiler products include additional Microsoft tools and libraries needed to build executables for either Win32 or Win64 environments. Windows - collectively, all Win32 and Win64 platforms supported by the PGI compilers.
Windows Collectively, all Win32 and Win64 platforms supported by the PGI compilers and tools.
x64 Collectively, all AMD64 and Intel 64 processors supported by the PGI compilers.
x86 A processor designed to be binary compatible with i386/i486 and previous generation processors from Intel* Corporation. Used to refer collectively to such processors up to and including 32-bit variants.
x87 80-bit IEEE stack-based floating-point unit (FPU) and associated instructions on x86-compatible CPUs.
Click me