The Department of Computing Science at Umeå University is seeking a candidate for a Ph.D. student position to work on the development of a high-performance compiler for linear algebra computations. The application deadline is February 15, 2020.
The Department of Computing Science values the qualities that an even gender distribution brings to the department, and therefore we particularly encourage women to apply for the position.
Research project and work description
Linear algebra computations are the core of countless applications in science and engineering. Typically, the level of abstraction used to describe such computations is captured by high-level languages such as Matlab, Julia, R, and by C++ libraries such as Eigen and Armadillo. On the contrary, linear algebra libraries are developed in low-level languages such as Fortran and C, and offer relatively simple kernels such as those included in the BLAS and LAPACK libraries. The translation from a high-level computation to an efficient sequence of kernels is a challenging task that requires extensive knowledge of both linear algebra and high-performance computing. We are developing Linnea, a compiler for linear algebra; as input, Linnea takes a matrix equation, and as output, it returns code consisting of calls to kernels. In a test-suite of 125 problems, the code generated by Linnea consistently outperforms Matlab, Julia, Eigen and Armadillo.
The aim of this project is to improve Linnea with respect to the following aspects.
– Adoption. The goal is to make Linnea fast enough, and portable enough, to be used within other projects such as Julia, Armadillo, Eigen, NumPy.
– Parallelism. The generation of code should be tailored to the number and type of resources available. Furthermore, the generation itself can be parallelized.
– Tensor computations. While kernels for tensor computations exist, most programming languages offer a very limited support for tensors, and are not able to utilize such kernels.
About the position
The doctoral student’s main task is to devote herself/himself to her/his postgraduate education, which includes participation in research projects and postgraduate courses for a total study time of 48 months. In addition, teaching and other work at the department (up to a maximum of 20% of full time) can be included in the duties; if so, the employment as a PhD student will be prolonged accordingly.
Expected starting date is 1st of May 2020 or as otherwise agreed.
To be admitted for studies at the third-cycle level the applicant is required to have completed a second- cycle level degree, or completed course requirements of at least 240 ECTS credits, of which at least 60 ECTS credits are at second-cycle level, or have an equivalent education from abroad, or equivalent qualifications. To fulfil the specific entry requirements for doctoral studies in computing science, the applicant is required to have completed courses at second-cycle level degree equivalent to 60 ECTS credits in computing science, or in a subject considered to be directly relevant for the project described above. Applicants who otherwise have acquired skills that are deemed equivalent to these are also eligible.
The nature of this project is highly interdisciplinary, connecting programming languages with the domains of linear algebra and high-performance computing. The applicant needs to have advanced knowledge of both programming languages and techniques for compiler construction. The candidate is expected to be familiar with numerical linear algebra, with the functionality of BLAS and LAPACK, and with the basic concepts in high-performance computing, such as locality, intensity, efficiency, and scalability. The research will be carried out in collaboration with international researchers from different disciplines, so good collaborative skills are required, and the applicant must be able to speak and write in English fluently.
The most important assessment criteria for the selection are scientific expertise and skills, suitability for the project, and documented ability to work in groups and to independently carry out work tasks.
A complete application should be written in English or Swedish and contain the following documents:
- A cover letter that motivates your interest in the position and that describes how your qualifications and experience are relevant to the employment (maximum 2 A4 pages with 11pt font). Please include a discussion of your experience in the development of high-quality software related to compilers/program generation.
- A curriculum vitae
- If applicable, copy of completed BSc and/or MSc thesis and other original research publications
- Copies of degree certificates, including documentation of completed academic courses and obtained grades
- Contact information for two persons willing to act as references (no reference letters)
Documents must be in Word or pdf format. Applications must be submitted electronically using the e-recruitment system of Umeå University, and be received no later than February 15, 2020. Reference number: AN 2.2.1-1941-19.
The procedure for recruitment for the position is in accordance with the Higher Education Ordinance (chapter 12, 2§) and the decision regarding the position cannot be appealed.
For additional information, please contact professor Paolo Bientinesi, firstname.lastname@example.org.
We look forward to receiving your application!
The Department of Computing Science is a dynamic environment with around 120 employees representing more than 20 countries worldwide. We conduct education and research on a broad range of topics in Computing Science. The department’s research is internationally well-established and includes basic research, method development and software development, but also research and development in various application areas. Information about the department’s research and postgraduate education can be found on our website https://www.umu.se/en/department-of-computing-science/research/