JobMonkey.com Cool Jobs
 
jobmonkey twitter
JobMonkey Home Find Jobs JobMonkey Blog Travel Information Job Tools employment opportunity

 


High Performance Computing Software Developer

An opportunity with ExxonMobil

Location:     Houston, TX
Last Updated:     Jul-21-10
Job Type:     Career
Salary:     Inquire
Hourly:     See Salary
Education Desired:     College Graduate
Number of Positions:     1
Start Date:     Inquire
End Date:     

Position Description:
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:

    * 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
    * Develop applications in Java and 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 locking, differences between virtual memory and Resident Set, buffers, etc.), OS CPU management (schedulers, policies, priorities, etc.), I/O management, and Linux kernel (i.e., debugging skills and experience in writing device drivers)
    * Linux System Administration and Performance Debugging & Optimization, including ability to use tools of the trade to debug/trace/profile programs for memory leaks, bugs, hot spots/performance problems. Fluency in RPM system and ability to create/build RPMs required
    * In-depth knowledge and experience in parallel programming, including MPI2 programming skills (with understanding of OpenMPI implementation of MPI2 in particular), as well as OpenMP and MPI-IO. Understanding different levels of parallelism and knowledge of 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, OCL, Design Patterns, Data Structures and Algorithms
    * Networks: Understanding of TCP/IP and UNIX Network Programming and Debugging Skills and tools
    * Understanding of database theory and design in general (MySQL, PostrgressSQL, and SQLite)
    * Open Source Development Skills including C/C++, FORTRAN, Python, and Perl, on Linux software development and porting skills
    * IDE (Integrated Development Environment): Eclipse, Netbeans, Matlab
    * Compilers and SDKs: GCC, Intel compilers, debuggers, and libraries, J2SDK, NASM or MASM.
    * Understanding of typical cluster composition/architecture, including knowledge of PBS-like resource managers (PBS, OpenPBS, Torque, Moab, SunGrid) and associated schedulers (PBS_SCHED, Condor, Maui, Moab). In-depth knowledge of the above and experience with PBS and scheduler configuration and how that play with MPI and the rest of the SYSTEM that is a Beowulf cluster - is highly preferred. 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, Java, Tcl/Tk, Perl, Intel Assembly, and SQL
    * Self-starter who works well in a team environment
    * Good verbal and written communication skills


Apply Directly to this Company

To apply for this position, apply directly through the company's website at ExxonMobil Employment Opportunities.

***This company prefers that all applicants come directly through their website. DO NOT apply by clicking the "Send My Profile" button above. Use the website link listed directly above to apply for this position.***



If you would like to be considered for this position and you already have created your profile, click here to login, otherwise
click here to create a Candidate Profile.


JOB SEEKER ACCOUNTS: If you create a job board account, you will be added to our free newsletter mailing list. To OPT OUT, just click the 'UNSUBSCRIBE' link in the newsletter when you receive it. You will be removed from the mailing list instantly. See Past Issues. We do not sell or rent our mailing list. For our complete privacy policy click here.