PGI Visual Fortran
Parallel Fortran Compilers and Tools for Microsoft Windows
PGI Visual Fortran® (PVF®) brings the PGI suite of high-performance 64-bit and 32-bit parallel Fortran compilers to Microsoft Windows developers using Microsoft Visual Studio.
High-performance PGI Compilers
PVF features the latest version of PGI's native OpenMP and auto-parallel Fortran compilers. PGI compilers are supported on, and can generate fully optimized code for, a broad range of popular high-performance computing platforms including 64-bit x64 multi-core processor-based systems as well as 32-bit x86 systems.
PGI Fortran compilers offer world-class performance and features including both automatic and OpenMP 3.1 parallelization support for optimizing performance on multi-core processors. Advanced compiler technologies found in PVF include vectorization, parallelization, interprocedural analysis, memory hierarchy optimization, cross file function inlining, CPU-specific optimization and more. PVF includes full support for 64-bit addressing, native integrated scalar, and vector SSE code generation—including the latest Intel and AMD AVX extensions.
In addition to its comprehensive support for multi-core processors, PGI Visual Fortran includes PGI's two models for programming HPC accelerators. The OpenACC programming model is a high-level implicit model similar to OpenMP for multi-core x64 systems. Use OpenACC compiler directives to incrementally offload compute-intensive loops and code regions from a host CPU to a GPU accelerator. OpenACC directives are treated as Fortran comments by other Fortran compilers, so programs incorporating them remain 100% standard-compliant and portable. Developed in cooperation with NVIDIA, CUDA Fortran is an analog to the NVIDIA CUDA C compiler. CUDA Fortran gives expert programmers direct control over all aspects of NVIDIA GPU accelerator programming.
PGI Unified Binary technology provides the ability to generate a single executable file with code sequences optimized for multiple AMD, Intel and NVIDIA processors. The PGI Unified Binary technology enables Independent Software Vendors (ISVs) and custom applications developers to leverage the latest processor innovations while treating x64 or x64+GPU as a single platform, maximizing flexibility and eliminating the need to target and optimize for separate processors.
Visual Studio Integration
PVF has features to help with rapid code development. PVF adds syntax coloring, Fortran intrinsics tips and keyword completion to the Visual Studio editor. PVF includes a complete Fortran build environment for Visual Studio with Fortran specific features such as automatic build dependency management. PVF is interoperable with Microsoft Visual C++ so Fortran sub-programs can call C functions and vice versa. PVF includes a number of DVF/CVF compatibility features including full support for the Win32 API. Sample projects illustrate building console applications, Windows applications, DLLs and static libraries, configuring and coding PGI Accelerator and CUDA Fortran GPU applications, and using Visual C++ in tandem with PVF.
PVF includes a Fortran language specific custom debug engine. The PVF debug engine supports debugging of single and multi-thread, OpenMP, multi-thread MS-MPI and hybrid MS-MPI+OpenMP Fortran applications. It enables debugging of 64-bit or 32-bit applications using source code or assembly code, and it provides full access to the registers and hardware state of the processors. The PVF debug engine is interoperable with Visual C++.
PVF can manage the multi-process MPI capabilities built into Microsoft HPC Server 2008. MS-MPI capabilities within PVF include Visual Studio property pages for configuring compile-time options, launching applications locally on a workstation and debugging of programs running. Both PVF and PVF Server support running and debugging MS-MPI programs on your local system.
A Complete Fortran Development Solution
PGI Visual Fortran includes the Visual Studio 2015 Shell†—a complete stand-alone Windows Fortran development environment. No additional software is required. PVF also supports existing installations of Visual Studio 2013.
A license for PVF is included with all PGI Fortran products for Windows. It may also be purchased separately. License options include single user node-locked (PVF) and multi-user network floating (PVF Server). Compiling 64-bit applications requires a 64-bit operating system.
†The Visual Studio Shell included with PVF contains PGI compilers only.
Technical FeaturesVisual Studio Integration
- Fortran syntax coloring
- Fortran intrinsics tips
- Keyword completion
- Fortran debug engine
- Automatic dependency analysis
- Interoperable with Microsoft Visual C++
- Sample projects
- Bundled Visual Studio 2015 IDE
- Bundled OpenBLAS high-performance math library
- Supports multi-threaded execution with Intel MKL 10.1 and later
- Build, launch and debug Microsoft MPI (MS-MPI) applications
- Native OpenMP and auto-parallel Fortran 2003 compiler with optional support for OpenACC 2.5 directives and CUDA extensions
- Full 64-bit support on AMD64, Intel 64, NVIDIA CUDA-enabled GPUs and select AMD Radeon GPUs
- PGI Unified Binary technology—combine code optimized for multiple AMD64 processors, Intel 64 processors, NVIDIA GPUs or AMD GPUs into a single executable file
- Full 32-bit support and optimization for x86/x87 targets
- OpenMP 3.1 parallelization
- Inter-language calling
- IEEE arithmetic options
- Vectorization/Optimization directives
- Integrated cpp pre-processor
- Fast compile times
- Compile-time optimization listings
- Annotated assembly code listings
- Full support for Fortran 2003
- Support for select Fortran 2008 features
- AMD64 and Intel 64 cross-target optimizations
- Interprocedural Analysis (IPA)
- Function inlining
- Loop fusion
- Profile feedback optimization
- Memory hierarchy and memory allocation optimization
- Huge pages support
- Instruction scheduling
- Data prefetching
- Invariant code and conditional hoisting
- Common sub-expression elimination
- Global constant propagation
- Global dependence analysis
- Global flow analysis
- Integrated local, global and vector register allocation
- Induction variable analysis
- Load/store analysis
- Tail recursion elimination
- Scalar expansion, scalar replacement
- Value propagation, strength reduction
- Dead code elimination
- Vector/Parallel Transformations
- State-of-the-art dependence analysis
- Nested loop auto-parallelization
- Nested loop vectorization
- Loop interchange
- Loop splitting, unroll & jam
- Iteration peeling
- Aligned access optimizations
- Scalar promotion
- Temporary vector creation
- Stripmining, Cache Tiling
- Concurrent call support
- Inline concurrent code segments
- Vector SSE/AVX code generation
- Software prefetching
- 64-bit and 32-bit targets
- Debug Fortran and Visual C++
- Debug single and multi-thread, parallel OpenMP, multi-thread MS-MPI and hybrid MS-MPI+OpenMP programs
- Variable roll-over
- One touch breakpoint setting
- Step into, over, out of functions
- Attach to running processes
- One touch symbolic display
- Multiple format display of values or strings
- Track register states
- Processor: 64-bit AMD64, 64-bit Intel 64 or 32-bit x86 processor-based workstation or server with one or more single core or multi-core microprocessors.
- Accelerator (optional): NVIDIA CUDA-enabled GPU with compute capability 2.0 or later. AMD Radeon HD 77xx, 78xx, 79xx, and R7 series GPUs (Cape Verde, Tahiti or Spectre).
- Operating System: (Building 64-bit applications requires a 64-bit operating system.)
- Visual Studio: All versions of Visual Studio 2015 and 2013 are supported except Visual Studio Express.
- Operating System: Microsoft Windows 10/8.1/8/7, Server 2012, and Server 2008 R2. Both 64-bit and 32-bit versions are supported where available.
- Memory: 256 MB or more.
- Hard Disk: 1 GB during installation, 500 MB to hold installed software.
- Peripherals: Mouse or compatible pointing device. DVD disk drive for installation, unless products are downloaded and installed electronically.
- Other: Adobe Acrobat Reader for viewing documentation.
Please Note: 32-bit development is deprecated with the PGI 2016 release and will no longer be available with the PGI 2017 release