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:
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
Second Week:
Topic: Variables and Arithmetic Operations + Intro to Git
Practical: Floating point and integer representation, Sum of the numbers
Third Week:
Topic: Loops and Conditional Statements
Practical: Printing Syntax and Trapezoidal rule
Fourth Week:
Topic: Arrays, Functions and Subroutines
Practical: Trapezoidal rule with functions
Fifth Week:
Topic: Casting and Pointers
Practical: Input Syntax, Fibonacci, Inverse Hyperbolic Tangent function
Sixth Week:
Topic: Structs and Some Useful Tools for Programmers
Practical: Matrix Multiplication
Seventh Week:
Topic: More Pointers and Dynamic Array Allocation
Practical: Finding e, Dynamic memory allocation
Eight Week:
Topic: Introduction to Algorithms
Practical: Greatest common divisor
Nineth Week:
Topic: Algorithms and Standard Libraries
Practical: Magic Square Problem
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:
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
Second Week:
Topic: Parallel Performance and Parallel Programming Models
Practical: Performance analysis of HPC applications
Third Week:
Topic: Introduction to OpenMP
Practical: OpenMP helloworld and vector addition in OpenMP
Fourth Week:
Topic: OpenMP Parallelisation Constructs and Performance
Practical: OpenMP schedule clause, dot product and race condition in OpenMP
Fifth Week:
Topic: OpenMP versions after 2.5
Practical: Matrix multiplication in OpenMP and OpenMP task parallelism
Sixth Week:
Topic: Introduction to MPI
Practical: MPI helloworld
Seventh Week:
Topic: MPI Point to Point and Non-Blocking Communication
Practical: pingpong, latency/bandwidth in MPI
Eight Week:
Topic: MPI Collective Communication
Practical: MPI simple collectives operations
Nineth Week:
Topic: MPI Communicators and Virtual Topologies
Practical: MPI cartesian topology
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.
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.
Confirm the schedule with module coordinators in the university.
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.
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.Update your module content: module description, syllabus, discussion board topics, announcements etc.
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.
Record an introductory video on how to login to the system and say the password in the video; don’t share as text.
Create a Zoom link from Universty of Galway Zoom Platform if you are going to use Zoom for module delivery.
Create a first Welcome announcement, share the Zoom link and usernames file.
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