Search for more jobs
Image Processing Toolbox - GPU and Multicore CPU
Location:
US-MA-Natick (Related locations: Framingham, Worcester, Metro West, Boston, Massachusetts, New England)
Job Function:
Software Development
Industry:
Not Applicable
Travel:
None to minimal
Job Number:
9206-JPC
Job Summary
We are seeking a talented, self-motivated, and self-directed software engineer to improve the performance of the Image Processing Toolbox using general-purpose graphical processing units (GPUs) and multicore CPUs.
You will use parallel algorithms, data structures, and frameworks to make our functionality run as quickly as possible on modern processors—both CPUs and GPUs—and support our customers’ ever-growing datasets and imagery. Along the way, you will help modernize a mature codebase written in C++ and MATLAB.
You will work closely with engineers on the Image Processing Toolbox team and in other parts of the development organization to define requirements for new features, prioritize algorithms, review designs, and integrate new technology.
This job requires excellent software design and programming skills, strong interpersonal and communication skills, and parallel programming experience.
Responsibilities
- Implement and deliver parallel algorithms on GPUs.
- Implement and deliver performance enhancements that take advantage of multicore CPUs.
- Collaborate with other developers, quality engineers, usability specialists, and doc writers.
- Participate in all team activities such as planning, design discussions and reviews.
Qualifications Required / Preferred
- MS, Ph.D. + 3-5 years experience in Math, Physics, Computer Science, Engineering, or a related field
- Excellent design skills using C++ and MATLAB
- Experience with CUDA, Intel TBB, MPI, OpenCL, or other parallel technology
- Strong written and oral communication skills
- Strong understanding of parallel algorithms and computations in one or more application areas such as image or signal processing, statistics or communications