GPU Based Financial Calculations with Java and Cuda

Orginally from http://www.clustertech.com/products/ct-fl.jsp

The BGM Libor Market Model is widely used for the pricing of interest rate derivatives such as caps, floors and swaptions.

In this example we use a java based BGM model has three factors which correspond to parallel shift, pivoting and butterfly movements of a forward curve. Under this model, each forward rate is modelled by a lognormal process. The volatility vector function is also defined in our implementation. From these parameters we generate numerous interest-rate paths for Monte Carlo simulation.

Benchmark:
CPU testing environment

Intel(R) Xeon(R) CPU E5520 @ 2.27GHz
Compiled with Intel Compiler ver. 11, with flags -O3 –xT (hence, auto-vectorization is enabled)
Single-threaded and multi-threaded versions with 8 threads are run and benchmarked against
GPU testing environment
NVIDIA GT200 with Tesla C1060 GPU.

Our CPU implementation is also highly optimized to yield a fair result on the speedup factor. The performances of CPU single-threaded, CPU multi-threaded (8 threads), and GPU version were tested by generating various number of paths:

2010/05/26 05:43 · Richard Donovan

Distributed Trading Platform with JavaSpaces - Part II

For years, Java has provided a model for designing blackboard systems known as JavaSpaces. More recently, distributed caching has become popular and can provide similar capabilities to those of JavaSpaces. Let's examine two popular distributed caching approaches for our blackboard system:

  • caching using memcached
  • Read/write caching, also known as an In-Memory Data Grid (IMDG)

→ Read more...

2010/05/22 06:39 · Richard Donovan

Distributed Trading Platform with JavaSpaces - Part I

In this entry we provide some details regarding a some previous work on a high scalable high performance system that used a JavaSpaces implementation.

For some time Java has provided a model for designing Blackboard Pattern systems known as JavaSpaces.
In this entry we discuss a Javaspaces implementation. In part II we also consider more recently, distributed caching has become popular and can provide similar capabilities

→ Read more...

2010/05/21 15:43 · Richard Donovan