MSc Imaging, Vision and High Performance Computing

The course

Delivery
Full-time, Part-time
Course type
Taught
Location
Edinburgh
Entry date
September

A pioneering degree combining Heriot-Watt University's world leading expertise in Signal and Image Processing with the University of Edinburgh’s globally respected capabilities in High Performance Computing. Register interest now for September 2023.

Contact

Got questions about this programme?

Contact our enquiries team.

Overview

Register your interest for September 2023: This new degree starts in September 2023 subject to final approval. You can register your interest now before applications are officially open, using the link above.

The MSc Imaging, Vision and High Performance Computing is a newly developed programme of study for graduates of science, engineering, or computing backgrounds.

This degree will place you at the cutting-edge of science and technology, with skills in computational imaging algorithms and computer vision, as well as in High Performance Computing (HPC) hardware and software technologies. It is a programme of study which, for the first time, brings together the world-leading expertise of Heriot-Watt University in Signal and Image Processing with the University of Edinburgh’s globally respected capability HPC.

Six reasons to study MSc Imaging, Vision and HPC in Edinburgh

  1. Data scientists, data engineers and business analysts are among the most sought-after careers and Edinburgh intended to be the Data capital of Europe with its strategic Data-Driven Innovation Hubs such as the Bayes Centre, the National Robotarium, and the Edinburgh International Data Facility.
  2. Scientists and Engineers with dual competence in Imaging/Vision and HPC are highly sought-after in both the academia and industry, and Edinburgh is also host to the Imaging Alliance, a geographic cluster of companies from both industry & academia, who share their technological skills & research expertise to stimulate new ideas. 
  3. You will acquire unique interdisciplinary knowledge at the interface between the foundations of Imaging and Vision, based on optimisation, machine learning, graph theory, and imaging technologies, and associated high-performance computing hardware and software technologies. 
  4. You will be exposed to specialised applications in computational imaging and computer vision in a variety of domains, ranging from astronomy to medicine, and from computer graphics to autonomous systems. 
  5. You will have access to advanced HPC systems available at EPCC, including Cirrus and ARCHER2.
  6. Our programme is run by international leaders in their field from both Heriot-Watt University and the University of Edinburgh.

A Partnership of World-Leading Departments 

The School of Engineering and Physical Sciences at Heriot-Watt University is renowned for world-class research in imaging and vision. The School's Signal and Image Processing Lab is a leading centre for computational imaging and computer vision, both nationally and internationally. 

The School of Informatics at University of Edinburgh is one of the most renowned in the world. It provides academic governance to EPCC, the UK's leading supercomputer centre, which has a global reputation for innovative and leading-edge HPC research and training.

In the most recent Research Excellence Framework (REF2021), which assesses the quality of research of UK higher education institutions, the University of Edinburgh and Heriot-Watt University were jointly ranked first for Engineering research in Scotland, and third in the UK. The School of Informatics at the University of Edinburgh and EPCC have obtained similarly impressive results in Computer Science research, being ranked first in Scotland and sixth in the UK in REF2021.

More into Statistics than HPC?  

If you are willing to embark on an MSc in Imaging and Vision, but are more interested in complementing your education with foundational statistical aspects rather than HPC, check Heriot-Watt University's MSc in Computational Data Science

Course content

Semester 1

  • Optimisation and Deep Learning for Imaging and Vision I 
  • Foundations of Learning and Computer Vision 
  • Threaded Programming 
  • High Performance Computing Architectures
  • Message-Passing Programming 

Semester 2

  • Optimisation and Deep Learning for Imaging and Vision II 
  • Graph Methods for Imaging, Vision and Computing 
  • Advanced Parallel Techniques 
  • Performance Programming 
  • Machine Learning at Scale 

Semester 3

Dissertation in Imaging, Vision and HPC. Students will choose a project with primary supervisor in one of the institutions (Heriot-Watt University or University of Edinburgh), and a secondary supervisor in the other. Collaboration with industry is possible and encouraged. 

Alternative courses: If you have studied any of the Semester 1 or Semester 2 courses previously as a student of Heriot-Watt University or the University of Edinburgh then you may be eligible to study alternative courses as agreed with the programme director. 

Course Details and Delivery

The aims and syllabus for each course are detailed below, together with the delivery location (Heriot-Watt University or University of Edinburgh). 

Optimisation and Deep Learning for Imaging and Vision I

Semester 1

Delivery: Heriot-Watt University (15 credits)

Course overview

What is the most efficient way to sense, or sample signals that we want to observe? Once data have been acquired, how do we retrieve the sought signal from these acquired data? Such "inference" or "inverse" problems are core to Data Science, particularly when the size of the signal is large and the "inference algorithms" need to be "scalable". This module approaches these questions both from a theoretical perspective (underpinned by the theories of compressive sensing, convex optimisation, deep learning) and in the context of "computational imaging" applications in a variety of domains ranging from astronomy to medicine.

Course syllabus

The first part of the course will be taught. We will review the basic notion of Nyquist sampling of signals and rapidly dive into "computational imaging". In this context, mathematical algorithms need to be designed to solve an "inference" or "inverse" problem for image recovery from incomplete data. The size of the variables of interest in modern imaging application (e.g. in astronomy or medicine) can be very large. In our journey, and concentrating on the data processing (rather than hardware, or application) aspects, we will learn the basics of the theories of compressive sensing (which tells us how to design intelligent data acquisition schemes for sub-Nyquist sampling) and convex optimisation (which provides a whole wealth of algorithms capable to solve inverse problems, and scalable to high-dimensional problems). The second part of the course will take the form of a project which will enable us to explore how machine learning algorithms (more specifically deep neural networks) can provide an alternative framework to solve inverse problems (in particular for imaging applications), or otherwise integrate and enhance optimisation algorithms.

Foundations of Learning and Computer Vision

Semester 1

Delivery: Heriot-Watt University (15 credits)

Course overview

How can machines learn concepts by just observing examples? Learning theory provides several tools to answer this question and without which machine learning cannot be really understood. Recent developments brought by deep learning have had tremendous impact in several applications, notably in computer vision. Explaining its success, however, requires a revision of learning theory, a topic explored in this module. Applications of the theory and examples of deep learning architectures are illustrated on several computer vision tasks, from image classification to semantic segmentation and scene reconstruction. 

Course syllabus

Part I of the course establishes the foundations of learning theory, introducing concepts like risk, empirical risk, and generalization, and surveying algorithms widely used in machine learning, e.g., stochastic gradient descent. It also introduces the basic components of deep learning architectures and discusses several practical aspects of their deployment. These elements are then put together and illustrated in Part II which, after an introduction to basic concepts in computer vision geometry, surveys different deep learning solutions that have been applied in computer vision tasks.    

Threaded Programming

Semester 1

Delivery: University of Edinburgh (10 credits)

Course overview

This course is a practical introduction to parallel programming using the threading model, which is commonly used on shared memory and multicore hardware. The majority of the course is focused on teaching the use of the industry standard OpenMP API to exploit on-node parallelism for applications.  On completion of this course, you will know the key concepts of multithreaded programming, understand the syntax and semantics of the OpenMP API and be able to write a correct and performance OpenMP program in C/C++ or Fortran. We will also cover some of the advanced features of OpenMP and have you will have a good understanding of the factors affecting performance of threaded programs.

Course syllabus

Threaded programming teaches a good practical understanding of multithreaded programming and be competent OpenMP programmers. The course will take you through basic concepts of shared memory programming, including threads, tasks, shared/private data, synchronisation. We will also cover some of the core concepts around parallelisation and data sharing approaches. Building on this knowledge you will learn about scheduling of parallel work and mechanisms to optimise parallelisation or support different forms of work sharing or data splitting. We will look at some of the more advanced features of the OpenMP approach, including parallel tasks, and we will also educate you on the implementation approach and memory model used by threaded programming systems. Lectures will be followed by tutored practical sessions illustrating the key concepts. Students will have the choice of using either C or Fortran in the practical programming sessions on OpenMP.

HPC Architectures

Semester 1

Delivery: University of Edinburgh (10 credits)

Course overview

After taking this course students should have a good understanding (from the user and developer’s perspective) of the way High Performance Computing (HPC) systems are designed and how this affects both the way they are programmed and the performance of applications. On completion of this course, the student will understand the key components of HPC architectures and their basic principles of operation. You will appreciate the main design choices and trade-offs in HPC architecture and how components are put together to form complete systems. You will also gain a strong understand how HPC system software is used to manage the hardware and how it interacts with applications.

Course syllabus

Many factors can impact the performance of applications, from processor to memory, network to storage systems. HPC Architectures will introduce you to all the key technology in high performance computing systems, exploited by both computational simulation and machine learning approaches. We will cover topics such as the basic components of HPC systems and the types of system architectures often deployed. We will follow this by in-depth discussion of the various components important to application performance; processors, memory and caches, GPUs, networks, and storage systems. We will ground all this material by looking at previous and future HPC system architectures to provide you with a strong understanding of the range of computing systems you may encounter, develop, or deploy the rest of the world.

Message Passing Programming

Semester 1

Delivery: University of Edinburgh (10 credits)

Course overview

Parallel programming by definition involves co-operation between processors to solve a common problem. The programmer has to define the tasks that will be executed by the processors, and also how these tasks exchange data and synchronise with each other. In the message-passing model the tasks are separate processes that communicate by explicitly sending each other messages. All parallel operations are performed via calls to some message-passing interface that is entirely responsible for interfacing with the physical communication network.

Course syllabus

This course uses the de facto standard for message passing, the Message Passing Interface (MPI), which is a library callable from C, C++ or Fortran. Parallel programs written using MPI can run on almost any system from a multicore laptop up to the largest supercomputers in the world. We will cover the message passing model that is the core for MPI implementations. The course will cover basic domain decompositions and how message passing can be used to implement these, including basic point to point communications and collective operations as well optimisation approaches such as non-blocking and persistent communications.

Optimisation and Deep Learning for Imaging and Vision II

Semester 2

Delivery: Heriot-Watt University (15 credits)

Course overview

Iterative optimisation algorithms often break down when the dimensions of its variables and/or the size of its data become very large. Building on the Optimisation and Deep Learning for Imaging and Vision I course, this module peeks into a class of very recent methods to handle very large-scale optimisation problems and showcases their application in computational imaging and computer vision problems. Among the techniques explored in the module are advanced proximal methods, acceleration techniques, development of algorithms via duality, and hybrid methods that combine optimisation algorithms with deep learning. Finally, as data science applications require taking decisions under uncertainty, the course also surveys Bayesian techniques to quantify the uncertainty in the output of an algorithm. 

Course syllabus

The module consists of lectures and discussions, three practical projects, and a reading project. The lectures comprise four chapters: 1) Review of optimisation concepts and motivation for the need of more advanced optimisation algorithms. 2) Advanced proximal algorithms, including acceleration via inertia and scalability using duality. 3) Stochastic algorithms are introduced as solutions to handle large datasets. 4) Basics of Bayesian inference and methods to quantify uncertainty of maximum a posteriori estimates. In the practical projects, students have the opportunity to implement these algorithms and techniques. And the reading project explores connections between optimisation algorithms and deep learning, including unfolded neural networks and plug-and-play algorithms.

Graph methods for Imaging, Vision and Computing

Semester 2

Delivery: Heriot-Watt University (15 credits)

Course overview

Data is meaningless if it cannot be related to other data. For example, an individual pixel of an image can hardly reveal the object it belongs to unless we look at its surrounding pixels; the social network of a person can only be inferred by looking at the person’s interactions with other people. The appropriate tool to capture such relationships are graphs. They are fundamental and can unveil unknown connections in data analysis, signal processing, and computer vision. In this module, we explore graphs, their properties, and how they can be used to perform inference, including on probabilistic models, and capture dynamic relationships. Their impact and applicability will be illustrated in imaging and vision applications.

Course syllabus

The course consists of three parts. Part I introduces the concept of graphs, describing their properties, and covers spectral graph theory. Part II considers probabilistic models defined on graphs, and introduces several graph-based algorithms, including message-passing, variational methods, and inference with dynamic models. Part III introduces Bayesian neural networks, covering their principles, explores imaging applications of variational auto-encoders, and describes Bayesian deep neural networks. Labs complement the lectures and include implementations of large-scale message-passing algorithms, graph-based methods for dynamic imaging, and training and evaluation of variational auto-encoders using high-performance computing platforms.

Advanced Parallel Techniques

Semester 2

Delivery: University of Edinburgh (10 credits)

Course overview

The majority of current HPC applications are parallelised using a combination of message-passing (the MPI library) or threading (OpenMP directives). As HPC systems grow in size and complexity, other software approaches are now being used to aid performance portability, scalability and maintainability. This course will cover a range of more advanced and upcoming technologies for parallel computing which can be used to implement machine learning algorithms and optimise existing imaging and vision tools.

Course syllabus

The course will cover a range of different tools and techniques for parallel programming. This includes GPU programming approaches such as OpenMP, OpenACC, OpenCL, and CUDA. Beyond single node programming we will introduce partitioned global address space (PGAS) approaches, and where they can benefit performance. We will also consider programming approaches for C++, Python, and other languages that are common for machine learning and data analysis but not commonly used for large scale parallel applications. We will also introduce more low-level communication approaches, such as OpenSHMEM and single-sided MPI programming models. 

Performance Programming

Semester 2

Delivery: University of Edinburgh (10 credits)

Course overview

Application performance is one of the key requirements for HPC and machine learning applications. However, this is one of the more difficult requirements to satisfy as issues effecting performance often vary between different hardware and software environments, and over time. Performance programming requires detailed knowledge of the underlying environment and the design decisions necessary to achieve good performance are often in conflict with other desirable properties of the program. After taking this course you should have a good practical understanding of the general issues and methodologies associated with designing, building, and refactoring codes to meet performance requirements. In addition, you will have an overview of a number of subjects that are important in the understanding of performance on current systems.

Course syllabus

In performance programming we will introduce the scientific methodologies and approaches used to understand and improve code performance. We will discuss and describe how application performance can be achieved using hardware, compilers, and operating system configuration. The course will also cover the performance limitation of HPC systems and where they impact user applications, including understanding application performance metrics and hardware capabilities. The main focus of the course, though, is in identifying code regions appropriate for manual optimisation and teaching how to propose, implement and evaluate optimisations on these regions. The course has a strong practical component to ensure the application of performance optimisation theory is fully realised.

Machine Learning at Scale

Semester 2

Delivery: University of Edinburgh (10 credits)

Course overview

Machine learning occurs at a range of scales, from small scale networks with small data sets or parameter sizes, through to extremely large networks with millions of parameters and datasets of terabyte sizes. Machine learning also has two very distinct phases of operation; training and inference. To enable efficient and quick machine learning exploitation when working with very large networks or very large datasets, powerful computing hardware is required. When using significant amounts of computational hardware, there are challenges in ensuring that applications run efficiently and effectively at scale. This course will enable students to understand these challenges, address this with real world examples, and understand how these impact imaging and vision applications.

Course syllabus

This course will provide the practical skills and knowledge require to run machine learning on large-scale HPC systems and hardware to deliver trained models and inference as quickly and efficiently as possible. We will work with a range of common machine learning frameworks, examining how to run them efficiently in parallel and on a range of hardware. We will also utilize parallel programming skills to develop our own implementations of machine learning functionality and augment existing framework solutions, where appropriate. The course will evaluate a range of real-world examples where researchers have scaled machine learning up to very large computers, and learn from the current state of the art for distributed machine learning training and inference.

Entry requirements

First or strong upper second-class honours degree (or its overseas equivalent) with strong competence across signal and image processing and programming (C, C++, Fortan, Java, or Python). Suitable candidates are likely to have studied a first degree in electrical engineering, computer science, mathematics, or physics.

English language requirements

If your first language is not English, or your first degree was not taught in English, we will need to see evidence of your English language ability. The minimum requirement for English language is IELTS (score 6.5 or higher overall, with 6.0 in each element) or an acceptable equivalent.

Fees

Additional fees information

Tuition fees for Sept 2023 entry
Status Full-time
UK £14,400
Overseas £31,100
  1. Your residency 'status' is usually defined as the country where you have been ordinarily resident for the three years before the start of your course. Find out more about tuition fees.
  2. Overseas includes applications from European Union countries who do not hold Pre-Settled or Settled status in the UK. Read more about the application process for EU nationals.

Scholarships and bursaries

We aim to encourage well-qualified, ambitious students to study with us and we offer a wide variety of scholarships and bursaries to achieve this. Over £6 million worth of opportunities are available in fee and stipend scholarships, and more than 400 students benefit from this support.

View our full range of postgraduate scholarships.