|
CPU's are going many-core: Today we have 2 and 4 core main processors and
there are no technical barriers to scaling to dozens of cores and hundreds of
hardware threads. PCs also have specialized add-on processing units like GPUs
and audio processors, and these and other sorts of accelerators are likely to
make their way onto the main processor. This is the transformation to many-
core computing, and it will deliver teraflops to the desktop.
Many-core processors will be in desktop PCs in a year or two, but will only
light up for programs and operating systems that can exploit them. To make the
most of these machines we will need a corresponding revolution in operating
system, languages, compilers, libraries and applications. Because of the
breadth of the changes needed, the many-core virtual team has been formed with
the sponsorship of Craig Mundie. The virtual team has efforts in DevDiv,
Windows, and Technology Incubation. Our mission is to lead Microsoft and the
industry in this revolution, and our vision is to empower developers to
deliver teraflop computing to our customers.
The Technology Incubation team’s part of the project is twofold: First we have
to develop and adapt system software that can manage many-core processors and
efficiently support fine-grained and scalable parallel programs. There are
many interesting and important programs: For example, at the lowest level,
schedulers and memory managers have mostly been optimized for resource sharing
(time-sliced scheduling, and virtual memory), but now we are moving to an era
of relative hardware abundance, and new mechanisms and policies are needed. At
the highest level, Win32 is “concurrency-unfriendly” with lots of thread-
affinity and other sorts of parallel-programming problems that make it hard to
write scalable (or even correct) parallel programs. This legacy will become a
huge strategic problem if we can’t provide alternatives or mitigations.
The second part of our mission is to guide the evolution of the hardware. The
microprocessor is undergoing a transformation to a “data center on a chip,”
and new functionality needs to be designed in careful coordination with the
software that will run on it. We are working with hardware partners to manage
this transformation. Our responsibility is to innovate and to develop software
prototypes that inform the correct design, and ultimately demonstrate the
effectiveness of new features.
We are looking for a software developer with experience and deep understanding
of the software and hardware challenges to help lead Microsoft and the rest of
the industry through the many-core transformation. Current code-bases include
Windows, Viridian, and Singularity. Successful candidates should have 5+ years
experience of operating systems, virtualization technology, driver development
or HPC/parallel programming. An MS or Ph.D. and/or a publication history in
these or related fields would be highly desirable.
|