You are here
Courses > Postgraduate > MSc in High Performance Computing > Course Modules
Module MAP55600: Tools for scientific and technical computing
- Credit weighting (ECTS)
- 5 credits
- Semester/term taught
- First and second semesters
- Module Coordinator
- Juan Andrés Urrea Niño (Urrea.Nino@tcd.ie)
- Intended Learning Outcomes
- Students who successfully complete the course should be able to:
- use the Linux command-line effectively, for daily tasks such as copying files, making folders, writing and compiling code; and automate repetitive shell tasks with shell scripting
- use a version control system to effectively manage code development and automate code compilation (and other general tasks) using Makefiles
- use techniques for improving your code: by eliminating errors with debuggers; identifying potential bottlenecks with profilers; and using unit testing techniques to write repeatable tests for small chunks of code
- be able to submit and manage jobs in a HPC cluster environment
- describe some of the main scientific libraries used in the HPC and scientific computing community, and how to use those libraries.
- prepare simple documents using the LaTeX typesetting language.
- Structure and Content
- The course covers techniques and tools for writing and and
managing scientific code. It focuses on Linux-based clusters but many skills
learned also apply outside of the HPC environment. The first semester begins
with an introduction to Linux command-line, for gaining experience with
working on the shell. It then covers version control automated builds using
Makefiles for managing larger codes, followed by debugging tools and techniques
for C code. An overview of the queueing systems on the TCHPC clusters will be
covered. The second semester begins with bash shell scripting techniques, for
gaining more control on how you run code, and how to automate tasks to save
time. Profiling tools and techniques will be examined, to gain insights in how
to focus efforts to speed up code. We will then cover unit testing in C. The
use of scientific libraries in your code will be examined, including BLAS and
LAPACK libraries. Finally, an introduction to the LaTeX typesetting language
will be given.
- Assessment Detail
- 100% continuously assessed programming assignments. The course will be examined by assignments. There will be a mixture of theoretical and practical assignments.