- Search for JobsSearch for Jobs
- Browse for JobsBrowse for Jobs
- Create a ResumeCreate a Resume
- Company DirectoryCompany Directory
Software Engineer - Graph Analytics, High Performance Computing
-
Job CodeJR0227086
-
Jobs Rated8th
We are looking for individuals who are interested in developing software for novel, advanced computer architectures, whose software stack spans from low-level runtimes and libraries in C/C++ to high level APIs that are needed for data science frameworks and toolkits. There are opportunities for development at each level of this extensive software stack, on massive high-end FPGAs...and on actual, prototype hardware.
This is a position with the end goal being production-quality, high-performance software that demonstrates the novelty and performance of the hardware architecture developed. Software development begins pre-silicon and access to FPGA emulation hardware, as well as functional and performance simulators, allows development of the software in parallel with hardware milestones. Experimentation, product innovation, and publication is encouraged and there are opportunities to collaborate with research partners to develop ideas and translate them into the product.
The computing area of Graph
Analytics, particularly with huge (terabytes and beyond) data sets
as well as data sets that change rapidly in real-time, is quickly
growing in use in industry and government applications, such as
very large-scale relational databases, threat identification, and
social network analytics. Current, virtually ubiquitous Artificial
Intelligence and Machine Learning applications likewise rely on
sparse-graph processing with ever-increasing training data set
sizes.
The Extreme Scale Computing (ESC) team
develops novel, advanced architectures to handle fast processing of
huge graphs. The group develops its own software and hardware
in-house, with software development spanning all the levels of a
full software stack. The software stack is intended for eventual
mass adoption through open-source data science frameworks and
through Intel Corp.'s oneAPI alongside deployments of its hardware.
It is an organization with a strong technical atmosphere,
innovation, friendly teamwork spirit, and engineers with diverse
backgrounds. And as the hardware is also still in development,
there is a real opportunity at every level of software development
work to make a significant, tangible impact on the final hardware
product.
You will work on software development
and optimizations by analyzing software framework implementations,
such as PyTorch and TensorFlow, as well as graph analytic
algorithms and workloads used in current industry applications such
as social networks and graph databases, to identify performance
bottlenecks and optimization opportunities. You will perform these
analyses on existing state-of-the-art platforms as well as the
novel, prototype HW architecture to both identify and develop and
test optimizations. There will be opportunities for contributing
optimizations and features directly back to open-source frameworks,
libraries, and other projects. In addition, you will contribute to
the design and development of the software stack's top-most level,
the API, which will be used by future third-party frameworks and
workflows. A part of this API work will also involve collaboration
with Intel oneAPI teams for inclusion into future releases of
oneAPI.
An ideal candidate would exhibit
multiple of the following traits and
abilities:
- Ability to work in a dynamic and team-oriented environment on a rapidly evolving (vs established) product, with team members spread across varied geographical locations, both in the U.S. and internationally
- Ability to self-motivate, self-assess, and determine useful paths of work with relative autonomy, with a positive Can-Do attitude
- Excellent written and oral communication skills in English (other languages are a plus)
- Deep, driven interest and passion for optimization and performance at all layers of a software stack
- Enthusiasm for hardware and a curiosity about how software and hardware interoperate
Qualifications
Minimum
qualifications are required to be initially considered for this
position. Preferred qualifications are in addition to the minimum
requirements and are considered a plus factor in identifying top
candidates.
Minimum
Qualifications:
- B.Sc. in Computer Science, Computer Engineering, or comparable engineering major/discipline concentrated on software development with 5 years of hands-on software development experience, or
- M.Sc. in Computer Science, Computer Engineering, or comparable engineering major/discipline concentrated on software development with 3 years of experience.
In addition, each of the following must have been encountered in a significant amount (at least 6 months' time or at least 1 significant project/work product):
- Software engineering and software project planning exposure (Development methodology, collaborative processes, etc.), especially the philosophy and design concepts around layered software architecture (software stacks) and Application Programming Interfaces (API)
- Use of software toolchains, compilers, and debugging tools on a Linux/Unix-like system
- Software development work at the hardware/software interface, firmware, or runtime levels on any modern RISC, ARM, or x86 platform
- Experience debugging multi-threaded applications and drivers on Linux/Unix-like system
- Solid knowledge (but not necessarily domain mastery) of computer architecture including vector processors, multi-core and hyper-threading processors, and memory hierarchies
- Solid knowledge of graph algorithms relevant to generic graph operations, as well as those applicable to AI/ML
- Basic performance-analysis-of-systems skills, and basic statistics knowledge
Preferred
Qualifications:
- Expertise (domain mastery) of low-level programming and debugging of multi-core processing units and their peripherals (i.e., bare-metal programming)
- Experience in modifying and extending the GDB and/or LLDB debuggers and GCC and/or LLVM compilers
- Previous work with performance analysis, specifically on GPUs and Intel CPUs
- Prior study of computer implementations of linear algebra operations and matrix math
- Hands-on exposure to High-Perf. Computing (HPC)/distributed computing environments and applications
- Prior development or optimization of Deep Learning models, especially low precision models (knowledge of current frameworks for ML/DL is a plus)
- Prior hands-on development of a commercially released (or widely adopted open source) API
Requirements listed
would be obtained through a combination of industry relevant job
experience, internship experiences and or
schoolwork/classes/research.
Enable amazing computing experiences with Intel Software continues to shape the way people think about computing across CPU, GPU, and FPGA architectures. Get your hands on new technology and collaborate with some of the smartest people in the business. Our developers and software engineers work in all software layers, across multiple operating systems and platforms to enable cutting-edge solutions. Ready to solve some of the most complex software challenges? Explore an impactful and innovative career in Software.
Other
Locations
US, California,
Folsom;US, California, San Diego;US, California, Santa Clara;US,
Georgia, Atlanta;Virtual
US
Intel
strongly encourages employees to be vaccinated against COVID-19.
Intel aligns to federal, state, and local laws and as a contractor
to the U.S. Government is subject to government mandates that may
be issued. Intel policies for COVID-19 including guidance about
testing and vaccination are subject to change over
time.
Posting
Statement
All qualified
applicants will receive consideration for employment without regard
to race, color, religion, religious creed, sex, national origin,
ancestry, age, physical or mental disability, medical condition,
genetic information, military and veteran status, marital status,
pregnancy, gender, gender expression, gender identity, sexual
orientation, or any other characteristic protected by local law,
regulation, or ordinance.
Annual Salary
Range for jobs which could be performed in US,
Colorado:
$113,500.00-$170,120.00
Benefits:
We offer a total compensation package that ranks among the best in the industry. It consists of competitive pay, stock, bonuses, and benefit programs. Find more information about our Amazing Benefits here
Work Model for this Role
This role will be eligible for our hybrid work model which allows employees to split their time between working on-site at their assigned Intel site and off-site.
Jobs Rated Reports for Software Engineer
Before you go...
Our free job seeker tools include alerts for new jobs, saving your favorites, optimized job matching, and more! Just enter your email below.