Skip to main content

High Performance Computing

The DCSR team is able to help you regarding high performance computing topics including:
  • using DCSR clusters when you're not able to perform your research and run computations on your local computer.
  • harnessing the DCSR clusters (CPU and GPU)
  • scaling your codes to larger clusters like CSCS
Here are the people involved in HPC topics:
  • Ewan Roche - HPC system management, HPC software stack, code optimisation
  • Cristian Ruiz - HPC programming, code optimisation
  • Emmanuel Jeanvoine - HPC programming (CPU and GPU), code optimisation

Technical skills

Here are some topics on which we can help.

Using the clusters efficiently

The cluster are shared resources. In order to allow all users to get a fair access to the computing resources, the job scheduler has been configured so that excesses are avoided. However this does not prevent you from inefficiently using the resources. Depending on your workload we can help you to minimise the execution time and use of the resources requires and therefore to minimise the billing and allowing you to get your results faster. This is usually achieved by tuning the job scripts and the threading parameters of your applications. We can also provide you with some insight regarding the use of the different storage locations on the clusters which can have a large impact on how long your jobs run.

Scientific computing & choice of optimised libraries

If you have to develop your own codes, several rules and good practices should be adopted. Furthermore, instead of reinventing the wheel and reprogramming everything from scratch, it's very likely than optimised and maintained libraries exist for many problems you will face. We can help you to choose the most commonly used optimised libraries and possibly to benchmark various libraries operating on the same topics according to your needs.

Profiling & code optimisation

Once you have developed a code, we can help you to profile it in order to identify bottlenecks and to improve some parts of the code where most time is being spent. Optimisation can be achieved in several ways including using a different algorithm, improving memory access, improving storage access, using vectorisation.

Parallelisation

Depending on your code, it could be possible to slightly modify the core computations so that it could be spread over several CPU cores or nodes. In some cases, it could also be possible and very interesting to port some parts of the code to GPU. Even if some languages like C/C++ or Fortan are more friendly to parallelisation, significant gains can also be obtained with Python, R, or even Julia codes.

Energy consumption

Energy consumption is a major concern in our current world. We are currently working on providing our users with mecanisms that allows to correlate their computations with the associated energy consumption. That can help you to choose between several computing strategies, to define trade-off between precision and consumption, or even to put the global benefit of your research respecting to your environmental impact.

Terms of support

We distinguish two kinds of support:
  • service mode: you submit a ticket to helpdesk@unil.ch (don't forget to start the subject with DCSR), we can help for few hours. The service is free.
  • project mode: you have a more complex project that requires several days/weeks/months of work. The service is billed (see U1 costs in support column in the cost model)

Contact

Please send an email to helpdesk@unil.ch and put "DCSR HPC support request" in the subject.