This is an exciting opportunity to work on the future of compiler technology for high-performance computing (HPC) with a particular focus on supporting the world's largest supercomputers as we head toward exascale. The extreme levels of parallelism available on these machines combined with their complex memory hierarchies create unique programming-model and optimization challenges. This research will explore enhancements to LLVM enabling the optimization of parallelism and hierarchical-memory constructs, and in addition, improve LLVM's capabilities to optimize loops critical to HPC applications. A passion for improving compiler technology, a keen interest in high-performance computing hardware, and a desire to advance scientific computing, will be rewarded in this position.
Ideal candidates are expected to have:
* Experience with compiler and toolchain development, including intermediate representations, machine-independent and machine-dependent optimizations, and code generation; experience with LLVM and Clang is required. * Experience interacting with, and contributing to, the open-source LLVM community is highly preferred. * Significant experience with C++, including the use of templates. * Demonstrated knowledge of instruction sets and computer architectures, including pipeline structure and hazards, and cache and memory hierarchies. * Experience with assembly languages, preferably at least one of x86_64, PowerPC, and PTX. * Demonstrated advanced knowledge of high-level compiler optimizations; experience with polyhedral loop optimizations is desirable. * Advanced knowledge of the language semantics of one of the following: C, C++, Fortran. * Experience with parallel programming; experience with the OpenMP programming model is desirable. * Experience with high-performance computing and scientific code development. * Experience with code optimization and the use of profiling and performance-monitoring tools and techniques. * Experience with Linux environments and Python. * Good software debugging skills.
In addition, candidates should show:
* Effective analytical and problem-solving skills to contribute to creative solutions to complex problems. * Good communications skills, both verbal and written. * Good collaborative skills, including the ability to work well with other labs, universities, computing centers, and industry.
As an equal employment opportunity and affirmative action employer, Argonne National Laboratory is committed to a diverse and inclusive workplace that fosters collaborative scientific discovery and innovation. In support of this commitment, Argonne encourages minorities, women, veterans and individuals with disabilities to apply for employment. Argonne considers all qualified applicants for employment without regard to age, ancestry, citizenship status, color, disability, gender, gender identity, genetic information, marital status, national origin, pregnancy, race, religion, sexual orientation, veteran status or any other characteristic protected by law.
Let your dream job find you.
Sign up to start matching with top companies. It’s fast and free.