III. Programming and Problem Solving Environments

A. Introduction

  1. Motivation: complex applications and systems require ...
    • a sophisticated programming environment,
    • a great deal of abstraction and information hiding.

  2. Programming environment
    • See Cheng (93) and Messina & Sterling (93).
    • Also:
      • applications-oriented libraries
      • run-time support libraries
      • operating system functions
      • software and problem/data repositories
      • benchmarks
      • software engineering technology

  3. Problem solving environments (Gallopoulos, Houstis, Rice, 92).

    • ``... a computer system that provides all the computational facilities to solve a target class of problems ... [using] the terms of the target class ... and [using] specialized knowledge of the underlying computer hardware or software systems.''

    • Other important characteristics:
      • Use modern computing facilities.
      • Several solution methods available, with help in choosing.
      • Methods are state-of-the-art; new methods or functionality can be added easily.
      • Computing resources are managed for the user.
      • Support for long-term problem solving tasks.
      • ``A PSE is designed to create a framework that is all things to all people, solve simple or complex problems, support rapid prototyping or detailed analysis, and can be used in introductory education or at the frontiers of science.''

B. Products from Applied Parallel Research (APR)

  1. The company and its products

    • Founded in 1991; one of the few for-profit organizations developing compilers and tools for HPC.

    • Main products (from http://www.infomall.org/apri/):

      FORGExplorer
      The ultimate browser for Fortran. This interactive Motif GUI tool presents a truly global, interprocedural view of a program and can perform in-context searches and variable traces of considerable complexity. Available as shareware.

      FORGExplorer DMP
      APR's interactive, database driven, interprocedural Parallelizer for Distributed Memory systems.

      FORGExplorer SMP
      APR's interactive, database driven, interprocedural Parallelizer for Shared Memory Systems.

      xHPF
      Batch automatic parallelizer for HPF (Subset) and Distributed Memory Systems.

      spf
      Batch automatic parallelizer for Shared Memory Systems, generates X3H5 compiler directives or POSIX Threads calls.

      cmf2hpf
      Source to source translator that converts CM Fortran to Fortran 90 with High Performance Fortran Data Decomposition Directives.

  2. For a good instruduction to FORGExplorer and FORGExplorer DMP see the tutorial by Dr. Simon Wail of IBM/Australia.

Under Construction

CS6404 class account (cs6404@ei.cs.vt.edu)