Skip to main content

Course Signup

Note: attendance is free for all courses listed here, however, accomodation, subsistence and travel is not provided for. See here for information about travelling to the University of Warwick.

December 13 2017

Two half-day sessions on high-performance computing for research, aimed at researchers who write code. Attendance is limited to 35 at each session. Materials are available here.

Requirements: a course such as CY901 or PX425 covering parallelism and MPI; or equivalent knowledge. Experience programming in Fortran or C/C++

Taking place in R0.41 (near Library Cafe)

Wednesday morning (10am - 1pm) - Advanced parallelism with MPI; MPI types, MPI IO, advanced communication functions (one sided, persistent etc)

Wednesday afternoon (2pm - 5pm) - Parallelism in practice; parallelism strategies, parallel-aware libraries, updating older codes, the future of HPC

December 11-12 2017

A series of four introductory software development skills half-day workshops. Aimed at PhD students with some basic programming knowledge (simple scripts or compiled programs), these develop the skills to write usable, professional software. Attendance is limited to 35 at each session. Materials are available here.

Requirements: ability to write simple programs in Fortran, C, C++ or Python

Taking place in R0.41 (near Library Cafe)

Monday morning (10am - 1pm) - Introduction to Software Development; how to design code, avoiding common pitfalls, sharing and licensing code.

Monday afternoon (2pm - 5pm) - Introduction to debugging and testing; types and origins of common bugs, debugging and testing strategies, responsibilities as a developer.

Tuesday morning (10am - 1pm) - Tools for testing and debugging; Using symbolic debuggers, using memory checkers (valgrind) and profilers, testing frameworks, automatic testing.

Tuesday afternoon (2pm - 5pm) - Tools for workflow and distribution; Build tools such as make, version control, responsibilities (research council data rules), workflows (gitflow, github), installers and package managers.