FPGA computing and high-level FPGA programming
There is a growing interest in FPGA technology for accelerating computation in various ways. I am in particular interested in high-level programming of FPGAs, i.e. using languages at a higher abstraction level than Verilog or VHDL.
In particular, I work on "Greener Search", or FPGA-accelerated Information Retrieval. In 2009, we have developed a document filtering application in Mitrion-C which filters a collection of over a million documents in seconds rather than minutes. This summer (2011), in collaboration with HP (Houston), we created an improved implementation on the GiDEL PROCStar-III board, with a speed increase of 20x over our earlier work.
The MORA Coarse-Grained Reconfigurable Architecture
We are developing a high-level FPGA programming solutions using the MORA soft processor array and the Hume language as well as extending the Gannet platform into a framework forlibrary-based FPGA programming.
Novo-G FPGA Supercomputer
I am also a member of the Novo-G Forum, "The Novo-G Forum is an international group of academic researchers and technology providers working collaboratively on experimental applications and tools to establish and showcase the advantages of RC at large scale, via the new Novo-G machine at CHREC, the world's most powerful reconfigurable supercomputer for research". Our aim is to demonstrate high performance Information Retrieval applications on the Novo-G machine. Read more ...
GPU and multcore programming in OpenCL
Another type of acceleration technology, General Purpose Graphics Processing Units (GPGPUs) is also becoming increasingly popular. OpenCL is an open, royalty-free standard for cross-platform, parallel programming of GPGPUs and modern multicore processors. We use OpenCL to accelerate applications in the fields of information retrieval (with Dr Leif Azzopardi), weather and climate research (with Prof. Saji Hameed at the University of Aizu, Japan) , particle physics (with Prof David Ireland). Read more ...
Wireless Sensor Networks
Wireless Sensor Networks consist generally of resource-constrained computational nodes forming an ad-hoc network. I am interested in particular in the heterogeneous case were different nodes in the network can perform different tasks.
For more information, see the Research page.
I am associated with the Embedded, Networked, and Distributed Systems research group. This group systematically explores architectures, models, algorithms, measurement, and control of networked/distributed systems. The group is especially interested in large–scale systems, based on both wireless and wireline interconnection technologies, as well as high–performance system interconnects.
Teaching and Supervision
I am a strong proponent of the use of dynamically typed interpreted languages, aka. scripting languages such as Perl, Ruby or Python. I have used Perl extensively in my various jobs, and for my current research work I use Ruby as a system specification language.
For system-level modelling I use C++ with the SystemC libraries. And for embedded software I use C, for want of an alternative.
Rest of the world
Finally, in case you like a non–technical look at the world ...