The exciting part for users: More performance, lots of it
From today’s view we would be already happy, if the promise of closing common security holes would come true. But deep in Singularity, there’s a new idea of increasing system performance and surely hope that Microsoft isn’t kidding about this one: Singularity goes multithreading-crazy.
It isn’t surprising that the Singularity kernel and SIPs are multi-threaded and it apparently can scale much further than to the 16 CPU cores, which are currently viewed as the limit where the integration of more cores will make more sense than optimizing the code-base, instructions and extensions. The big news about Singularity really is that Microsoft wants the OS to support heterogeneous microprocessors - microprocessors that not only integrate classic CPUs, but other processing cores such as GPUs.
"Thanks to physical constraints, it is easier to replicate processors on a die than to increase processor speed. With vendors already demonstrating prototype chips with 80 processing cores, we have begun experiments in support for so-called many-core systems in Singularity. These experiments build on the SMP support already provided by the Singularity kernel," the developers wrote in a research paper. Singularity in fact can specialize many-core processors by dedicating them to specific SIPs, which should result in a greater "dynamic specialization" of the processor, thereby enhancing its performance.
Even more interesting, Singularity is the first operating system we hear of that explores the opportunity of exploiting the massive floating point horsepower of graphics chips. AMD and Nvidia have begun pitching their Tesla and FireStream stream processor cards as integral parts of deskside supercomputers, which offer about 20 times the speed of a common dual-core CPU in compute-intensive applications, such as financial modeling or scientific simulations. This area is probably the most significant untapped horsepower resource in the modern computing world: the home-user is locked out of this technology since there are no mainstream applications that take advantage of "general purpose GPU" computing.
Both AMD and Nvidia limit their stream processor products for high-margin products at this time. AMD has shown some experimental consumer GPGPU applications, but is far from offering such a product. Nvidia’s CEO Jen-Hsun Huang told TG Daily that his company would only take Tesla-like consumer products into the mainstream, if Microsoft would provide a Windows API for it.
It appears that Singularity will offer such an API. In their research paper, Hunt and Larus write: "Within Singularity, we see an opportunity to pursue a new course for programmable I/O processors. We agree (...) that programmable I/O processors are here to stay due to the better performance-per-watt of specialized processors. (...) We are exploring the hypothesis that programmable I/O processors should become first-class entities to OS scheduling and compute abstractions."
The developers believe that the architecture of Singularity is uniquely positioned to enable this feature: SIPs minimize the need for elaborate processor features on I/O cores, contract-based channels explicitly define the communication between a SIP on an I/O processor and other SIPs, the technology’s memory isolation invariant removes the need for shared memory between SIPs on co-processors and CPUs, the small, process-local ABI isolates operations that may be safely implemented locally from services which must involve other SIPs and Singularity packages manifest-based programs in the abstract MSIL format, which can be converted to any I/O processor’s instruction set.
"Our hypothesis is that Singularity binaries can target legacy-free cores on many-core CPUs as easily as legacy-free cores on programmable I/O processors," the developers said.
If the Hunt and Larus are right, Singularity could become an extremely flexible operating system that could take advantage of many of the hardware ideas floating around today. Of course, and you may not be surprised, there’s a catch.
The software is not only far from being usable for the average PC user, it is not even intended to make its way to the desktop. Instead, Singularity is described as "a laboratory for experimentation in new design" and not as a "design solution."
"While we like to think our current code base represents a significant step forward from prior work, we do not see it as an ideal system or an end in itself. A research prototype such as Singularity is intentionally a work in progress; it is a laboratory in which we continue to explore implementations and trade-offs," the developers wrote.