FORGE 90 (as it is now called) is a product of Applied Parallel Research (main office 550 Main St.,Placerville CA 95667 916 621-1600). It is an interactive vectorizer/parallelizer for both shared and distributed memory systems. Originally developed by Pacific-Sierra Research, APR was formed by the developers of FORGE as a new startup in January. APR has offices in Placerville, Berkeley, and Topanga, CA. FORGE 90 is a layered product that runs on most Unix workstations under X-windows, sunview, openwindows, etc. The Baseline level of FORGE 90 is a global program explorer that provides a number of detailed views of a complete Fortran program, including: o call tree o COMMON Block grid (routine vs block vs variable) o Data and control flow analysis (how can I get to this statement; where is this variable set before it is used at this statement, etc..) o Performance analyzer down to the DO loop level. o Source code reformatter (tidy) The view is global thru subprogram calls and variable aliasing because FORGE 90 is based on a database representation of the entire program as a complete entity. Add on features include : o vectorizer for Cray-type vector processors; o DO loop parallelizer for shared memory systems o DO loop parallelizer for distributed memory (previously called "MIMDizer") The vector and parallelizers can handle loops that contain CALLS due to the global nature of their analysis. FORGE 90 generates compiler directives to accomplish parallelization on a number of systems. The shared-memory parallelizer analyzes DO loop array and scalar dependencies across subprogram calls and scopes variables in a loop automatically as PRIVATE or SHARED, and LOCAL or GLOBAL and displays to the user the results of its analysis. Both ordered and critical regions are displayed and the array references that cause them. FORGE 90 inserts the appropriate compiler directives for assigning variable scope and synchronization of regions. FORGE 90's distributed memory parallelizer module allows the user to choose cyclic, block, or replicate decomposition schemes for arrays. FORGE 90 generates a parallelized version of the user program to run on every node. Spread DO loops are modified in accordance with the chosen decomposition, with all node communications automatically inserted. Programs parallelized for distributed memory systems interface APR's own run-time library which in turn interfaces any of the standard message passing libraries: PVM, Express, and even IBM's new EUI library. New features announced at SuperComputing 92 include a parallel profiler and performance predictor which can gather performance statistics at run-time and predict performance on other systems.