On the programming end, our efforts include an initiative with MathWorks to develop a parallel extension to MATLAB, a language commonly used to model systems, so that it's easier to go from MATLAB to parallel programming. We're also working to fix the glitches that can occur when implementing parallel code into languages such as C++ and Java.
On the interconnection end, we're exploring ways to replace traditional high-performance networks, which are very expensive, with networks based on standards and commodity components that will offer higher performance and lower latency at lower cost.
And on the modeling end, we're trying to develop a system simulator that will help us better design parallel systems for customers, and let us quickly and accurately customize the systems to meet customers' needs.
At the same time, we're working on several application drivers, including efforts to speed computing of the price and return of certain financial instruments.
Finally, we are investigating novel system architectures based on blade components, focusing on attributes such as reliability, manageability and power efficiency for emerging enterprise applications. We are also looking at component-level support for such architectures; for example, we're working to design commodity microprocessors that are tolerant of the increasing soft and hard error rates inherent in future deep-submicron technologies.