Training#

ICHEC provides a range of training courses and graduate level modules that cover basic to advanced HPC skills, as well as topics on technical computing, computational science and domain expertise. This section provides a brief description of the courses, how to set up a module in University of Galway Canvas platform and a collection of links to ICHEC training materials.

ICHEC Training Courses#

TBD

TBD#

TBD

University of Galway Graduate Modules#

Some of ICHEC courses have been ECTS accredited and are offered as modules where graduate students can attain ECTS credits for participation and completion of assignments (that are graded). These include

  • Scientific Programming Concepts (ACM40660 (UCD)/PH502 (University of Galway))

  • High Performance Computing and Parallel Programming (ACM40640(UCD)/PH504 (University of Galway))

that have been delivered since at least 2012. (maybe before). They have been transfered to full semester modules since 2020. Scientific Programming Concepts is the first semester module from September to December and HPC and Parallel Programming is the second semester module from January to May. Both is 10-weeks module. These are official UCD and University of Galway modules and delivered from UCD Brightspace and Canvas platforms. Students from other universities can also register to these modules from Canvas for ECTS credits, but they need to confirm with their institution that they accept ECTS credits given by University of Galway. For example, DCU students can not use ECTS credits from University of Galway. For students, who passed the modules, we issue a certificate to submit to their departments.

Scientific Programming Concepts#

This course is an introduction to programming concepts aimed at scientists who have had minimal or no formal training in programming. The focus is on C and Fortran yet the general concepts should be applicable to other programming languages.

On successful completion of this module, students should be able to:

  • Gain an understanding of what constitutes a computer program and how it is constructed.

  • Comprehend written source code.

  • Write and compile basic programs in C/Fortran.

  • Make use of standard libraries in own code.

Practical questions of the course often focus on the implementation of mathematical and scientific algorithms. Key areas of focus typically include: implementing numerical methods for approximating solutions to mathematical problems, linear algebra and matrix operations (e.g. matrix multiplication), core mathematical concepts and functions, and implementing well-known algorithms.

Module Schedule:

  1. First Week:

    • Topic: Overview of Computer Architectures and Introduction to Scientific Programming with C and Fortran

    • Practical: How to ssh/scp, Basic Unix bash and commands, Unix text editors, Compiling C/Fortran

  2. Second Week:

    • Topic: Variables and Arithmetic Operations + Intro to Git

    • Practical: Floating point and integer representation, Sum of the numbers

  3. Third Week:

    • Topic: Loops and Conditional Statements

    • Practical: Printing Syntax and Trapezoidal rule

  4. Fourth Week:

    • Topic: Arrays, Functions and Subroutines

    • Practical: Trapezoidal rule with functions

  5. Fifth Week:

    • Topic: Casting and Pointers

    • Practical: Input Syntax, Fibonacci, Inverse Hyperbolic Tangent function

  6. Sixth Week:

    • Topic: Structs and Some Useful Tools for Programmers

    • Practical: Matrix Multiplication

  7. Seventh Week:

    • Topic: More Pointers and Dynamic Array Allocation

    • Practical: Finding e, Dynamic memory allocation

  8. Eight Week:

    • Topic: Introduction to Algorithms

    • Practical: Greatest common divisor

  9. Nineth Week:

    • Topic: Algorithms and Standard Libraries

    • Practical: Magic Square Problem

  10. Tenth Week:

    • Topic: Introduction to Object Oriented Programming

    • Practical: The tower of Hanoi problem

The module structure includes pre-recorded video lectures and weekly practicals, which are shared every Monday. Online live hands-on sessions are scheduled via Zoom every Tuesday from 10:00 to 12:00. More details are provided during the introductory session in the first week. The assessment for the module consists of two assignments, accounting for 60% of the grade, and an exam, making up the remaining 40%.

High Performance Computing and Parallel Programming#

This module introduces key topics in high performance computing (HPC), including parallel programming. Prior programming experience in C or Fortran, as well as basic knowledge of UNIX/Linux shell is expected. On successful completion of this module, students should be able to:

  • Understand key HPC concepts and how they are applied in scientific research.

  • Devise parallel strategies to solve computational problems.

  • Develop and understand basic parallel applications that uses OpenMP and MPI.

Practical questions of the course often focus on the implementation of mathematical and scientific algorithms. Key areas of focus typically include: implementing numerical methods for approximating solutions to mathematical problems, linear algebra and matrix operations, core mathematical concepts and functions, and implementing well-known algorithms.

Module Schedule:

  1. First Week:

    • Topic: Introduction to HPC and HPC Architectures

    • Practical: How to ssh/scp, Basic Unix bash and commands, Unix text editors, Compiling C/Fortran/OpenMP/MPI codes

  2. Second Week:

    • Topic: Parallel Performance and Parallel Programming Models

    • Practical: Performance analysis of HPC applications

  3. Third Week:

    • Topic: Introduction to OpenMP

    • Practical: OpenMP helloworld and vector addition in OpenMP

  4. Fourth Week:

    • Topic: OpenMP Parallelisation Constructs and Performance

    • Practical: OpenMP schedule clause, dot product and race condition in OpenMP

  5. Fifth Week:

    • Topic: OpenMP versions after 2.5

    • Practical: Matrix multiplication in OpenMP and OpenMP task parallelism

  6. Sixth Week:

    • Topic: Introduction to MPI

    • Practical: MPI helloworld

  7. Seventh Week:

    • Topic: MPI Point to Point and Non-Blocking Communication

    • Practical: pingpong, latency/bandwidth in MPI

  8. Eight Week:

    • Topic: MPI Collective Communication

    • Practical: MPI simple collectives operations

  9. Nineth Week:

    • Topic: MPI Communicators and Virtual Topologies

    • Practical: MPI cartesian topology

  10. Tenth Week:

    • Topic: MPI Derived Datatypes

    • Practical: MPI vector derived datatype

The module structure includes pre-recorded video lectures and weekly practicals, which are shared every Monday. There is normally a two-week break to overlap with University of Galway and UCD reading weeks in the second semester. Online live hands-on sessions are scheduled via Zoom every Tuesday from 11:00 to 13:00. More details are provided during the introductory session in the first week. The assessment for the module consists of two assignments, accounting for 60% of the grade, and an exam, making up the remaining 40%.

Other Graduate Modules#

TBD

TBD#

TBD

Setting Up an University of Galway Graduate Module with External Student Registration#

This section lists steps to follow to setup a module that consists of external students registration. University of Galway uses Canvas teaching and learning management system. There are online trainings on content management and other details on Canvas led by Niall Flaherty - niall.n.flaherty@universityofgalway.ie. They are very helpful if you are teaching a graduate module on Canvas. Online help and a 24/7 support are provided with the “Help” navigation button in the Canvas VLE.

Steps to Follow#

Below is the list of steps to follow to setup a graduate module on Canvas each semester.

  1. Check the term dates of University of Galway and make a weekly schedule for the module early August if it is a first semester module; early December if it is a second semester module. Note: If it is joint module with another institution like UCD, then check their term dates to overlap plans with University of Galway module delivery. Remind that there is no teaching in the Reading Weeks.

  2. Confirm the schedule with module coordinators in the university.

  3. Create a web form on ICHEC wep page for external students and send announcement with a registration deadline in the second week of August/December. Note: Check with the university what type of information is required from external students. University of Galway normally requires information such as DOB, Gender, Address, Mobile Phone, E-mail, PPS Number, Nationality, Domicile and Institution from external students to add them to their system.

  4. Send the external registrations list to Postgraduate Research Enquiries - pgresearch@universityofgalway.ie to add the students to Quercus for 1PRS1 and CC to Denise Walsh - denise.walsh@universityofgalway.ie to add them to Canvas module in the first week of September/January. Note: Give them at least two weeks before the module starts because it takes time to add students to each system. Also, Denise waits confirmaton from each student due to GDPR regulations before adding them to Canvas.

  5. Update your module content: module description, syllabus, discussion board topics, announcements etc.

  6. If you need system setup like sciprog machine used in Scientific Programming and HPC modules, create a ticket to systems at least two weeks before to refresh the accounts and create a new password. Assign usernames to students.

  7. Record an introductory video on how to login to the system and say the password in the video; don’t share as text.

  8. Create a Zoom link from Universty of Galway Zoom Platform if you are going to use Zoom for module delivery.

  9. Create a first Welcome announcement, share the Zoom link and usernames file.

  10. Check if all external students are on Canvas when the module started. If not, keep them upto date with emails for the first few weeks until they have access to Canvas module page.

Where to look#

Materials are in the following places:

TBD#

TBD