Beyond the Multicore Dilemma
June 30, 2008
While financial services firms have been dealing with very challenging market conditions, one certainty is that growth will return in both the volume and the complexity of financial transactions. Existing and new financial instruments will continue to tax the underlying software applications that drive the business; they will be required to support dramatically higher business volume, run faster, support more users and process more transactions.
Traditionally, financial services firms could count on advancements in faster and faster processors to meet growing performance goals. But enterprises can no longer rely on this tactic after the traditional doubling of processing power ended around 2004. Additional computer hardware performance now comes in the form of additional "cores" in each central processing unit (CPU), so significant improvements in parallel computing will be required to drive scalability for the next generation of business applications.
The present and future of hardware technology is based on multicore--and soon many-core--architectures. These architectures enable greater computing capacity and application throughput in less space and with less power and can eliminate the need to buy more hardware and software in an effort to keep pace with user demands. As a result, multicore architectures are poised to help securities firms meet--and exceed--expanding business requirements and do so within existing IT budgets.
But herein lies the dilemma affecting financial services firms: Many existing business applications are not multithreaded and can't take full advantage of multicore architectures. Just adding more cores won't materially affect performance in single-threaded applications. In fact, applications may even run slower due to reduced clock speeds in multicore CPUs. And applications that were written for multithreading were traditionally written for a relatively small number of threads--many of these may also need retooling as the number of cores increases over the next few years.
Even managed programming language frameworks like Java and .NET are faced with this issue. An application written in Java or .NET will typically get some automatic performance increase with the addition of the second core but essentially nothing beyond that. This is because much of the acceleration is due to the offloading of the virtual machine itself to the second core.
The owners of key business applications must learn to take advantage of multiple cores in their programs and "teach" their key systems to execute tasks simultaneously, also known as parallel computing. And firms should not limit their thinking to trading and risk analysis applications where grid computing has added power over the last few years--they should include applications that traditionally don't make extensive use of parallel computing, like overnight batch processing, report generation, settlement and fraud detection. If firms are primed to take advantage of the move to parallel computing, it can lead to significant increases in performance and scalability and a more flexible computing infrastructure to meet changing business conditions.
Multithreading, Concurrency Challenges
But financial services firms cannot simply migrate to multicore the way they have with other technology shifts. IT departments have significant investments and expertise in all of the mainstream languages--e.g. Java, .NET and C++--but these languages are not inherently built to run parallel and require software engineering effort to do so. Intel and other major vendors are investing in research intended to lead to the next generation of programming environments, but for the near future securities firms must find a way to migrate their existing systems to multicore environments.






