Internships at CSCS - the Swiss National Supercomputing Centre 2024

Updated: about 1 month ago
Job Type: Permanent

The Swiss National Supercomputing Centre (CSCS) develops and operates cutting-edge, high-performance computing (HPC) systems as an essential service facility for science. The centre enables world-class research through its scientific user lab, which is available to domestic and international researchers in academia, industry, and the business sector. The centre is operated by ETH Zurich and has offices in Lugano (headquarters) and Zurich.

Below you can find 3 described internship topics. Please kindly read carefully and then decide which 2 topics appeal the most to you.


1) Distributed in-situ and in-transit data transformation and visualization in Julia

Julia is a programming language that was designed to solve the "two-language problem", the problem that prototypes written in an interactive high-level language like MATLAB, R or Python need to be partly or fully rewritten in lower-level languages like C, C++ or Fortran when a high-performance production code is required. Julia, which has its origins at MIT, can however reach the performance of C, C++ or Fortran despite being high-level and interactive. This is possible thanks to Julia's just-ahead-of-time compilation. Julia was shown to be suitable for scientific GPU supercomputing at large scale, enabling nearly ideal scaling on thousands of GPUs on Piz Daint.

High Performance Computing (HPC) at large scale requires well-designed workflows for data transformation, analysis and visualization. The ability to perform these tasks in a distributed, parallel fashion are key to most of these workflows. In addition, in-situ or in-transit data processing can be a great plus given the massive amount of data scientific HPC simulations produce. Workflows for data transformation and visualization at large scale are in active development in the language Julia which is increasingly used in HPC. The overall aim of this internship project is to design new workflows by combining the usage of existing packages and tools. Furthermore, a concrete objective is the development of a Julia package that simplifies the workflow(s) evaluated best, building on earlier work on distributed data staging conducted at the Swiss National Supercomputing Centre. The intern will have the chance to apply modern software development practices (version control, Continuous Integration and Continuous Delivery, automated build of documentation, …) in the user-friendly Julia environment.

2) Domain specific language for weather and climate applications in Julia

In our group we develop and maintain a set of libraries for weather and climate applications . One of the tools is a Python framework with an (embedded) domain specific language (DSL) for weather and climate scientists to express their algorithms in a high-level language which is then compiled to optimized versions for different hardware architectures by generating efficient code in C++, CUDA or other languages (GT4Py toolchain). Python is currently the language of choice for domain scientists. However, Julia is getting traction in the scientific community and could be the next language for scientific computing.

Project goals
In a previous internship we have developed an initial Julia based version our DSL integrating with our existing Python toolchain. We are looking for a motivated individual to intern with us and expand on that effort. The direction of the internship can be set based on the kills and interest of the candidate. The intern will work on (small) subset of the following objectives:

Features expansion:

  • Implement a Julia based GPU backend for Nvidia and/or AMD GPUs (using Cuda.jl, AMD.jl).
  • Enhance the Julia CPU backend to support variable memory layouts.

Performance & Optimization:

  • Develop a benchmark suite representative of common computational patterns in weather and climate codes.
  • Execute the benchmark suite on CSCS supercomputers and identify potential performance bottlenecks.

Python to Julia transpiler:

  • Implement a transpiler from FOAST or the internal representation in GT4Py (ITIR) to the Julia DSL to enable easy transition from the Python DSL to the Julia DSL.
  • Apply the transpiler to an existing code, for example the test suite of GT4Py or an actual weather model, and validate the results.

3) Integrating Cloud Development Environments with HPC Resources

Cloud development environments such as Gitpod and GitHub Codespaces have gained traction in recent years for their ability to provide isolated, reproducible workspaces, facilitating a quicker setup and onboarding process for developers. However, their application to High-Performance Computing (HPC) tasks is limited due to the inability to customize the hardware on which these environments run. This limitation makes them less suitable for developing GPU applications or evaluating application performance on specific hardware configurations.

At the Swiss National Supercomputing Centre (CSCS), many HPC users and developers continue to rely on traditional tools like ssh, slurm, and vim, occasionally complemented by Visual Studio Code’s remote development features. However, this established setup does not take full advantage of the streamlined workflows and enhanced efficiency that modern cloud-based Integrated Development Environments (IDEs) can offer.

This internship focuses on integrating Cloud IDEs with the existing HPC resources at CSCS, aiming to extend their advantages and efficiencies to both our internal and external user base. The project may commence with a solution based on the openvscode server , integrated via Firecrest . The subsequent phase could involve evaluating Kubernetes-based solutions like Eclipse Che  or Coder , or alternatively, developing a customized solution that integrates with tools from the CSCS CI/CD platform and/or jupyter.cscs.ch .


For the above positions students must be enrolled in a Swiss University Master level (or final year Bachelor) and for Third Country nationals the internship must be a mandatory part of their university curriculum. The student must be attending the university in person (not on-line) and must be living in Switzerland. In addition the Masters cannot be already concluded.

The candidate must be a student in one of the following fields: Computer Science, Mathematics, Physics or related fields. Ph.D. students will not be considered

The ideal candidate is a team player and feels comfortable working in an international environment in the heart of Lugano, Canton of Ticino or in Zürich in Switzerland. Excellent command of written and spoken English (our official working language) is a must.

Additional rules for Third Country Nationals: For 3rd Country Nationals the internship must be a mandatory internship and it must be start during the semester. However, it can flow into the semester holidays.


CSCS values autonomy, ownership, and continuous learning. Students can gain specialised hands-on experience through various challenging activities typical of the HPC field.

  • ETH Zurich is a family-friendly employer with excellent and flexible working conditions.
  • You can look forward to an exciting working environment, cultural diversity, and attractive offers and benefits.
  • We value the diversity of our team, and to further enhance our workforce's diversity, we encourage women to apply.
  • We offer internships of 2-6 months. During this period the intern will be mentored by and collaborating with HPC experts in the centre. A salary of 2’500.00 CHF/month is granted.

In line with

our values

, ETH Zurich encourages an inclusive culture. We promote equality of opportunity, value diversity and nurture a working and learning environment in which the rights and dignity of all our staff and students are respected. Visit our

Equal Opportunities and Diversity website

to find out how we ensure a fair and open environment that allows everyone to grow and flourish.


Curious? So are we.

We look forward to receiving your complete online application, which we ask you to refer to Stephanie Frequente, HR Partner.

Please specify in your application explicitly a maximum of 2 topics which fit your interests.

As there is a high demand for the internships in certain periods and we can only offer 2 internships per quarter, kindly also state your availability (prefered time frame for the internship).

Please note that we exclusively accept applications submitted through our online application portal. Applications via email or postal services will not be considered.

For further information, please visit our website  or contact Dr Guilherme Peretti-Pezzi, [email protected].


About ETH Zürich

ETH Zurich is one of the world’s leading universities specialising in science and technology. We are renowned for our excellent education, cutting-edge fundamental research and direct transfer of new knowledge into society. Over 30,000 people from more than 120 countries find our university to be a place that promotes independent thinking and an environment that inspires excellence. Located in the heart of Europe, yet forging connections all over the world, we work together to develop solutions for the global challenges of today and tomorrow.



Similar Positions