Position: Research Programmer 4683
This position in the Strategic Applications Group at the Pittsburgh Supercomputing Center (PSC) focuses on the hardware-software interface, especially as it pertains to new and future technologies, to increase the scientific productivity of PSC resources by maximizing performance of applications and systems. Tasks include porting and optimizing complex scientific applications for multicore processors, advanced interconnection networks, parallel filesystems, and other novel or emerging architectures; devising and implementing highly efficient algorithms and libraries for advanced architectures; performance analysis, modeling, and tools; participating on application development teams working in diverse fields; researching novel programming models and languages; and developing training materials relevant to the aforementioned activities.
Bachelor's degree in a computational science, engineering, or computer science, or equivalent combination of training and experience; Two or more years of work experience with optimizing complex applications for advanced processors; Thorough understanding of commodity processor architectures (x86, IA64), instruction sets, and interpretation of hardware performance counters. Strong programming skills in C, C++, or Fortran. Knowledge of computer architecture, operating systems, and parallel programming. Good technical writing, code documentation, and public presentation skills; Normally sedentary position with some mobility; e.g., able to travel to other locations, able to present a lecture, able to stay at a terminal and use a keyboard for extended periods; may require some bending, stretching, pushing as well as lifting of components or equipment; Usual office setting. There is frequent close contact with CRT for long periods of time; Ability to work under pressure in a rapidly changing technological environment where there are frequent interruptions; ability to develop one-one-one working relationships with researchers at remote sites; ability to deal with people from a variety of cultures who may not be native speakers of English; ability to deal calmly and courteously with people who may be upset, frustrated or irritable; ability to pay close attention to detail, meet inflexible deadlines, remain calm during difficult situations; Week-end and evening hours may be required; some travel may be required.
Master's degree or Ph.D. in a computational science, engineering, computer science, or equivalent combination of training and experience; Experience in an academic setting as well as some supervisory experience; work experience with optimizing complex scientific applications for multicore processors; some teaching experience; Parallel programming using MPI, OpenMP, PGAS languages, or threads, particularly as applied to high-performance interconnection networks. Experience with accelerator technologies such as GPGPUs, FPGAs, or the Cell Broadband Engine. Experience in performance analysis and modeling. Knowledge of OS internals, such as the Linux kernel. Knowledge of parallel filesystems; experience with devising data-intensive applications and/or large databases.
To apply submit your credentials online at http://hr.web.cmu.edu/ prospective. No applications will be accepted via email or snail mail.
Carnegie Mellon University is an Affirmative Action/Equal Opportunity employer.