More Projects
DPH - Data Parallel Haskell
Data Parallel Haskell is a long standing project to implement the flattening
approach to Nested Data Parallelism (NDP) in an industrial strength compiler.
Getting it working is one thing, but getting it fast is another.
Gaze upon the current implementation and delight in the myriad ways that
humans still don't understand computer science.
- (wiki)
Project Page
- (paper) Data Flow Fusion with Series Expressions in Haskell
- (paper) Vectorisation Avoidance
- (paper) Work Efficient Higher-Order Vectorisation
GHC - The Glasgow Haskell Compiler
GHC is the industrial strength Haskell
compiler. As a research associate at UNSW my main job was to help with the
Data Parallel Haskell project.
In Q1 2009 I spent three months working on the
GHC on OpenSPARC project,
where I repaired GHC's support for the SPARC architecture and benchmarked it on the
highly multi-threaded
UltraSPARC T2
(Niagra 2) architecture.
In Q3 2007 I spent three months working at
GHC HQ
where I wrote a new
graph coloring register allocator for the native code generator.
- (blog) GHC on SPARC
- (wiki)
The GHC Register Allocator
- (talk) Flattening and Replication in Data Parallel Haskell, FP-SYD May 2011
- (talk) Beyond Haskell, HIW 2010
- (talk) GHC on the OpenSPARC T2, (video), HIW 2009
- (talk) Graph Colouring Register Allocation in the Glasgow Haskell Compiler, SAPLING November 2007
Photon Exchange
Video projections based on a hacked fluid flow simulator.- Serial Space 002, 27th July 2012
Collar Weights
Code and switching hardware for the Collar Weights mixed media installation.
Inside each of the collars are electroluminescent lamps that are programmed
to switch on, illuminating texts that become visible through the fabric.
Phrases from interviews with the owners of the collars are played.
With Alexandra Gillespie and Somaya Langley.
With Alexandra Gillespie and Somaya Langley.
- Alex's photostream
- Bathurst Regional Art Gallery, 7th August - 20th September 2009
- Canberra Contemporary Art Space (CCAS) Gorman House, 7th February - 14th March 2009
- Canberra Contemporary Art Space (CCAS) Manuka, 6th - 16th November 2008
AMPLE - An Abstract Machine for Parallel Lazy Evaluation
An experimental environment that can be used to study the behavior of parallel
functional programs in terms of an abstract machine, without needing to
worry about details specific to a native implementation. Can
execute programs fully speculatively to determine the maximum
embodied parallelism in a piece of code.
-
An AMPLE Implementation
(source code)
Abstract Machine for Parallel Lazy Evaluation (AMPLE)
with Clem Baker-Finch, 2003
Sunshine II RISC CPU Simulator
A simulator for a classic 5 stage pipelined RISC processor. Visualisation of pipeline
stalls, calculation of cpi, single step mode, breakpoints, instruction counts,
memory mapped file and console IO. Pipeline setup is easy to change.
High temperature superconducting microwave filters
Design and implementation of a filter intended to block interference that the
Australia Telescope Compact Array
was suffering from a nearby microwave distribution service (MDS).
A summer vacation scholarship position, supervised by Russell Gough
and Graham Gay of the
Receivers Group.