Date Posted: September 27, 2007
Update: April 2, 2009 IBM Dynamic Application Virtualization now supports Cell SDK 3.1, zLinux, and SLES 64-bit clients.
What is IBM Dynamic Application Virtualization?
IBM® Dynamic Application Virtualization provides the ability to off-load function calls in a computationally intensive application to remote, high-performance computation nodes, thereby significantly reducing time to deployment, with minimal code changes and disruption to business.
In financial services, IBM Dynamic Application Virtualization can help developers to quickly deploy new applications that take advantage of accelerated math libraries running on new or remote hardware systems. In particular, where original applications were not written to offload calculations to remote hardware, IBM Dynamic Application Virtualization can be used to prepare the application for invoking remote libraries, thereby avoiding a re-writing or customization of the original code base.
Specifically, this technology can cut down overall time to deployment for business-critical applications that require ultra-high speed and low latency; such applications include options pricing (for example, Monte Carlo simulations) and FIX message parsing. In the past, such applications may have required significant application development time, prolonging the potential for a return on new investment, sometimes making the project cost-prohibitive. By using IBM Dynamic Application Virtualization to call the remotely deployed application functions residing on high-performance computation nodes, combined with the low-latency infrastructure provided by IBM Dynamic Application Virtualization, application calculation times can also be reduced.
The technology virtualizes application libraries by examining the library's exported functions and capturing additional semantics. Library functions, when invoked from an application, appear to be executed locally, insulating developers from the specifics of the computation nodes and reducing the effort involved in calling remote functions.
IBM Dynamic Application Virtualization supports applications written in C/C++, Java™, and Excel spreadsheets (Visual Basic Application (VBA)), and it harnesses the power of the IBM BladeCenter® QS21 with Cell Broadband Engine™. The technology promotes heterogeneous adaptation; that is, it allows client applications running on one architecture (such as Intel®/Windows® XP) to execute functions hosted on a different architecture (such as Cell Broadband Engine).
How does it work?
The latest update of IBM Dynamic Application Virtualization consists of a command line Virtualizer component (replacing the original Eclipse plug-in) that virtualizes an application library by generating the appropriate client- and server-side code from the library specification (a C .h file).
The Eclipse CDT is used to parse the customer library header file, and the user specifies additional semantics (such as array lengths). This new command line interface also improves the ease of use and input of semantics. The semantics verifier within the Virtualizer component allows the library provider to test and verify the specified semantics locally before generating and deploying the server-side code. The Virtualizer component of IBM Dynamic Application Virtualization allows the generated client-side code to be linked with the client application, it builds the server-side code, and then this server-side code is deployed to the computation nodes.
The client-side code then prepares a computational request and sends it to the service broker, which selects an available computation node, passing the function parameters to the generated server-side code on the selected node. This generated server-side code invokes the application library to perform the actual computation. On completion, the result is sent back to the client application through the client-side generated code.
Included in this update is pre-built client- and server-side code for use with BLAS and LAPACK libraries as provided in Cell Broadband Engine SDK 3.1, facilitating the quick and simple deployment and use "out of the box" of these accelerated libraries on IBM Cell Broadband Engine BladeCenters. A dedicated service mode is also provided in order to improve performance for Cell Broadband Engine nodes, allowing particular client requests to run exclusively on a dedicated node. For more details on these and other IBM Dynamic Application Virtualization features, please refer to the user guide (available on the Requirements and Download tabs).
About the technology author(s)
IBM Dynamic Application Virtualization was developed by the High Performance Computing (HPC) group in the IBM Dublin Software Lab (DSL) in conjunction with members of IBM Global Business Services (GBS) and the IBM research center in Watson.
Mark Purcell, a software architect at DSL, has led the team in the development of the application as well as in other initiatives in the DSL HPC group.
Dave Jensen, currently of GBS, developed the first prototype of the application in order to help a customer perform real-time and accurate decision making for pricing, trading, and risk analytics.
Leonard Berman, formerly of IBM T. J. Watson Research Center, worked closely with Dave Jensen on the first prototype. He then worked along with DSL to re-develop the application to provide a more efficient, low-latency, out-of-the-box solution.
Alex Tarassov, a software developer at DSL, has worked on most aspects of the technology, including infrastructural components, code generation, and the Virtualizer component, as well as enabling BLAS and LAPACK for use with IBM Dynamic Application Virtualization.
Kay Müller developed the server-side request processing in the application; he also works on other software solutions in the DSL HPC group, such as solutions for the Cell Broadband Engine.
Paul O'Donohoe of DSL has worked on development of most aspects of the technology, including the infrastructural components, code generation, and enhancing the Virtualizer component.
Robert Tucker is development lead and senior developer for the team. He has developed server-side components of IBM Dynamic Application Virtualization as well as IBM Dynamic Application Virtualization implementations and POCs for System z® (zOS and zLinux).
Brendan Maguire, a former Extreme Blue student, developed the new command line tool component and semantics verifier and works on enhancing other areas of the technology.
Cheryl-Anne Harding, also a former Extreme Blue student, works on enhancing the Virtualizer functionality and usability.
Owen Callanan works on performance analysis and improvement.
Yohan Voisin, a software developer at DSL, worked on most aspects of IBM Dynamic Application Virtualization, including Microsoft® Excel support through XLL library generation and client multi-thread support enhancement.
Sergio de Carvalho, Jr., a software developer at DSL, worked on enabling several accelerated libraries for use with IBM Dynamic Application Virtualization.
Sunil John, a software developer at DSL, worked on enabling several accelerated libraries for use with IBM Dynamic Application Virtualization.
