Parallel-GPU Software Developer on ROOT (EP-SFT-2024-37-GRAP)

Join CERN as a Parallel-GPU Software Developer on ROOT

This opening is not available anymore. Do not try to apply for this job.

CERN - European Organization for Nuclear Research

Open positions at CERN
Logo of CERN

Overview

Join CERN as a Parallel-GPU Software Developer on ROOT

You have:

  • Master's degree with 2 to 6 years of post-graduation professional experience or PhD with no more than 3 years of professional experience.
  • Must be a national of a CERN Member or Associate Member State.
  • Experience in C++ programming (C++17 and onwards, STL data structures and algorithms).
  • Experience in GPU programming (e.g. CUDA).
  • Familiarity with multithreading concepts and tools (e.g. TBB).
  • Experience in statistical treatment of data distributions.
  • Software development experience with Python 3.
  • Experience with ROOT framework and HEP experiments.

Contract

This is a Entry Level contract. More about Entry Level contracts.

Job Description

Your responsibilities

Are you a physicist or data scientist specialising in software development or a software engineer interested in data science and physics? Do you like to craft robust and performant software components at the heart of large scientific software stacks? Do you enjoy taking full advantage of multicore and heterogeneous platforms?

Join the ROOT team (https://root.cern) to become a core developer on ROOT math tools on heterogeneous platforms in the context of the CERN Experimental Physics Department R&D programme (EP R&D), working at the heart of the LHC Run 3 data taking campaign, the preparation for the future High Luminosity LHC (HL-LHC) and beyond!

In particular, you will:

  • Prototype the full analysis of particle physics datasets on the GPU within the ROOT framework.
  • To that end, implement typical data reduction like histogramming for multicore CPUs and hardware accelerators such as GPUs.
  • Implement highly-ergonomic user interfaces for hardware-accelerated ROOT functionality, for both C++ and Python applications.
  • Embed your developments in the ROOT analysis tools (e.g. RDataFrame and RooFit) and propose integration strategies to the LHC experiments, for example in the area of data quality monitoring.
  • Take part in the baseline support, modernization and maintenance tasks of the ROOT project.

Your profile

Skills and/or knowledge

The following list (in order of priority) characterises the ideal candidate:

  • C++ (C++17 and onwards, STL data structures and algorithms)
  • Parallel, heterogeneous programming: multithreading concepts and tools (e.g. TBB) GPU programming (e.g. CUDA)
  • Statistical treatment of data distributions
  • Python (software development with Python 3) Optional, but considered a plus:
    • ROOT
    • HEP experiments, their data lifecycle and workflows (especially in the data quality monitoring)

Eligibility criteria:

  • You are a national of a CERN Member or Associate Member State.
  • You have a professional background in STEM (or a related field) and have either:
    • a Master's degree with 2 to 6 years of post-graduation professional experience;
    • or a PhD with no more than 3 years of post-graduation professional experience.
  • You have never had a CERN fellow or graduate contract before.

Additional Information

Job closing date: 28.03.2024 at 12:00 AM (midnight) CET.

Job reference: EP-SFT-2024-37-GRAP

Contract duration: 24 months, with a possible extension up to 36 months maximum.

Target start date: 01-May-2024

What we offer

  • A monthly stipend ranging between 6194 and 6808 Swiss Francs per month (net of tax).
  • Coverage by CERN's comprehensive health scheme (for yourself, your spouse and children), and membership of the CERN Pension Fund.
  • Depending on your individual circumstances: installation grant; family, child and infant allowances; payment of travel expenses at the beginning and end of contract.
  • 30 days of paid leave per year.
  • On-the-job and formal training at CERN as well as in-house language courses for English and/or French.

About us

At CERN, the European Organization for Nuclear Research, physicists and engineers are probing the fundamental structure of the universe. Using the world's largest and most complex scientific instruments, they study the basic constituents of matter - fundamental particles that are made to collide together at close to the speed of light. The process gives physicists clues about how particles interact, and provides insights into the fundamental laws of nature. Find out more on http://home.cern.

We are on a Quest. A Journey into discovery like no other. Bring your expertise to our unique work and develop your knowledge and skills at pace. Join world-class subject matter experts on unique projects, in a Quest for greater knowledge and deeper understanding.

Begin your CERN Quest. Take Part!

Diversity has been an integral part of CERN's mission since its foundation and is an established value of the Organization. Employing a diverse workforce is central to our success.

Potential interview questions

Can you provide an example of a project where you implemented GPU programming? This question assesses your experience and comfort with GPU programming and its practical applications. Discuss a specific project, including the problem, your approach, and the results.
Describe a time when you had to work with multithreading. What challenges did you face? The interviewer wants to understand your experience with multithreading techniques. Pro members can see the explanation.
How do you ensure that your software is performant and robust? Pro members can see the explanation. Pro members can see the explanation.
Have you ever had to modernize legacy code? How did you approach that task? Pro members can see the explanation. Pro members can see the explanation.
What statistical methods do you find most useful in analyzing data distributions? Pro members can see the explanation. Pro members can see the explanation.
Added 2 years ago - Updated 1 year ago - Source: careers.cern