Skip to content

Commit 56de2e1

Browse files
committed
Added missing updates.
1 parent eed7ade commit 56de2e1

File tree

4 files changed

+40
-55
lines changed

4 files changed

+40
-55
lines changed

src/SUMMARY.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@
66

77
[Presentations on Programming Models](programming_models_talks.md)
88

9+
[Presentations on Mathematical Libraries](mathematical_libraries.md)
10+
911
[Setting up your environment](environment.md)

src/mathematical_libraries.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Presentations on mathematical libraries
2+
3+
The morning session on Thursday focuses on mathematical libraries.
4+
We will hear from a range of projects spanning core linear algebra
5+
up to complex multiphysics environments.
6+
7+
Each presentation should be at most 15 minutes in length, talk about the software and perform a small demonstration of the software.
8+
The order of talks will be randomly decided on the day.
9+
10+
- **[Blas](https://www.netlib.org/blas/)/[Lapack](https://www.netlib.org/lapack/lug)** are the core of almost any modern dense linear algebra package. **Blas** is a definition of basic matrix operations, implemented through fast low-level libraries (e.g. [Openblas](http://www.openmathlib.org/OpenBLAS/), [Blis](https://github.com/flame/blis), [Apple Accelerate](https://developer.apple.com/documentation/accelerate)). **Lapack** implements many standard matrix decompositions (e.g. LU, SVD, QR, etc.) based upon efficient Blas calls. **(Maciej, Bryce)**
11+
- **[PETSc](https://petsc.org/release/)** is widely used package on HPC systems for linear and nonlinear solvers, supported by huge community of users and developers. **(Shany, Anees)**
12+
- **[Suitesparse](https://people.engr.tamu.edu/davis/suitesparse.html)** is a widely used package specialising on sparse matrix solvers. The solvers built into Matlab, Julia, and many other mathematical environments are built around Suitesparse. **(Ross, Callum, Jose Miguel)**
13+
- **[Gmsh](https://gmsh.info/)** is a powerful package for mesh discretisation and visualization. **(Lewis, Louis)**
14+
- **[Firedrake](https://www.firedrakeproject.org/)** is a popular
15+
PDE solver package based on just-in-time code generation.
16+
**(Anastasia, Kelan)**
17+
- **[VTK](https://vtk.org/)** is an essential visualization library and also data-exchange format for grid based data in scientific computing. [Paraview](https://www.paraview.org/) and other visualization tools are built around VTK. **(Divij, Ammar)**
18+
- **[FMM3D](https://fmm3d.readthedocs.io/en/latest/)** is an outstanding library for the fast solution of n-body interactions.
19+
- **[Chebfun](https://www.chebfun.org/)** allows the solution of many ODEs and related problems to almost machine precision accuracy. **(Benjamin, Lucas)**
20+
- **[scikit-learn](https://scikit-learn.org/stable/)** delivers a range of simple to use algorithms for machine learning. **(Skye, Oliver, Advaith)**

src/programming_models_talks.md

Lines changed: 15 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -5,62 +5,26 @@ HPC Programming Models. You are asked to prepare slides
55
demonstrating the topic together with some simple example live
66
example codes.
77

8-
## Distributed programming with MPI
8+
Each presentation should be at most 15 minutes in length, talk about the software and perform a small demonstration of the software.
9+
The order of talks will be randomly decided on the day.
910

10-
MPI is a distributed programming model going back to
11-
1991. Even more than 30 years later it is still the dominant
12-
model for parallelisation on large-scale HPC clusters.
1311

14-
## Shared memory paralellisation with OpenMP
15-
16-
OpenMP goes back to 1997 and is a leading model for
17-
shared memory parallelisation on CPUs. In recent versions it
18-
even supports some offloading to GPUs.
19-
20-
## CUDA for software development on NVIDIA GPUs
21-
22-
CUDA is the dominant programming model for NVIDIA GPUs. It is
12+
- **Distributed programming with MPI.**
13+
MPI is a distributed programming model going back to 1991. Even more than 30 years later it is still the dominant model for parallelisation on large-scale HPC clusters. **(Maciej, Bryce)**
14+
- **Shared memory paralellisation with OpenMP.** OpenMP goes back to 1997 and is a leading model for shared memory parallelisation on CPUs. In recent versions it even supports some offloading to GPUs. **(Shany, Anees)**
15+
- **CUDA for software development on NVIDIA GPUs.** CUDA is the dominant programming model for NVIDIA GPUs. It is
2316
a large ecosystem consisting of CUDA compiler , development
24-
environments and scientific libraries.
25-
26-
## AMD HIP
27-
28-
HIP is AMD's programming model for AMD GPUs. It is fairly similar
29-
to CUDA and allows for easy portability between CUDA and HIP code.
30-
31-
## OpenCL - Vendor independent GPU programming
32-
33-
OpenCL was originally developed as an open standard to compute
17+
environments and scientific libraries. **(Ross, Callum, Jose Miguel)**
18+
- **OpenCL - Vendor independent GPU programming.** OpenCL was originally developed as an open standard to compute
3419
with the vendor dependent CUDA ecosystem. While it is less
3520
used directly in scientific computing it is still very important
3621
for development on embedded devices. And even for Scientific
3722
Computing applications it still provides a powerful way to
38-
write device independent GPU kernels.
39-
40-
## SYCL - A growing heterogeneous computing standard
41-
42-
SYCL has evolved from OpenCL to provide a modern heterogeneous
43-
computing environment in C++. It is the programming standard
44-
underlying modern Intel GPU accelerators but also supports AMD
45-
and NVIDIA.
46-
47-
## Metal - Apple's take on GPU computing
48-
49-
Apple Metal is rarely used for scientific computing. But it is
50-
a powerful model and the only way to access GPU cores on Apple
51-
Silicon.
52-
53-
## SIMD - Low-level vector registers
54-
55-
SIMD is not really a programming model. It describes the set
56-
of instructions found on most modern CPUs to efficiently execute operations on vector registers. Any CPU code targeted for
57-
performance is optimised to make use of SIMD instructions as much
58-
as possible.
59-
60-
## Parallel Programming with Jax
61-
62-
Jax is a library for efficient parallel array computations.
63-
It is mostly used for Machine Learning but can also be used
64-
to efficiently implement many other algorithms in scientific
65-
computing.
23+
write device independent GPU kernels. **(Lewis, Louis)**
24+
- **SYCL - A growing heterogeneous computing standard.** SYCL has evolved from OpenCL to provide a modern heterogeneous computing environment in C++. It is the programming standard underlying modern Intel GPU accelerators but also supports AMD and NVIDIA. **(Anastasia, Kelan)**
25+
- **Metal - Apple's take on GPU computing.**
26+
Apple Metal is rarely used for scientific computing. But it is a powerful model and the only way to access GPU cores on Apple Silicon. **(Divij, Ammar)**
27+
- **SIMD - Low-level vector registers.**
28+
SIMD is not really a programming model. It describes the set of instructions found on most modern CPUs to efficiently execute operations on vector registers. Any CPU code targeted for performance is optimised to make use of SIMD instructions as much as possible. **(Benjamin, Lucas)**
29+
- **Parallel Programming with Jax.** Jax is a library for efficient parallel array computations. It is mostly used for Machine Learning but can also be used to efficiently implement many other algorithms in scientific computing. **(Skye, Oliver, Advaith)**
6630

src/schedule.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# Schedule
22

3-
Each day consists of a morning session from 10am to 12:30 and an afternoon
4-
session from 2pm to 4pm.
3+
Each day consists of a morning session from 10am to 12:30 and an afternoon session from 2pm to 4pm.
54

65
## Monday
76
- Morning Session
@@ -21,13 +20,13 @@ session from 2pm to 4pm.
2120
- Morning Session
2221
- Introduction to dense and sparse linear algebra software
2322
- Afternoon Session
24-
- The UCL HPC Facilities
23+
- Preparation time for Thursday presentations
2524

2625
## Thursday
2726
- Morning Session
2827
- Presentations on mathematical software libraries
2928
- Afternoon session
30-
- Open-source Hackathon
29+
- Hackathon on mathematical software
3130

3231
## Friday
3332
- Morning Session

0 commit comments

Comments
 (0)