High Performance Computing Software Developer
Exxon Mobil - Houston, TX

This job posting is no longer available on Exxon Mobil. Find similar jobs: Exxon Mobil jobs

The High Performance Computing (HPC) Software Developer, as part of the High Performance Computing Team, has the overall responsibility of designing and developing applications based on an internally defined architecture and best practices. This Software Developer will be located in Houston, Texas, and will report to the Manager of the High Performance Computing Organization. Primary Job Functions:

Job Description:
  • Design and develop applications based on an internally defined architecture and best practices
  • Coordinate and communicate with team members throughout the software development cycle - system analysis, design, coding, and testing
  • Test, debug and document all code
  • Assist with the creation of training materials for products being developed
  • Work with system groups to develop new processes for delivering middleware products to the production environment
  • Develop parallel HPC parallel applications using C, C++, Fortran, and MPI
  • Familiarity with UNIX shell scripts
Job Requirements:
  • M.S in Computer Science or PhD in Computer Science with considerable hands-on practical experience in HPC software development
  • Demonstrated experience in scientific computing and development
  • Knowledge of most common math and algorithms libraries used in scientific parallel computing, including BLAS/PBLAS/CBLAS, LAPACK/SCALAPACK/, BLACS, Boost, STL, and QT
  • Required programming languages skills: C++/C, Fortran77/ Fortran90/95, Python, Unix shell scripting languages (BASH primarily)
  • In-depth knowledge of UNIX-like (Linux in particular) Operating Systems, including OS memory management (paging, swapping, memory bandwidth, buffers, etc.), OS CPU management (schedulers, policies, priorities, etc.), I/O management, and Linux kernel (i.e., debugging skills)
  • Application Performance analysis, debugging & optimization, including ability to use tools of the trade to debug/trace/profile programs for memory leaks, bugs, hot spots/performance problems.
  • In-depth knowledge and experience in parallel programming, including MPI programming as well as OpenMP and MPI-IO. Understanding different levels of parallelism and knowledge of OpenACC, CUDA and OpenCL (i.e., programming on GPU) is highly desirable
  • Understanding of file systems (i.e. local FS vs. distributed, vs. parallel)
  • Source Code Management Tools & Bug Tracking Tools: SVN, CVS,
  • Formal Software Engineering and Computer Science skills and tools, including UML,Design Patterns, Data Structures and Algorithms
  • Networks: Understanding of TCP/IP and UNIX Network
  • Understanding of database theory and design in general (MySQL, PostrgressSQL, and SQLite)
  • IDE (Integrated Development Environment): Eclipse, Matlab
  • Compilers and SDKs: CCE, GCC, Intel compilers, debuggers, and libraries
  • Understanding of typical cluster composition/architecture, including knowledge of PBS-like resource managers (PBS, OpenPBS, Torque, Moab) and associated schedulers (PBS_SCHED, Condor, Maui, Moab).
  • Must be conversant in the implications of using different architectures, number of nodes, and their network interconnects
Preferred Knowledge, Skills, and Abilities:
  • Preferred programming languages skills include: HPF, Tcl/Tk, Perl, Intel Assembly, and SQL
  • Self-starter who works well in a team environment
  • Good verbal and written communication skills
ExxonMobil is an Equal Opportunity Employer Job Location Houston, TX CB*Office Location TX-Houston-North

Exxon Mobil - 20 months ago - save job - copy to clipboard
About this company
549 reviews
It's not necessarily the oil standard, but Exxon Mobil is the world's largest integrated oil company (ahead of Royal Dutch Shell and BP)....