Senior Software Engineer
Company: The MathWorks, Inc.
Location: Natick, Massachusetts
Posted on: April 5, 2021
Job Description:
Working under the direction of the Manager or Senior Team Lead,
will be responsible for designing, developing and testing
sophisticated software; designing, architecting, implementing and
testing parallel compiler technology that enables code generation
for highly parallel algorithms, computer vision, and deep learning
from MATLAB and Simulink to run on high-performance parallel
computing platforms -- multi-core CPUs, GPUs, and accelerators;
participating in all phases of planning, developing, and testing of
compiler technology; developing partitioning, scheduling and memory
optimization algorithms for parallelization and GPU technology;
designing and implementing software architecture using C++ and
MATLAB; and testing and integrating features in to Simulink and
code generation products. Education and Experience: Masters degree (or foreign education equivalent) in Engineering,
Computer Science, or Computer Science and Engineering and two (2)
years of experience in job offered or two (2) years of experience
designing, maintaining, and optimizing compiler workflows and
developing CUDA code for deployment to GPU architectures. OR Ph.D. degree (or foreign education equivalent) in Engineering,
Computer Science, or Computer Science and Engineering and no
experience. OR Bachelors degree (or foreign education equivalent) in
Engineering, Computer Science, or Computer Science and Engineering
and six (6) years of experience in job offered or six (6) years of
experience designing, maintaining, and optimizing compiler
workflows and developing CUDA code for deployment to GPU
architectures. Special Requirements: Demonstrated expertise developing object oriented MATLAB
algorithms for code generation using coder language constructs;
performing performance optimization for deployment to GPU hardware
platforms; and writing partitioning, scheduling and memory
optimization algorithms. Demonstrated expertise writing algorithms in CUDA C/C++;
debugging deployed code using CUDA GDB; applying computer
architecture, GPU architecture and GPU computing in performance
optimization; and performing software development for deployment on
high performance heterogeneous parallel computing environments
(CPU/GPU) -- NVIDIA desktop, embedded GPUs, and AMD GPUs -- using
CUDA and OpenCL. Demonstrated expertise in compiler workflow optimization and
code generation optimization using Intermediate Representation (IR)
construction; and performing IR optimization using data flow
analysis, register allocation, instruction scheduling, cache
locality optimization, loop optimization and dependence
analysis. Demonstrated expertise deploying C, C++, MATLAB, and Simulink
algorithms on CPU to embedded GPU high-performance computing
platform; and performing hardware system setup and
configuration. [Experience and/or expertise may be gained during Doctoral
program.] For the position listed above, interested candidates may search
by job code 25316 for specific job details and requirements and
apply online on the Careers Page at
https://www.mathworks.com/company/jobs/opportunities.html
Keywords: The MathWorks, Inc., Plymouth , Senior Software Engineer, Computer , Natick, Massachusetts, Massachusetts