Untitled Document
Untitled Document
 


VAST auto-parallelization, auto-vectorization tools

We bought the VAST auto parallelization tool to use with Absoft Fortran on our Dual CPU machine. As a serial program our code ran quite quickly but we wanted to leverage both processors. VAST automatically converted our serial code into code designed for the dual processors. Before VAST the run time was 18.5 seconds, after VAST it was reduced to 8.1 seconds!!
This was such a dramatic improvement, especially since it did not require any recoding on our part. Everybody here was elated. We think that if we install dual core CPUs, i.e., four CPUs we will be where we dreamed to be in terms of speed.

Dr. Kosta J. Leontaritis
Flow Assurance Advisor
AsphWax, Inc.

Product Overview

VAST is a family of powerful software tools which can automatically convert serial code into code designed for dual processors (Windows/Macintosh and Linux), add OpenMP directives, or vectorize (G4/G5 Macintosh and PPC/Linux) your code for AltiVec. Available for both Absoft and IBM compilers. More...

Key Benefits
  • VAST/AltiVec automatically translates Fortran, C and C++ to use the AltiVec vector unit on PowerPC G4- and G5-based systems. Example

  • VAST/Parallel automatically translates Fortran and C to use multiple processors via threads parallelism on Linux-based, Windows and MacOS X systems. A special Lite version of VAST-F/Parallel is included with Pro FortranMP for Windows.

 


Key Features

VAST parallel includes:

  • Full Loop Nest Analysis. Loops are analyzed in simple and complicated loop nests; loops containing the largest amount of work are parallelized. Loops do not have to be tightly nested.

  • Extended Parallel Regions. VAST/Parallel extends parallel regions to include multiple parallel loops and intervening scalar code. This cuts down on parallel overhead.

  • Threshold testing. All parallel systems have some overhead. When VAST/Parallel finds a parallel region, if the amount of work in the region is not clear at compile time, then VAST/Parallel creates a run-time test. Through this run-time test, the parallel region will only be executed if there is enough work; otherwise, the original serial version is executed.

  • Dependence Analysis. VAST/Parallel has very sophisticated data dependency analysis capabilities that allow it to optimize complicated situations. All loop nests are examined to see if they can be executed in parallel safely. VAST/Parallel can resolve ambiguous subscripting by examining variable assignments outside of loops, and restructure the use of variables to avoid certain other dependencies.

  • Potential Dependence Testing. When dependencies are unclear at compile time, sometimes VAST/Parallel can generate run-time tests to allow parallelism to proceed.

  • Special Reduction Optimization. Summations and other reductions are parallelized through the use of locks or critical regions.

  • Shared/Private Determination. All variables in a parallel loop are categorized as shared (seen by all threads) or private (copy in each thread). VAST/Parallel can detect and create private arrays.

  • Interprocedural Analysis for Parallel Calls. VAST/Parallel can examine call chains to determine their dependencies, and then parallelize loops containing calls or groups of calls outside loops.

  • Automatic recognition of parallel cases. When sections of code deal with disjoint operations, VAST/Parallel can process each section in a separate parallel case.

  • Superscalar optimizations. VAST/Parallel includes scalar optimizations to boost performance even in a single thread. Parallel optimizations can be done to outer loops while inner loops are optimized for efficient execution on one thread.

  • Array Syntax. VAST/Parallel can in general parallelize and optimize multi-dimensional array syntax just as efficiently as loop nests.

  • Choice of static or dynamic partitioning of loop iterations. Load balancing can tradeoff with loop overhead. Use dynamic partitioning when you need more load balancing, static partioning when you are concerned about overhead.

  • Number of threads can be set with an environment variable. This allows degree of parallelism to be changed from run to run. When the system is busy you can run with two threads, when it is empty you can run with eight threads, without recompiling your program.

  • Choice of thread waiting strategy. You can select either busy waiting or sleep waiting for threads, so that the parallel program can adapt to loaded or dedicated workloads on the target system. Use busy waiting on a lightly loaded system, and sleep waiting when another job might need the cycles.

  • A special Lite version of VAST-F/Parallel is included with Pro FortranMP for Windows.

VAST Vector (AltiVec) features include:

  • Optimization of entire loop nests, not just inner loops. Critical optimizations include loop fusion (squeezing multiple loops into one loop), outer loop unrolling (unrolling an outer loop inside an inner loop), loop collapse (making one long loop from a multiple dimension loop), and loop interchange (changing the order of the loops in a loop nest to get more efficient memory access).

  • Unrolled vector loops. Unrolling vectorized loops is very important in making sure that the vector instructions are overlapped the the maximum extent possible.

  • Vectorization of reduction loops. Includes array summations, dot products, minimum and maximum element of an array, product of array elements, etc. These operations take a large fraction of the CPU time for many programs.

  • Vectorization of conditional loops. "if" statements and conditional operators are vectorized.

  • Non-aligned vectors can be vectorized efficiently. VAST introduces "permute" operations to align vectors "on the fly" prior to computation.

  • 32-bit float and 8, 16 and 32-bit integer vectorization. Integers can be signed and unsigned. Also, VAST can vectorize loops that contain mixed data sizes.

  • ALIGNED pragma so that the user can inform VAST-C about arrays that are aligned on 16-byte boundaries. Also the -Valigned command line switch.

  • -Vmessages switch to get vectorization messages for all loops in the program. Find out what constructs are inhibiting vectorization of your important loops.

  • DISJOINT, NODEPCHK pragmas for disambiguating data dependencies. Especially useful if the target program uses lots of pointers rather than array notation.

  • -L parameter for assertion levels to allow vectorization in the presence of pointer arguments. Can be very useful if the program is written to pass most of the data as pointer arguments.

  • Vector load lifting. Move all loads to the top of the loop, as far as they will go (safely). Allows the compiler to do a better job of instruction scheduling.

  • Vectorization of complex data type. Uses the permute instructions to reorder interleaved complex data so that it can be operated on with the vector unit.

  • Testing for stride one on loops with variable stride. Inserts a run-time test to see if variable array strides are all one; executes a vector version of the loop if the strides are one, otherwise executes the original scalar loop.

  • Partial vectorization of loops with strided or gather/scatter vectors.

  • Vectorization of "table lookup" loops. Loops that have a branch out of the loop can be vectorized in certain cases.

 

Product Description

VAST is a family of powerful software tools which can convert serial code into code designed for dual processors (Windows/Linux and Macintosh), or vectorize (G4/G5 Macintosh and PPC/Linux) your code for AltiVec. All code restructuring can be done automatically at the click of a mouse. The original source files are retained in unmodified form.

VAST products are developed by Crescent Bay Software who is an Absoft partner and the leading developer of superscalar, auto-parallelization and auto vectorization tools for workstations and supercomputers.

VAST/Parallel

VAST/Parallel is a preprocessor that provides automatic parallelization and superscalar optimization of code for maximum performance. VAST/Parallel optimizations can provide performance gains on single or multi-CPU systems. VAST also provides full support for OpenMP. VAST is available for all Absoft products for AMD/Intel/Linux (32-bit), AMD Opteron/Linux (64-bit), PPC/Linux, Macintosh OS X and Windows NT/2000/XP SMP systems.

VAST/Parallel is the most cost effective way to determine how much your code benefits from dual processors. There is no need to spend your time rewriting, debugging and editing code to test for potential performance gains – just click your mouse. And best of all, using VAST, you can build highly optimized versions of your application for different target systems, all without changing the original source tree. VAST/Parallel is very easy to use and can be operated from the user IDE on Pro Fortran for Windows or Macintosh OS X. Just click the mouse and go. Once created, applications do not need VAST to be present on the system to run. There is no runtime redistribution fee for applications created with VAST/Parallel.

VAST/Vector

VAST/Vector is a preprocessor which automatically restructures code to take advantage of the AltiVec vector unit built into the Macintosh G4/G5 processors. VAST/Vector operates in single precision mode and can provide significant speed ups in certain types of applications.

VAST/Vector is available for Absoft and IBM compilers. Very easy to use it can be operated from the Absoft IDE. Pro Fortran v9.0 allows a single copy of VAST to work with both Absoft and IBM compilers. Just click the mouse and go. For XL Fortran users not using the Absoft IDE, a command line verion is provided. Once created, applications do not need VAST to be present on the system to run. There is no runtime redistribution fee for applications created with VAST/Vector

VAST/Vector is the most cost effective way to see how much your code benefits from vectorization. There is no need to spend your time re writing, debugging and editing code to test for potential performance gains – just click your mouse. And best of all, using VAST, you can build highly optimized AltiVec versions of your application without changing the original source tree.

What's New

VAST is now compatible with XL Fortran and XL C/C++ as well as Absoft Fortran. Users of Pro Fortran v9.0 need only a single copy of VAST which will work with both XL Fortran and Absoft Fortran, which saves money and increases efficiency.

VAST/Parallel works very closely with the DEEP development environment to provide a complete GUI interface to the world of data parallel programming. VAST/Parallel gathers compile-time data for DEEP, and inserts instrumentation code for run-time data gathering. DEEP uses this information to display in detail the compile-time optimization notes (which loop nests have been parallelized, where data dependencies are preventing parallelization, etc.) and run-time performance data (which loop nests use the most wallclock time, which procedures are called the most, etc.) in many useful views of the program. With DEEP, you can very quickly zoom in on any performance bottlenecks in your code.

Performance

Performance Gains on a Single CPU system:

VAST/Parallel's superscalar optimization technology can enhance the performance of certain types of code on standard, single CPU systems. If your programs spend large amounts of time in nested loops or operating on large arrays, a performance improvement of over 35% may be possible. On other types of code, VAST/Parallel may have little impact.


Performance Gains on Dual CPU System:

VAST/Parallel can automatically parallelize your code and also provides full OpenMP support to enable user-directed parallelization. VAST/Parallel contains sophisticated data dependency analysis technology to detect when optimized execution will be safe, has very advanced in-lining capabilities, and uses interprocedural analysis to optimize across procedure boundaries.

Special Features

VAST/Parallel fully supports the OpenMP standard. For calculations where you know exactly what you want parallelized, OpenMp provides a portable way to specify this. VAST/Parallel supports all OpenMP directives/pragmas and functions, and provides diagnostics on incorrect use of the directives.

Features include:

  • Thread private common (choice of methods).
  • Orphan directives.
  • Nested parallelism.
  • Reduction optimizations.
  • Environment variables.
  • Efficient library implementation.

Ease of Use

The driver(s) that comes with VAST Vector (AltiVec) combines VAST and the compiler(s) in a transparent way, so that (for example) compilation can be as easy as replacing gcc with vcc or f90 with v90 in your makefiles.

There are several ways to use VAST. If your program spends most of its time in clean loops, then VAST may be able to vectorize your program automatically. Often with C programs, depending on the programming style they are written it, a potential "data dependency" between pointers and arrays may prevent some vectorization, and some simple assertions from the user can improve the amount of vectorization. VAST can provide messages that help you understand what parts of your program have been successfully optimized and what parts have not been optimized.

Advanced users may choose to write clean loops for new applications and have VAST automatically generate AltiVec code, rather than doing AltiVec coding by hand. Very advanced users may wish to modify the VAST intermediate C code and change the order or nature of vector operations that VAST generates.

Availability Date

September 15 2003
  • Electronic Delivery full Media Documentation

September 31 2003

  • Mail orders shipped

Order Information

Product name: VAST-F/Parallel, VAST-F/Vector and VAST-C/Vector

Product availability:

                VAST-F/Parallel available for Windows, Macintosh OS X, 32-bit IA32 and PowerPC Linux and 64-bit AMD64/Linux

                VAST-F/Vector available for Macintosh OS X and PowerPC Linux

                VAST-C/Vector available for XL C/C++ for Macintosh OS X

Pricing: See Price section

Orders: Contact sales



Terms and Conditions

Agreement: Absoft Software License Agreement.

Limited warranty applies: Yes

Warranty: Absoft and its Licensors warrant that the media on which the software is supplied shall be free of defects in materials and workmanship under normal use for a period of 90 days from the date of purchase. For additional warranty information, see the Absoft Software License Agreement.

Introductory Software Maintenance applies: From date of purchase until version is no longer current; charges may apply afterwards.

Absoft branded products include Premier Technical Support and Initial Software Maintenance at no additional charge from the time of purchase for as long as the purchased version remains the current release version.

Premier Technical Support

Premier Technical Support includes free technical assistance for routine, short duration installation and usage (how-to) questions, limited code-related questions, access to the Absoft user forum and FAQ's and access to friendly technical support engineers via fax, email or telephone during normal support hours. Premier Technical Support is at no charge is as long as the purchased product version is current or the customer is still under Initial or Continuing Software Maintenance.

Initial Software Maintenance (ISM)

Initial Software Maintenance includes free electronic downloads of all interim Service Packs and Quick Fixes from Absoft. Version upgrades require separate purchase but at discounted prices.

Continuing Software Maintenance (CSM)

At the conclusion of the Initial Software Maintenance term (i.e. when a new version of the purchased product is released) customers may either purchase a Product Upgrade or within 30 days of the new product release, purchase Continuing Software Maintenance (CSM) for an additional 12 month maintenance term. Continuing Software Maintenance includes all elements of Premier Technical support plus all Product Upgrades issued during the 12 month Continuing Software Maintenance term. Annual renewals of Software Maintenance will be made available at low-cost to customers who renew within their unexpired Maintenance term.

For users electing not to renew Continuing Software Maintenance and having expired maintenance terms but later wishing to rejoin CSM, Reinstatement Software Maintenance (RSM) terms may be purchased.

Third party products distributed by Absoft are subject to license terms and policies of their respective manufacturers.

Please contact Absoft directly for further details or questions on Technical Support or Software Maintenance.

Disclaimer: Premier Technical Support cannot be used as a tutorial to assist in the design and development of applications, use of programs in other than their specified operating environment, provide instructions on general system operation or explore failures caused by products for which Absoft is not responsible under this agreement.

MaxFlex· Flexible Licensing available: No

Floating Network Licenses available: No

Copy and use on home/portable computer: No

Volume orders: Yes.  Contact Absoft sales directly.

System Requirements

Please review the specific system requirements for Pro Fortran for Windows v9.0, Pro Fortran for OS X v9.2, Fortran 95 for Linux v10.0, Fortran 95 for Linux v9.0, Fortran 95 for Linux on POWER / PowerPC, XL Fortran, XL C/C++ products compatible with VAST.


Try and Buy

No evaluation copy is available at this time.


Compatibility and Companion Products

Additional third party products can be found on Fortran resources.
Technical Support

Full technical support from friendly technicians is included at no additional charge with each new product from Absoft. To ensure your software continues running at maximum efficiency, all registered Absoft customers can download service packs and quick fixes at no charge.  Customers and partners can subscribe to Absoft's free electronic mailing list to receive electronic bulletins and update notices advising of new updates, changes in product releases, new product announcements, and other news.


Documentation

User Guides


Debugger Options
  • Fx2™ Debugging Solution™
  • Fx Fortran Debugger
Cluster Options
Additional Information / Notices

None

Pricing for VAST
Academic Pricing for VAST

VAST for Fortran 95 for 32-bit Linux
VAST for Fortran 95 for 64-bit Linux
VAST for Fortran Compiler for PowerPC Linux
VAST for Pro Fortran for Windows
VAST for Pro Fortran for OS X
VAST for XL Fortran for OS X
VAST for XL C/C++ for OS X

Single User Licenses (Academic Pricing for Fortran 95 for 32-bit Linux)

Product Current Version
Part Number
Price Order
Fortran 95
Compiler Suite
9.0
F95L1ESS90
$675.00 Buy now
VAST-F/Parallel*
7.0
VPFL1CSS70
$500.00*
Buy now

* VAST-F bundled price. VAST-F unbundled price requires additional charge.

Single User Licenses (Academic Pricing
for Fortran 95 for 64-bit Linux)

Product Current Version
Part Number
Price Order
Fortran 95
9.0
F95L2ESS90
$675.00 Buy now
VAST-F/Parallel
7.0
VPFL2CSS70
$500.00
Buy now

* VAST-F bundled price. VAST-F unbundled price requires additional charge.

Single User Licenses (Academic Pricing for Fortran 95 for PowerPC Linux)

Product Current Version
Part Number
Price Order
Fortran 95
9.0
F95L3ESS90
$675.00 Buy now
VAST-F/Parallel*
7.0
VPFL3CSS70
$500.00*
Buy now
VAST-F/Vector*
7.0
VVFL3CSS70
$400.00*
Buy now
VAST-F/Vector & Parallel*
7.0
VBFL3CSS70
$800.00*
Buy now

* VAST-F bundled price. VAST-F unbundled price requires additional charge.

Single User Licenses (Academic Pricing for Pro Fortran for OS X)

Product Current Version
Part Number
Price Order
Pro Fortran
Compiler & Tools
9.0
PROX3ESS90
$675.00~ Buy now
VAST-F/Parallel*
7.0
VPFX3CSS70
$500.00*
Buy now
VAST-F/Vector*
7.0
VVFX3CSS70
$400.00*
Buy now
VAST-F/Vector & Parallel*
7.0
VBFX3CSS70
$800.00*
Buy now

* VAST-F bundled price. VAST-F unbundled price requires additional charge.

Single User Licenses (Academic Pricing for Pro Fortran for Windows)

Product Current Version
Part Number
Price Order
Pro Fortran
Compiler Suite
9.0
PROW1ESS90
$299.00 Buy now
Pro FortranMP
Compiler Suite
9.0
PMPW1ESS90
$675.00 Buy now
VAST-F/Parallel*
7.0
VPFW1CSS70
$299.00*
Buy now

* Upgrade to full VAST version from "lite" version for MP


Single User Licenses (Academic Pricing for XL C/C++ for OS X)

Product Current Version
Part Number
Price Order
XL C/C++ Compiler
6.0
XLCX3ESS60
$200.00 Buy now
Fx2 Debugger
1.0
FX2X3ESS10
$200.00~
Buy now
VAST-C/Vector*
7.0
VVCX3CSS70
$500.00*
Buy now

* VAST-C bundled price. VAST-C unbundled price requires additional charge.
~standalone price · Fx2 Debugger is included at no charge with all XL C/C++ orders from Absoft

Single User Licenses (Academic Pricing for XL Fortran for OS X)

Product Current Version
Part Number
Price Order
XL Fortran
Compiler & Tools
8.1
XLFX3ESS81
$399.00 Buy now
Fx2 Debugger
1.0
FX2X3ESS10
$200.00~
Buy now
VAST-F/Vector*
7.0
VVFX3CSS70
$500.00*
Buy now

~standalone price · Fx2 Debugger is included at no charge with all XL Fortran orders from Absoft
* VAST-F bundled price. VAST-F unbundled price requires additional charge.

Commercial / Government Pricing for VAST

VAST for Fortran 95 for 32-bit Linux
VAST for Fortran 95 for 64-bit Linux
VAST for Fortran Compiler for PowerPC Linux

VAST for Pro Fortran for Windows
VAST for Pro Fortran for OS X
VAST for XL Fortran for OS X
VAST for XL C/C++ for OS X

Single User Licenses (Commercial/Government Pricing for Fortran 95 for 32-bit Linux)

 Product
Current Version

Part Number

Price
Order

 Fortran 95
Compiler & Tools

9.0
F95L1CSS90
$899.00 Buy now
VAST-F/Parallel*
7.0
VPFL1CSS70
$500.00*
Buy now

* VAST-F bundled price. VAST-F unbundled price requires additional charge.

Single User Licenses (Commercial/Government Pricing for
Fortran 95 for 64-bit Linux)

 Product
Current Version

Part Number

Price
Order

 Fortran 95

9.0

F95L2CSS90
$899.00 Buy now

VAST-F/Parallel

7.0

VPFL2CSS70

$500.00*
Buy now

* VAST-F bundled price. VAST-F unbundled price requires additional charge.

Single User Licenses (Commercial Pricing for Fortran Compiler for PowerPC Linux)

 Product
Current Version

Part Number

Price
Order

 Pro Fortran
Compiler & Tools

8.2

F95L3CSS82
$899.00 Buy now
VAST-F/Parallel*
7.0
VPFL3CSS70
$500.00*
Buy now
VAST-F/Vector*
7.0
VVFL3CSS70
$500.00*
Buy now
VAST-F/Vector & Parallel*
7.0
VBFL3CSS70
$800.00*
Buy now

* VAST-F bundled price. VAST-F unbundled price requires additional charge.

Single User Licenses (Commercial Pricing for Pro Fortran for OS X)

 Product
Current Version

Part Number