LLVM Software Engineer (RE2)

Apply for this job

Job Description

The Barcelona Supercomputing Center – Centro Nacional de Supercomputación (BSC-CNS) is the leading supercomputing center in Spain. It houses MareNostrum, one of the most powerful supercomputers in Europe, was a founding and hosting member of the former European HPC infrastructure PRACE (Partnership for Advanced Computing in Europe), and is now hosting entity for EuroHPC JU, the Joint Undertaking that leads large-scale investments and HPC provision in Europe. The mission of BSC is to research, develop and manage information technologies in order to facilitate scientific progress. BSC combines HPC service provision and R&D into both computer and computational science (life, earth and engineering sciences) under one roof, and currently has over 1000 staff from 60 countries.

Look at the BSC experience:
BSC-CNS YouTube Channel
Let’s stay connected with BSC Folks!

We are particularly interested for this role in the strengths and lived experiences of women and underrepresented groups to help us avoid perpetuating biases and oversights in science and IT research. In instances of equal merit, the incorporation of the under-represented sex will be favoured.

We promote Equity, Diversity and Inclusion, fostering an environment where each and every one of us is appreciated for who we are, regardless of our differences.

If you consider that you do not meet all the requirements, we encourage you to continue applying for the job offer. We value diversity of experiences and skills, and you could bring unique perspectives to our team.

Context And Mission

The Computer Sciences (CS) department of the Barcelona Supercomputing Center is participating in different projects around the RISC-V ecosystem and HPC. We are looking for a software engineer that wants to push forward this ecosystem by implementing support for vector support, OpenMP and loop transformations and other features that can speed-up typical HPC applications when running on RISC-V.

The funding for these actions/fellowships and contracts comes from the European Union Recovery and Resilience Facility – Next Generation, within the framework of the General Invitation by the public business entity Red.es to participate in the talent attraction and retention programs within Investment 4 of Component 19 of the Recovery, Transformation, and Resilience Plan.
For more information, please check: https://www.bsc.es/join-us/excellence-career-opportunities/ai4s

Key Duties

  • Support or apply methods and techniques in the field of the AI in the context of compilers. This includes, for instance and does not limit to, exploting the MLIR infrastructure in the context of the HPC projects at BSC or addressing difficult compiler problems in compilers via AI/ML methods.
  • Identify optimisation and code transformation opportunities to improve the performance of HPC applications, in the context of OpenMP, Vectorization and RISC-V.

Requirements

  • Education
    • Bachelor or Master degree in Computer Science.
  • Essential Knowledge and Professional Experience
    • Knowledge of LLVM, MLIR and Clang codebases
    • Experience in compiler development.
    • Good skills in C++.
  • Additional Knowledge and Professional Experience
    • Good knowledge of Linux low level interfaces would be a plus.
    • Knowledge of HPC architectures and systems would be a plus.
    • Knowledge of the RISC-V architecture would be a plus.
  • Competences
    • Have good communication and interpersonal skills to be able to work within a team to complete tasks on schedule.
    • Show a problem-solving, can-do, pro-active and result-oriented attitude.
    • Be keen to deliver good quality code and follow good practices in the industry.
    • Be curious and willing to learn about LLVM, RISC-V and HPC.

Conditions

  • The position will be located at BSC within the Computer Sciences Department
  • We offer a full-time contract (37.5h/week), a good working environment, a highly stimulating environment with state-of-the-art infrastructure, flexible working hours, extensive training plan, restaurant tickets, private health insurance
  • Duration: 4 years
  • Holidays: 23 paid vacation days plus 24th and 31st of December per our collective agreement
  • Salary: 42.000,00€
  • Additional Expenses Grant: Each fellowship will be associated with a grant for additional expenses, such as IT equipment, travel, training, stays, etc.
  • Starting date: asap – the incorporation for this vacancy must be before the 16th of December 2024

Applications procedure and process

All applications must be submitted via the BSC website and contain:

  • A full CV in English, including contact details.
  • A cover/motivation letter with a statement of interest in English, clearly specifying for which specific area and topics the applicant wishes to be considered. Additionally, two references for further contacts must be included. Applications without this document will not be considered.

Development of the recruitment process

The selection will be carried out through a competitive examination system (“Concurso-Oposición”). The recruitment process consists of two phases:

  1. Curriculum Analysis: Evaluation of previous experience and/or scientific history, degree, training, and other professional information relevant to the position. – 40 points
  2. Interview phase: The highest-rated candidates at the curriculum level will be invited to the interview phase, conducted by the corresponding department and Human Resources. In this phase, technical competencies, knowledge, skills, and professional experience related to the position, as well as the required personal competencies, will be evaluated. – 60 points. A minimum of 30 points out of 60 must be obtained to be eligible for the position.

The recruitment panel will be composed of at least three people, ensuring at least 25% representation of women.

In accordance with OTM-R principles, a gender-balanced recruitment panel is formed for each vacancy at the beginning of the process. After reviewing the content of the applications, the panel will begin the interviews, with at least one technical and one administrative interview. At a minimum, a personality questionnaire as well as a technical exercise will be conducted during the process.

The panel will make a final decision, and all individuals who participated in the interview phase will receive feedback with details on the acceptance or rejection of their profile.