Purpose
Here we have implemented a Fortran language interface for
HPF compiler in
NPAC at
Northest Parallel Architecture Center (NPAC) at
Syracuse University. Our HPF compiler
will translate the HPF applications into F77 codes using this
interface on top of the common runtime system
support. Then the HPF applications can execute on distributed systems.
This is a 2-D Q-State Potts mode using the classic Metropolis heatbath
algorithm, which is first implemented in
HPF codes. In this applications, in order to preserve detailed balance it
is necessary to use at least a red-black
chess board update scheme with nearest neighbour interactions. CYCLIC data
distribution allows this to have a
more efficient data mapping (and therefore caching).
We translated this application into common runtime system codes directly
calling the functions provided by the
common runtime system. From this we can see that common runtime system not
only provides the support for
high performance languages compiler through specific language interface,
but it can be used directly to implement the applications as well.
The Fast Fourier Transform (FFT) is the most widely known example of the
Spectral method for computational
problems. In all such methods, one performs a linear transformation of the
stated problem into another physical
domain where it is hoped will be more tractable. In Fourier
transformations, the mapping is from the time
domain to the frequency-domain. The FFT is widely used in the field of
image processing, where one commonly
describe an image in terms of intensity values in a two-dimensional
matrix. The codes contained here
performs a two-dimensional FFT over an example matrix -in this case a unit
constant across all the elements- in
the following manner:
We also translated this HPF application into common runtime system codes
using the common data descriptor
and functions. From that we can see, our common runtime system is
sufficient for the support of parallel data
distribution applications.
The parallel common runtime system support is aimed to create the concept of
and write the software for a public
domain system infrastructure that will provide unified runtime support for
several different high performance
languages and compilers. This will allow different programming languages to
share data structures that are dis
tributed across the memory hierarchy of a scalable parallel system and
develop common code and data descrip
tors, and routines that operate on them, for supporting data parallelism in
high performance languages. The
research will result in portable and scalable multi-platform runtime
support, inter-operable compilers, integrated
multi-language support, and improved software engineering tools for
developing high performance computing
software.
The common runtime system designed was to create a public domain system
infrastructure for mulit-high performance
lanuages. We deifned a common code and data descriptors for
supporting data parallelism in HPLs.
Above this common runtime system, we should provide a specific language
interface for each HPL to transform
their own data descriptors and data structures into the common data
descriptors, each HPL has specific data distribution
models suitable for different kinds of applications.
2-D Potts Simulation
2-D Fast Fourier Transform (FFT)