\documentstyle{article}

\begin{document}

\sloppy

\pagestyle{empty}

\title{Curriculum Vitae}

\author{David Bryan Carpenter}
%\address{Department of Electronics and Computer Science, \\
%         Southampton University, \\
%         Southampton, S09 5NH} 

%\date{October 31, 1990}
\maketitle

\pagestyle{plain}

\section*{Personal Details}

\begin{description}
\item{Date of Birth:}
15th January, 1958
\item{Place of Birth:}
Birmingham, UK
\item{Marital Status:}
Single
\item{First Degree:}
BSc., Physics, from Westfield College, London.\\
First Class Honours.  Degree awarded 1979.
\item{Second Degree:}
PhD., Theoretical High Energy Physics, also from Westfield.\\
Supervisor: Prof.~E.~Leader. Degree awarded 1984.
\item{Thesis:} {\em Lattice and Large N Studies of Two-dimensional QCD},
submitted to University of London, 1983.
\item{Positions:}\
\begin{description}
\item{1983-1984}
Research Fellow in Theoretical Physics Department,
Edinburgh University.
\item{1985}
Held Royal Society Overseas Fellowship at DESY, Hamburg.
\item{1985-1988}
Research Fellow in Computational Physics Group, Southampton.
\item{1989}
Employed at ``Transputer Technology Solutions'', Southampton.
\item{1989-91}
Research Fellow in Department of Electronics and Computer Science,
Southampton (funded by Esprit Project PUMA).
\item{1991-92}
Research Fellow jointly in Department of Electronics and Computer Science
and Department of Physics, Southampton.
\item{1993}
Research Fellow in Department of Electronics and Computer Science,
Southampton.
\item{1994-95}
Programmer, High Performance Computing Centre, Southampton.
\end{description}
\end{description}

\section*{Interests and Experience}

Parallel computing, parallel languages, library design,
object-oriented programming (C++),
scientific programming,
functional programming,
logic programming, formal methods, UNIX system programming.

\section*{Career Summary}

\subsection*{Physics}

     My doctoral research, in theoretical physics, involved applying
newly-developed computational techniques for handling lattice fermions
to a low-dimensional field theory \cite{2d}.  For the first two years
of my postdoctoral career I worked as a physicist, engaged in more or
less theoretical work on lattice gauge theories and field theory
\cite{free} \cite{block} \cite{sigma}.
At Edinburgh I worked in David Wallace's group and was exposed to one
of the early massively parallel computers---the ICL DAP.

     I came to Southampton in 1985, a recruit to Tony Hey's new
computational physics group.  Initially working as an application
programmer, I spent several years implementing physics codes on
parallel computers---especially Transputer systems.  In close
collaboration with {\em inmos} we wrote some of the first scientific
programs to run on Transputers.  Between 1989 and 1992 I
collaborated with Prof Chris Sachrajda and a group of European
physicists on first-principles calculation of parameters of heavy quark
systems \cite{meson}.  Earlier collaborations with physicists involved
simulation of solid state \cite{simulation} \cite{xy} and pure gauge
theories \cite{glue}.  During this time, however, my principal
interests moved progessively away from physics, towards computational
issues.

\subsection*{The Supernode Project}

     For a number of years I have been particularly interested in design
and development of communication libraries to support data-parallel
computation (and in the associated language issues).

     This interest started during the ESPRIT {\em Supernode} project,
which developed a reconfigurable multi-Transputer supercomputer.  I
worked on programming paradigms for exploiting Transputer networks in
simulation of physical systems \cite{monte}.  The deliverables for that
project included {\em occam} libraries and harnesses to facilitate
distribution of grid-oriented problems \cite{supernode}.

\subsection*{The PUMA Project}

     During the subsequent {\em PUMA} (Parallel Universal Message-passing
Architectures) project I designed and prototyped a more advanced
collective communication library, {\em ACL}\cite{acl}.  The PUMA project was
centred on the belated T9000 Transputer; when that processor was
delayed ACL was prototyped on top of the Southampton Virtual Channel
Router (VCR).  The PUMA project was also strongly influenced by the
ideas of Bulk Synchronous Parallel (BSP) computation which emerged at
that time, and the choice of some of the collective communication
primitives in ACL was influenced by the BSP model.  Other features of
the ACL model are high-level primitives for dynamically spawning
multi-dimensional process arrays, and the use of abstract data types to
describe process arrays and distributed data.  My later work on Adlib
design was particularly influenced this latter feature of ACL.  ACL was
initially implemented in {\em occam}---although a simplified version
was later implemented in Fortran, on top of the Parmacs library.

     In the same project John Merlin was also working at Southampton on
the {\em ADAPT} system, a precursor HPF-like system, for semi-automatic
parallelisation of Fortran programs with distributed data.  He proposed
a collective communication library called ADLIB, which his translation
tool would target.  The ADAPT system was not completed during the
project, and ADLIB, as specified then, remained unimplemented.

\subsection*{Computer Science}

     After the PUMA project finished I returned to physics
collaboration for a year.  Meanwhile my interests in communication
libraries shifted mainly to lower level-support for some of the dynamic
channel communication operations used in the VCR implemention of ACL.
I worked towards establishing a CSP proof of a particular
channel-moving protocol.  This work is unpublished.

     In late 1992 I worked briefly with Hugh Glaser on the FAST
(Functional programming on Arrays of Transputers) project.  We
implemented a few scientific codes in the lazy functional language
Haskell, with a view, ultimately, to their automatic
parallelisation\cite{fast}.

\subsection*{HPF and Adlib}

     In 1993 HPF became fashionable, and John Merlin and myself began a
collaboration to implement a prototype HPF translation system,
recycling components of the ADAPT system to build an HPF-to-Fortran
translator, and technology from ACL to implement the run-time library.
Some time into this project we obtained formal funding to continue from
the UK JISC and EPSRC councils.

     In the early stages of project I worked on defining a translation
scheme for HPF-like languages, with a view to defining a convenient
(and complete) interface to the run-time library.  Some phases of this
translation scheme were prototyped in the logic language Prolog.
The initial specification of the new run-time library, {\em Adlib}, was
completed in 1994.  Adlib was defined as a C++ class library.  Unlike
ACL, which was designed primarily to support an {\em ad hoc} set of
common applications and algorithms, Adlib is designed specifically to
support translation of HPF.  It supports the full HPF distributed data
model, providing high-level gather/scatter and other data remapping
operations on HPF arrays.  It also provides a set of arithmetic and
reduction operations suitable for implementing the Fortran 90 array
intrinsics on distributed data.

     A prototype implementation of Adlib, built on MPI, was completed
in the last year\cite{malaga}.  Adlib is implemented in C++.  A
restricted Fortran interface, suitable as a target for the modified
ADAPT translator, has also been provided.

    The subset HPF translation system SHPF (Southampton HPF) has been
installed at several beta test sites over the past few months.  The
major platforms have been SUN and IBM workstations and the IBM SP2, but
it should be possible to retarget the system to any platform with a
suitable set of compilers which provides MPI.

\begin{thebibliography}{9}

\bibitem{2d} D.B.~Carpenter, {\em Two Dimensional Lattice QCD in Quenched
Approximation.} Nucl. Phys. B228 (1983) 365.

\bibitem{free} D.B.~Carpenter and C.F.~Baillie, {\em Free Fermion Propagators
and Lattice Finite-Size Effects.} Nucl. Phys. B260 (1985) 103.

\bibitem{block} D.B.~Carpenter, {\em Blocking Transformations for Lattice
Fermions.} DESY Preprint 85-064.

\bibitem{sigma} S.J.~Hands and D.B.~Carpenter, {\em Lattice Sigma Model
and Fermion Doubling.} Nucl. Phys. B266 (1986) 285.

\bibitem{simulation} C.R.~Askew, D.B.~Carpenter, J.T.~Chalker, A.J.G.~Hey,
D.A.~Nicole and D.J.~Pritchard, {\em Simulation of Statistical Mechanical
Systems on Transputer Arrays.} Computer Physics Communications 42 (1986) 21.

\bibitem{monte} C.R.~Askew, D.B.~Carpenter, J.T.~Chalker, A.J.G.~Hey,
M.~Moore, D.A.~Nicole and D.J.~Pritchard,
{\em Monte Carlo Simulation on Transputer Arrays.}
Parallel Computing 6 (1988) 247.

\bibitem{supernode} D.B.~Carpenter and J.H.~Merlin,
{\em Gauge Field Theory Simulation on Transputer Arrays.}
ESPRIT project P1085, Workpackage 7, 3rd deliverable report (1989).

\bibitem{tsp} J.R.A.~Allwright and D.B.~Carpenter,
{\em A Distributed Implementation of Simulated Annealing for the
Travelling Salesman Problem.}
Parallel Computing 10 (1989) 335.

\bibitem{xy} D.B.~Carpenter and J.T.~Chalker, {\em The Phase Diagram
of a Generalised XY Model.} J. Phys: Condens. Matter I (1989) 4907.

\bibitem{glue} B.~Carpenter, C.~Michael and M.J.~Teper,
{\em $O^+$ and $2^+$ Glueball Masses from Large Lattices in SU(2)
Lattice Gauge Theory.} Phys. Lett. B198 (1987) 511.

\bibitem{decay} C.R.~Allton, D.B.~Carpenter, V.~Lubicz, L.~Maiani,
G.~Martinelli and C.T.~Sachrajda, {\em Decay Constants of Heavy Mesons.}
Nuclear Physics B (Proc. Suppl.) 20 (1991) 504.

\bibitem{meson} A.~Abada, C.R.~Allton, Ph.~Boucard, D.B.~Carpenter,
M.~Crisafulli, J.~Galand, S.~G\"{u}sken, G.~Martinelli, O.~P\`{e}ne,
C.T.~Sachrajda, R.~Sarno, K.~Schilling and R.~Sommer,
{\em Meson Spectroscopy and Decay Constants with Wilson Fermions at
$\beta = 6.4$}
Nucl.Phys. B376 (1992) 172.

\bibitem{meson} As.~Abada, C.R.~Allton, Ph.~Boucard, D.B.~Carpenter,
M.~Crisafulli, S.~G\"{u}sken, P.~Hernadez, V.~Lubicz, G.~Martinelli,
O.~P\`{e}ne, C.T.~Sachrajda, K.~Schilling, G.~Siegert and R.~Sommer,
{\em Semi-leptonic Decays of Heavy Flavours on a Fine-grained Lattice}
Nucl.Phys. B416 (1994) 675.

\bibitem{acl} D.B.~Carpenter, {\em Array Communication Library:
Introduction.} ESPRIT project PUMA, Workpackage 5.1, report (1992).

\bibitem{fast} D.B.~Carpenter and H.~Glaser,
{\em Some Lattice-Based Scientific Problems, expressed in Haskell}
University of Southampton, Department of Electronics and Computer
Science, preprint CSTR 93-06 (1993).
To appear, Journal of Functional Programming (1996).

\bibitem{malaga} D.B.~Carpenter,
{\em {\em Adlib}: A Distributed Array Library to Support HPF Translation}
presented at 5th Workshop on Compilers on Parallel Computer, Malaga (1995).

\end{thebibliography}

\end{document}

