-------------------------------------------------------------------------- Applied Parallel Research FORGE Explorer DataSheet -------------------------------------------------------------------------- Examine Gnarly Programs from the Inside Out with FORGE Explorer - forgex The Ultimate Fortran Browser from Applied Parallel Research, Inc. ------------ Ever been faced with the problem of making significant enhancements to a large, complicated application code that you know very little about? Anxious that somewhere in that code lurks a gremlin that someday is going to make mince out of your exquisite modifications? Ever wish you had a tool that could show you the whole program, trace its data and control flow, and find those gremlins before they get you in trouble? Still porting large applications to new architectures, or enhancing existing codes with new features, using vi as your only "tool"? Well, maybe its time to look at FORGE Explorer... it could save you quite a lot of headaches and time. -------------------- Interprocedural View -------------------- For a browser to be useful, it must be able to treat the entire program as a single entity. FORGE Explorer employs a global database representation of the program that transcends subprogram boundaries and is able to follow the flow of data through call arguments and COMMON. References to variables can be traced up and down the program call tree no matter how obscured by convoluted CALL/COMMON/EQUIVALENCE aliasing. --------- Motif GUI --------- FORGE Explorer presents its views as a set of Motif menu panels and display windows that can be individually moved, iconified, resized, and written to disk and printed. Color schemes and font sizes are easily customized through a user preferences menu. Multiple display windows can be viewed simultaneously. The interface is easy to learn and mostly intuitive. ---------------------------------- Tracing Variables and Other Things ---------------------------------- Choose a variable by clicking on it in a FORGE Explorer source code display window and trace all references to it and its aliases throughout the program. Not only variables, but constants, parameters, externals, and formal subprogram arguments can be traced. Trace results are superimposed upon the program call tree to emphasize the global nature of the view. --------------------- Data and Control Flow --------------------- From a reference to a variable at any point in the program, view any earlier sets of that variable that reach it, and any later uses that are reached by it. Also, view the nesting of subprograms, DO, IF, and GOTO control blocks that surround a statement. These views are easily obtained, no matter how convoluted and spaghetti-like you make the code. ----------------- COMMON Block Grid ----------------- View the usage of all COMMON blocks across all routines in a single, concise grid display. Expand a single block to reveal usage of individual variables over all routines. Identify routines that declare blocks but do not reference them. Directly trace actual references to block variables throughout the source code. ------------------------------ Template Driven Query Searches ------------------------------ Quickly search the entire program for variables that satisfy the context criteria specified in a template menu panel. The search descends the call tree and resolves all aliasing. The template allows logical combination of various definition and context criteria. For example, searching for all integer scalars in COMMON blocks that appear somewhere in the program in array subscripts and also as arguments in calls can be performed by a few mouse clicks in a Query Search Template panel. --------------- Filtered Traces --------------- The results of a trace can be further filtered by a search template to eliminate all but those references of interest. For example, show me wherever variable NZAM appears as a DO statement control variable. Query templates and trace filters can be logically combined to produce more complex search criteria. ------------------- Performance Profile ------------------- Ever wonder where your program was really spending most of its time? Or just where that new piece of code you added is slowing things down? With FORGE Explorer's performance profiler you can instrument your program to call our execution timing package and obtain a clear analysis of where all the time goes, down to the DO loop level. The timing profile summarizes actual time spent by subprogram, and details each routine by loop and nested calls. Loop timings and average iteration counts are shown, as well as relative timings as a percentage of total time, both including and excluding time spent in enclosed calls and other loops. The portable timing library is available in source code for porting to your favorite host system. ----------------------- Source Code Reformatter ----------------------- Ever notice how messy programs can get after a couple of programmers start making changes. Indentation madness, mixed upper/lower case, creative label numbering schemes, wildly scattered declarations and FORMATs, all serve to obfuscate what may have once (or never) been a readable code. Apply FORGE Explorer's Source Code Reformatter to put back some order into your code. Besides converting case and making arithmetic expressions look good, it will renumber labels, reorder and reformat declarations, and even convert IF()GOTO statements to block IFs wherever possible. A tidy source code is always a joy to behold. ------------------ Other APR Products ------------------ forge90 Interactive parallelizers for distributed & shared memory systems APR offers three MAGIC Parallelizing Pre-Compilers: dpf for distributed memory systems spf for shared memory systems xhpf for HPF directives and Fortran 90 array syntax on distributed memory systems --------------------- Platforms and Targets --------------------- APR's products are available to run on various systems including HP, SUN, IBM RS/6000, DEC Alpha, and Cray. Parallelizations and runtime support are available for: workstation clusters, IBM SP1 and POWER/4, Intel Paragon, nCUBE, Meiko, Cray T3D, CM-5. ----------------------- Training and Consulting ----------------------- APR offers training workshops in High Performance Computing and parallelization techniques at various times during the year. Specialized in-house consulting services are also available. Call Us For further information on these and other tools from APR, contact us at: --------------------------------------------------------------------------- Applied Parallel Research, Inc. 550 Main Street, Suite I, Placerville, CA 95667 Phone: 916/621-1600 Fax: 916/621-0593 email: forge@netcom.com --------------------------------------------------------------------------- Copyright * 1993 Applied Parallel Research, Inc. 11/93