Research Programmer - National Center for Supercomputing Applications (133960)
University of Illinois


Job Info


Job Details

Description:

University of Illinois

Research Programmer - National Center for Supercomputing Applications

EXTENDED

The National Center for Supercomputing Applications (NCSA) at the University of Illinois at Urbana-Champaign provides supercomputing and advanced digital resources for the nation's scientific enterprise. At NCSA, University of Illinois faculty, staff, students, and collaborators from around the globe use advanced digital resources to address and research grand challenges for the benefit of science and society. NCSA has been advancing one third of Fortune 50 companies for more than 30 years by bringing industry, researchers and students together to solve grand challenges at rapid speed and scale.

In this role you will provide advanced applications support for campus and national users of campus and national computing platforms to allow these users to productively achieve their research goals through effective use of the computing platforms. Advanced applications support within the scope of this position spans advanced user support activities across a range of existing and developing areas. The areas include: application optimization, parallelization, scaling and algorithm development; application of artificial intelligence techniques in scientific computing; accelerator use in applications; grid-based applications; scientific visualization; ISV applications support. You will participate in the advanced research support programs of the Illinois Research IT Research Software Collaborative Service serving the University of Illinois campus, other National Science Foundation (NSF) projects, the c3.ai Digital Transformation Institute, and/or any new projects requiring advanced research support for the larger user community. Creativity, independence, a strong work ethic, as well as coordination with project principal investigator(s) will be critical. This position will represent the group at meetings, give presentations at conferences or other venues, and contribute to publications and grant proposals.

NCSA is committed to increasing the diversity of the campus community. Candidates who have experience working with a diverse range of faculty, staff, and students, and who can contribute to the climate of inclusivity are encouraged to apply.

The University of Illinois is an Equal Opportunity, Affirmative Action employer that recruits and hires qualified candidates without regard to race, color, religion, sex, sexual orientation, gender identity, age, national origin, disability or veteran status. For more information, visit http://go.illinois.edu/EEO.

Key Responsibilities of the Assistant Research Programmer

The Assistant Research Programmer, both independently and in collaboration with team members, will perform the following:

Research Application Duties:

  • Provide general and in-depth support/guidance in multiple areas of specialization, which include the following: accelerator programming, algorithm and library analysis, evaluation, selection, and implementation; architectures; system hardware and software; system and application performance simulation and modeling; and application performance evaluation.
  • Work collaboratively with research groups to assist in enhancing performance of their codes, with a special focus on advanced cluster architectures, cloud resources and large shared memory systems, allocated through projects and programs such as NCSA strategic efforts, the Extreme Science and Engineering Discovery Environment project, Research IT Research Software Collaborative Service and the c3.ai Digital Transformation Institute.
  • Enable users to adopt new paradigms and algorithms, such as the use of artificial intelligence, machine learning and deep learning with their scientific applications, use of accelerators such as general-purpose graphical processing units (GPUs) and field-programmable gate arrays (FPGAs).
  • Use available software tools to analyze performance of workflows and codes, as well as assist in identifying and installing appropriate software libraries, and collaborating with users to use them effectively.
  • Apply, when available, domain knowledge to improve academic research applications to help researchers define and solve leading edge problems, provide consulting expertise to researchers across a variety of science and engineering domains to leverage synergies across projects, and contribute to community codes to support a broad range of communities.

Research Communication:
  • Interact with staff and users in a wide range of educational, scientific, and engineering disciplines using all manner of communication modes: in person, email, ticket system, chat/IM, and phone.
  • Contribute to user training as appropriate (i.e., author and maintain documentation and training materials, provide classroom- and/or web-based training, present seminars/tutorials at workshops, etc.).
  • Represent the group at meetings and give presentations at conferences or other venues.
  • Contribute to publications, technical reports, and documentation.
  • Serve on relevant conference publication review committees.
  • Communicate findings from research development activities above with project colleagues, including primary investigators, to be used as needed in advanced user support collaborations.

Proposal Development:
  • Contribute to benchmarking efforts, as required.
  • Participate in requirements gathering from key proposal stakeholders.
  • Contribute to proposal document writing.

Required Education, Training and Experience:
  • BA/BS degree (advanced degree preferred) in engineering, mathematics, science, computer science, or related field. Alternative degree fields will be considered if accompanied by equivalent experience.
  • At least one year of experience in programming, development, optimization, porting, and/or scaling libraries or application codes.
  • 6 months of experience researching, presenting, and/or publishing technical projects or papers in a professional or academic setting.

Preferred Experience:
  • At least one year of programming experience on high performance computers including development, optimization, porting, and/or scaling one or more parallel libraries or application codes written in Fortran, C, and/or C++, Python, and utilizing programming models such as MPI and OpenMP.
  • At least one year of experience developing codes to take advantage of specialized hardware (GPUs, Cell, SSE, etc.) using programming models such as OpenACC and CUDA.
  • At least one year of experience with data analytics paradigms including hadoop, spark, R, etc.
  • At least one year of experience with machine learning and deep learning methods, such as tensorflow and pytorch.
  • At least one year of work in one or more of the following areas: parallel algorithms, performance analysis, code tuning, performance simulation or modeling of parallel application behavior.
  • At least one year of use of high-performance computers to solve large-scale science and engineering problems.
  • At least on year of development and presentation of technical training material and web-based technical documentation.
  • At least one year using HPC tools: debuggers, performance tools, simulators.
  • Ability to clearly communicate results and their importance (verbally and in writing).
  • Ability to provide input for reports, presentations, and grant proposals.

Key Responsibilities of the Research Programmer

These include the duties of the Assistant Research Programmer with the addition of the following:

Research Application Duties:
  • Using independent discernment, design new approaches and techniques in resolving project specific problems.
  • Serve as primary point of contact for several science and engineering teams: understand project goals, computational and data requirements, benchmark and/or model application performance, tune or optimize applications for specific HPC platforms.

Research Communication:
  • Publish and present results of research and development at national and international conferences.

Required Education and Experience:

These include the requirements of the Assistant Research Programmer with the addition of the following:

  • At least three years of experience in programming, development, optimization, porting, and/or scaling libraries or application codes.

Preferred Experience:

These include the preferred experience of the Assistant Research Programmer with the addition of the following:

  • At least three years of programming experience on high performance computers including development, optimization, porting, and/or scaling one or more parallel libraries or application codes written in Fortran, C, and/or C++, Python, and utilizing programming models such as MPI and OpenMP.
  • At least three years developing codes to take advantage of specialized hardware (GPUs, Cell, SSE, etc.) using programming models such as OpenACC and CUDA.
  • At least three years using data analytics paradigms including hadoop, spark, R, etc.
  • At least three years of experience with machine learning and deep learning methods, such as tensorflow and pytorch.
  • At least three years working in one or more of the following areas: parallel algorithms, performance analysis, code tuning, performance simulation or modeling of parallel application behavior.
  • At least three years of using high-performance computers to solve large-scale science and engineering problems.
  • At least three years of developing and presenting technical training material and web-based technical documentation.
  • At least three years using HPC tools: debuggers, performance tools, simulators.

Key Responsibilities of the Senior Research Programmer

These include the duties of the Research Programmer with the addition of the following:

Research Application Duties:
  • Mentor junior team members on advanced research computing, including novel techniques and methods in the field.

Proposal Development:
  • Author funding proposals related to primary responsibilities. This can include system operation and center best-practices related activities.

Required Education and Experience:

These include the requirements of the Research Programmer with the addition of the following:

  • At least five years of experience in programming, development, optimization, porting, and/or scaling libraries or application codes.

Preferred Experience:

These include the preferred experience of the Research Programmer with the addition of the following:

  • At least five years programming experience on high performance computers including development, optimization, porting, and/or scaling one or more parallel libraries or application codes written in Fortran, C, and/or C++, Python, and utilizing programming models such as MPI and OpenMP.
  • At least five years' experience developing codes to take advantage of specialized hardware (GPUs, Cell, SSE, etc.) using programming models such as OpenACC and CUDA.
  • At least five years' experience with data analytics paradigms including hadoop, spark, R, etc.
  • At least five years' experience with machine learning and deep learning methods, such as tensorflow and pytorch.
  • At least five years working in one or more of the following areas: parallel algorithms, performance analysis, code tuning, performance simulation or modeling of parallel application behavior.
  • At least five years of using high-performance computers to solve large-scale science and engineering problems.
  • At least five years developing and presenting technical training material and web-based technical documentation.
  • At least five years using HPC tools: debuggers, performance tools, simulators.

Key Responsibilities of the Lead Research Programmer

These include the duties of the Senior Research Programmer with the addition of the following:

Research Application Duties:
  • Technical lead for one or more advanced research computing collaborations.
  • Technical lead for process improvements.

Research Communication:
  • Lead development of publications, technical reports, and documentation.

Proposal Development:
  • Lead and contribute to benchmarking efforts, as required.

Required Education and Experience:

These include the requirements of the Senior Research Programmer with the addition of the following:

  • At least seven years of experience in programming, development, optimization, porting, and/or scaling libraries or application codes.

Preferred Experience:

These include the preferred experience of the Senior Research Programmer with the addition of the following:

  • At least seven years of programming experience on high performance computers including development, optimization, porting, and/or scaling one or more parallel libraries or application codes written in Fortran, C, and/or C++, Python, and utilizing programming models such as MPI and OpenMP.
  • At least seven years developing codes to take advantage of specialized hardware (GPUs, Cell, SSE, etc.) using programming models such as OpenACC and CUDA.
  • At least seven years' experience with data analytics paradigms including hadoop, spark, R, etc.
  • At least seven years' experience with machine learning and deep learning methods, such as tensorflow and pytorch.
  • At least seven years working in one or more of the following areas: parallel algorithms, performance analysis, code tuning, performance simulation or modeling of parallel application behavior.
  • At least seven years of using high-performance computers to solve large-scale science and engineering problems.
  • At least seven years developing and presenting technical training material and web-based technical documentation.
  • At least seven years using HPC tools: debuggers, performance tools, simulators.

This is a regular academic professional position at NCSA and is an annually renewable, 12/12, 100%-time appointment with regular University benefits. Salary is commensurate with experience and start date will be as soon as possible after the close date of the search. Applicants must possess required education and experience by start date of position. Interviews and hires may occur before the closing date; however, all applications received by the closing date will receive full consideration. For further information regarding our application procedures, you may visit http://www.ncsa.illinois.edu or email fijalkov@illinois.edu.

To apply, please create your candidate profile at http://jobs.illinois.edu and upload your cover letter and CV/resume by the close date (0

(05/24/2021). Contact information for three references must be included on the application. For full consideration, candidates must complete the Hiretouch application process by the above date. The University of Illinois conducts criminal background checks on all job candidates upon acceptance of a contingent offer.

The University of Illinois conducts criminal background checks on all job candidates upon acceptance of a contingent offer. As a qualifying federal contractor, the University of Illinois System uses E-Verify to verify employment eligibility.

College Name or Administrative Unit:

OVCRI

Category:

6-Research

Title:

Research Programmer - National Center for Supercomputing Applications (133960)

Open Date:

08/24/2020

Close Date:

05/24/2021

Organization Name:

Supercomputing Applications



More jobs for you in Education and Training


Education and Training

Posted 30 minutes ago

ACT, Inc
Education and Training

Posted 30 minutes ago

ACT, Inc
Education and Training

Posted 26 minutes ago

ACT, Inc
View Education and Training jobs »

New post from our employment blog

Share this job with the community

Click a community link below, and then social share the Research Programmer - National Center for Supercomputing Applications (133960) job.


African American Job Search Logo
Asian Job Search Logo
Disabled Job Seekers Logo
Hispanic Job Exchange Logo
LGBT Job Search Logo
Seniors to Work Logo
US Diversity Job Search Logo
Veteran Job Center Logo