Study-Unit Description

Study-Unit Description


CODE SSA5035

 
TITLE Advanced Programming Techniques

 
UM LEVEL 05 - Postgraduate Modular Diploma or Degree Course

 
MQF LEVEL 7

 
ECTS CREDITS 5

 
DEPARTMENT Institute of Space Sciences and Astronomy

 
DESCRIPTION This study-unit exposes students to the increasing need for specialised software required to meet the exponential growth in computational requirements of current and future telescopes, both to process data in real-time as well as to perform data analysis on the reduced data sets. These instruments and experiments push the boundaries of current state-of-the-art hardware and software systems.

High performance techniques for parallelising and distributing processing across multiple machines, including compute clusters and distributed networks, are discussed and utilised to tackle challenges which are presented during the study-unit, where current and future data sets need to be processed to extract signals and information of interest. These techniques include serial code optimisation, shared memory processing and message passing mechanisms for distributed systems. In-depth knowledge of advanced concepts in systems programming is also presented.

A recent trend is to include additional hardware accelerator to traditional compute clusters, including Graphics Processing Units and CPU-based accelerators. Their architecture is discussed in detail, contrasting the different programming paradigms required to get the required speed-up when writing specialised software.

Study-unit Aims:

The main goal of this study-unit is to introduce the students to advanced programming techniques, including systems programming, high performance computing and the use of accelerators to speed up software. Through the various tutorials and exercises student will enhance their programming skills, gain a good understanding of compute cluster and accelerator architectures and be able to write software which can run efficiently on them.

Various problems will be presented throughout the study-unit which will strengthen the students' problem solving skills. They will apply the skills and techniques presented in this study-unit to process and analyse various astronomical data sets through the course as well as in the assignment.

Learning Outcomes:

1. Knowledge & Understanding:

By the end of the study-unit the student will be able to:
- Understand the need for advanced computational techniques to meet the ever-increasing compute requirements of science experiments;
- Understand the different architectures available to speed up software;
- Understand standard practises in systems programming, high performance computing and accelerator programming;
- Match appropriate techniques to different problem domains depending on the behaviour the algorithms to be used and limitations of techniques used.

2. Skills:

By the end of the study-unit the student will be able to:
- Design, write and debug software utilising specialised techniques, including system software and high performance software;
- Use appropriate profiling tools to understand the limitation of the code and be able to counter these limitations;
- Apply these skills to a wide variety of problems sets outside of the astronomical and science community.

Main Text/s and any supplementary readings:

- Advanced Programming in the UNIX Environment by W.R. Stevens. Addison-Wesley, 2005. ISBN 0201433079.
- Foundations of Multithreaded, Parallel and Distributed Programming by G. Andrews. Addison Wesley. ISBN 0-201-35752-6.
- CUDA Handbook: A Comprehensive Guide to GPU Programming by Nicholas Wilt. Addison-Wesley. ISBN 0-321-80946-7.

 
STUDY-UNIT TYPE Lecture and Tutorial

 
METHOD OF ASSESSMENT
Assessment Component/s Sept. Asst Session Weighting
Examination (2 Hours) Yes 40%
Assignment Yes 60%

 
LECTURER/S Alessio Magro

 

 
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2023/4. It may be subject to change in subsequent years.

https://www.um.edu.mt/course/studyunit