| Table of Contents |
|---|
Compiler Optimization - Kevin Vinsen
Modern compilers have extremely good optimisers, but they are still only as good as the code they are trying to optimise.
This project will investigate how the layout of the source code affects the code to be optimised.
For example in this loop, if the if clause always returns the same value, the code will always evaluate the if and else if to get to the function DoYetAnotherThing
| Code Block |
|---|
for(i=0; i<n; i++) {
if( (lpDRV->dpCAPS) & CLIPPING ) {
DoOneThing(i);
} else if( (lpDRV->dpCAPS) & ALREADYCULLED ) {
DoSomethingElse(i);
} else {
DoYetAnotherThing(i);
}
}
|
A more efficient approach would be:
| Code Block |
|---|
if( (lpDRV->dpCAPS) & CLIPPING ) {
for(i=0; i<n; i++) {
DoOneThing(i);
}
} else if( (lpDRV->dpCAPS) & ALREADYCULLED ) {
for(i=0; i<n; i++) {
DoSomethingElse(i);
}
} else {
for(i=0; i<n; i++) {
DoYetAnotherThing(i);
}
}
|
Here the if clause is only called once.
GPU Porting Process - Kevin Vinsen
Massively parallel software is the cornerstone of modern simulation techniques.
The associated software engineering processes required to support this have been left behind.
As most ports are done with a very small budget, high ceremony process is not practical or affordable.
This project will look at what light weight processes are required to port code from a traditional HPC environment to a GPU cluster.
MapReduce on Multicore for
Conversions between FITS and HDF5 - Chen Wu
This project aims to develop multicore-based MapReduce techniques to convert large astronomical data cubes from FITS to HDF5 and vice versa.
The programming language could be C/C++. The following libraries can be re-used or studied: –
- Phoenix++ or Metis for the MapReduce framework
- HDF5 C++ library for HDF5 file access
- CFITSIO for FITS file access
- LOFAR DAL for both HDF5 and FITS access examples, see NG-Data Access Layer for details.
- PyTable for a python converter from FITS to HDF5, see Conversion between FITS and HDF5 for details.
- LOFAR HDF5 structure
Upgrade NGAS to use Tornado instead of internal Python HTTP server - Andreas Wicenec.
This project aims on a replacement of the HTTP server used inside NGAS with the WSGI compliant, multi-core capable HTTP server Tornado. Tornado is a web-framework and a server based on the asynchronous network socket paradigm. This approach will make NGAS a lot more scalable and easier to deploy on a single multi-core machine by allowing multiple long lasting connections to live in parallel. The project requires good knowledge of Python and the ability to analyze existing code.
Distributed Log Processing and Analysis for NGAS - Chen Wu
Develop a low-latency, stream processing system using open sources (e.g. OpenTSDB, Samza or Spark streaming) to analyse and derive useful patterns from multi-terabytes of NGAS logs distributed across four continents around the world continents around the world. The Next Generation Archive System (NGAS) is currently in use to control and maintain hundreds of millions of observations in nine major astronomical institutions across four continents.
| Children Display |
|---|