Excel-ing on the Grid
That ease of use also led AVM to gridify its Excel spreadsheets using Digipede. "If I have an analyst who wants to price up a bespoke CDO or portfolio of bespokes, he defines those in Excel and would normally run them locally on his desktop," Algreen explains. "Now he'll run them on the grid. By grid-enabling Excel, we've enabled the analysts to do real-time analysis."
Behind the scenes, developers have to identify and declare which types of objects can be operated on in parallel. Then Digipede acts as the workload manager, sending out calculations to myriad compute nodes in parallel, where the math is done many times faster than if it were running on a single machine, according to Algreen. The software then collects the information from all the machines and sends it back into Excel.
"Say we have a portfolio with 3,000 tranches and I want to run a market scenario across 30 nodes on my grid," Algreen says. One job can be created for each node, each handling 100 calculations, dividing the processing time by 30, he explains, noting that Digipede not only manages the distribution of workloads, it also can report on usage by application and by submitting department so that IT can calculate precise charge backs.
This year, according to Algreen, AVM plans to continue to add more asset classes to its grid. It's also looking to use the grid as a way to make real-time data analytics more unified across the firm. "Right now, if there are 30 analysts or traders looking at a given portfolio, if they all hit Shift-F9 at the same time and recalculate their portfolios, they might all get different answers," Algreen relates. Putting all real-time data analytics on the grid would enable faster, more consistent answers, he contends.
Like grid computing software, virtualization software also can act as a bridge between old applications and new servers. Instead of being forced to act in parallel, existing applications can be run on virtual machines or hypervisors that distribute work across multiple cores. J.P. Morgan Chase is among the financial services firms reportedly using this option.
"I talk to all the major financial services companies in New York City, and what I'm seeing is that a lot of these folks don't have the resources to rewrite these single-threaded apps to work in a multicore environment," notes Mike Rosenstein, senior manager, enterprise development, eastern region, AMD. "I'm seeing more companies take applications that historically they loaded onto a single server that barely got above 20 percent CPU utilization and loading them into a quad-core server with a hypervisor such as VMware on it, taking advantage of the increased consolidation and efficiencies associated with that approach. That seems to be a much quicker and easier solution than trying to recode or rewrite the application."
Rosenstein says that financial firms tapping virtualization typically allocate one core per application, so that 16 applications can run on one four-socket quad-core server (whereas in the past they might have run on 16 separate servers).
There is a drawback of relying on virtualization to span the old software/new server chasm, however, especially for any application that requires high performance: Hypervisors can add a level of overhead, causing further latency, Rosenstein concedes. "There are some applications that customers still prefer to run in a native environment," he relates. "But virtualization performance continues to improve, and more and more things that were originally done by the hypervisor are now being done in silicon and therefore faster."
According to Rosenstein, AMD offers virtualization optimization features on its chips, such as Rapid Virtualization Indexing, a method of mapping memory in silicon rather than in the hypervisor (read more about Rapid Virtualization on AMD's virtualization Web page). In mid-2009 the company plans to launch a new Fiorano platform that will include a virtualization performance feature called I/O Memory Management Unit that lets users tie a virtual machine to a specific input/output (I/O) device, a function formerly performed in a hypervisor.
Intel also has a few tricks up its sleeve, including products and programs designed to help developers deal with multicore chips. "As we bring out new technology, we have a challenge to make sure there's a path for it to be absorbed in industry," asserts James Reinders, chief evangelist for Intel's software development tools.
For example, Intel created an open source C++ template library, called Threaded Building Blocks (TBB), that simplifies the development of software applications that run in parallel. "It's been a big hit around the world," says Reinders, who is the author of a book on TBB. "C++, which is widely used, wasn't designed for parallelism; we try to provide all the things you need to make C++ a worthy way to write parallel programs."
And an Intel product called Parallel Studio, which is still in beta, offers compilers, libraries and analysis tools for parallelism in the C and C++ languages. Reinders says several thousand people have downloaded it already.
"There are types of parallel programming bugs that can't happen in a serial program -- they aren't necessarily more difficult or weird than programming problems people are used to, but they're different," Reinders relates, adding that Parallel Studio is intended to help people figure those out. "None of this is automatic; you need to learn to think parallel, and you need to wrap your head around how to do more than one thing at once." It's not unlike doing a project with 10 friends rather than doing it by yourself, he adds: You have to think differently about how to organize the work among the people.
But as multicore CPUs begin to take over Wall Street's desktops and data centers, this new way of thinking is becoming a prerequisite. In fact, new multi-threading-friendly languages, such as Erlang, have emerged to streamline future application development.