IBM®
Skip to main content
    United States change      Terms of use
 
 
Select a scope:    
     Home      Products      Services & industry solutions      Support & downloads      My account     
alphaWorks  >  Grid computing  >  

IBM Dynamic Application Virtualization

A technology that enables computationally-intensive applications to take advantage of accelerated libraries on remote, back-end systems (including Cell Broadband Engine), reducing time to deployment and disruption to business.


Date Posted: September 27, 2007
OverviewRequirements Download FAQs Forum Reviews

Update: August 26, 2008

Updated version contains further enhancements and improvements.

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.

Also new in this update is pre-built client and server-side code for use with BLAS and LAPACK libraries as provided in the Cell Broadband Engine SDK 3.0 fixpack 3 (3.0.0-3), 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).

The latest update of IBM Dynamic Application Virtualization consists of a command line tool 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 tool component allows the library provider to test and verify the specified semantics locally before generating and deploying the server-side code. The Tooling 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.

Also new in this update is pre-built client and server-side code for use with BLAS and LAPACK libraries as provided in the Cell Broadband Engine SDK 3.0 fixpack 3 (3.0.0-3), 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 works on server-side request processing and monitoring.

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.


Cell Broadband Engine and Cell/B.E. are trademarks of Sony Computer Entertainment, Inc., in the United States, other countries, or both and are used under license therefrom.
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.
Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
IBM and BladeCenter are trademarks of IBM Corporation in the United States, other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.

Download now Download now

Related technologies

For platform(s):
32-bit xSeries (Intel Compat.), Linux - Red Hat, Linux/Intel, Other, Win32, Windows XP

For topics:
Cell Broadband Engine Architecture (CBEA), Eclipse, Grid computing, performance, virtualization


 

    About IBM Privacy Contact