  The Partitioned Global Address Space memory model has been popularised by a
number of languages and applications. However this abstraction can often result
in the programmer having to rely on some in built choices and with this
implicit parallelism, with little assistance by the programmer, the scalability
and performance of the code heavily depends on the compiler and choice of
application.
  We propose an approach, type oriented programming, where all aspects of
parallelism are encoded via types and the type system. The type information
associated by the programmer will determine, for instance, how an array is
allocated, partitioned and distributed. With this rich, high level of
information the compiler can generate an efficient target executable. If the
programmer wishes to omit detailed type information then the compiler will rely
on well documented and safe default behaviour which can be tuned at a later
date with the addition of types.
  The type oriented parallel programming language Mesham, which follows the
PGAS memory model, is presented. We illustrate how, if so wished, with the use
of types one can tune all parameters and options associated with this PGAS
model in a clean and consistent manner without rewriting large portions of
code. An FFT case study is presented and considered both in terms of
programmability and performance - the latter we demonstrate by a comparison
with an existing FFT solver.
