Passer au contenu principal

High Performance Computing

The DCSR team is able to help you regarding high performance computing topics like:
  • using DCSR clusters when you're not able to validate your research and run computations on your single laptop
  • 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 optimization
  • Emmanuel Jeanvoine - HPC programming (CPU and GPU), code optimization

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 that does not prevent you to use inefficiently the resources regarding your needs. Depending on your workload we can help you to minimize the walltime execution and to minimize the use of the resources (and therefore to minimize the billing). 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 deep impact on walltime execution.

Scientific computing & choice of optimized 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 optimized and maintained libraries exist for several problems you will face. We can help you to choose the most commonly used optimized libraries and possibly to benchmark various libraries operating on the same topics according to your needs.

Profiling & code optimization

Once you have developed a code, we can help you to profile it in order to identify some bottlenecks and possibly to improve some parts of the code. Optimization can be achieved: using a new algorithm, improving memory access, improving storage access, using vectorization, … 

Parallelization

Depending on your code, it could be possible to slightly modify the core computations so that it could be spread over several CPU core 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 parallelization, 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.