• Performance Tuning Analyst

    Requisition # 2019-11125
    Date Posted 7 days ago(11/7/2019 2:37 PM)
    Department
    Research Computing
    Category
    Information Technology
    Full-Time / Part-Time
    Full-Time
  • Overview

    Do you have a background in HPC, parallel programming, and vectorization? Do you enjoy the challenge of improving the performance of computational code? Do you want to help enable and advance computational research by optimizing research software? If so, Princeton University’s Research Computing Department is recruiting a Performance Tuning Analyst to join the Research Software Engineering (RSE) Group.

     

    In the RSE Group, we collectively provide computational research expertise to multiple divisions within the University. As a central team of software experts, we are focused on improving the quality, performance, and sustainability of Princeton’s computational research software. Our group is committed to building collaborative environments in which the best software engineering practices are valued, and to sharing and applying cross-disciplinary computational techniques in new and emerging areas. With this new position we are looking to expand our performance tuning expertise and capability.

     

    In this role, you will collaborate with researchers from across multiple domains to accelerate active research code. You’ll meet with research groups to understand goals and current limitations, identify code that is in need of tuning, profile the code, and identify any bottlenecks. With the results of this process, you’ll work both independently, as well as with researchers and RSEs, to develop new algorithms, increase parallelization and/or vectorization, to ultimately reduce the time to solution. In many cases, the performance improvements you’ll make will enable researchers to produce fundamentally new results.

     

    If you have a strong background in scientific computing, high performance computing, and experience making improvements to the performance of research code then you have the right skill set to make an immediate impact on multiple high-profile research projects. You will be poised to grow and expand your knowledge of current and future high-performance computing processors and accelerators and your expertise into a dynamic new set of computational research problems.

     

    This position will require you to work closely with colleagues in Research Computing as well as with faculty, student/postdoctoral researchers, and technical staff in academic departments to enable and accelerate their research computing efforts.

    Responsibilities

    • Parallelize, debug, port, benchmark and tune existing research computing codes to improve performance.
    • Develop and co-develop research computing codes with academic research groups and research software engineers.
    • Maintain knowledge of current and experimental high-performance computing hardware.
    • Maintain expertise in tuning and debugging software used in high-performance computing program development.
    • Share knowledge, expertise, and guidelines with researchers, RSEs, and other members of the research computing community.

    Qualifications

    • Scientific software development experience, including experience tuning, and optimizing code.
    • Strong programming skills, particularly in the languages used in high-performance computing applications: C/C++, FORTRAN, and Python.
    • Parallel programming experience using MPI and OpenMP.
    • Experience with programming HPC accelerators using CUDA, OpenACC, OpenMP and/or OpenCL.
    • Extensive and evolving knowledge of current and future tuning and debugging software used in high-performance computing program development. For example, DDT, TotalView, VTune, Advisor, NVProf, MAP, TAU, Perf, etc.
    • Extensive and evolving knowledge of current and future high-performance computing processors and accelerators.
    • Strong interpersonal, oral and written communication skills.
    • Experience achieving significant performance improvement on multiple software projects.
    • Ability to apply skills and knowledge to solve routine to complex problems in a Linux operating system environment.
    • Demonstrated successes contributing to a collaborative research team
    • Ability to work independently.
    • Ability to learn new systems beyond area of core knowledge.
    • Ability to communicate effectively with a diverse user base having varied levels of technical proficiencies.
    • Experience working in an academic research environment.

    Preferred Qualifications

    • Intel processor tuning experience
    • Experience developing research software outside of core domain knowledge.
    • Red Hat Enterprise Linux experience

    Education

    A bachelor's degree in computer science, engineering, sciences, or related computational field required or a Masters/Ph.D. in computer science, applied science, or other related field with a strong computational focus preferred.

     

    Princeton University is an Equal Opportunity/Affirmative Action Employer and all qualified applicants will receive consideration for employment without regard to age, race, color, religion, sex, sexual orientation, gender identity or expression, national origin, disability status, protected veteran status, or any other characteristic protected by law. EEO IS THE LAW

    Salary Grade

    AIT, 030

    Standard Weekly Hours

    36.25

    Eligible for Overtime

    No

    Benefits Eligible

    Yes

    Essential Services Personnel (see policy for detail)

    No

    Physical Capacity Exam Required

    No

    Valid Driver’s License Required

    No

    Options

    Sorry the Share function is not working properly at this moment. Please refresh the page and try again later.
    Share on your newsfeed

    Connect With Us!

    Join our Talent Network to receive updates about working at Princeton.

    Princeton University job offers are contingent upon the candidate’s successful completion of a background check, reference checks, and pre-employment screening, as applicable. The type and extent of background check, reference checks, and pre-employment screening may vary depending on the requirements and/or functions of the job and the candidate’s current employment status with Princeton University.


    If you have questions or comments regarding the iCIMS Privacy Policy or iCIMS FAQs, please contact accounts@icims.com.


    Go to our careers site.