OPLib is an open source library for high performance pricing applications.OPLib is divided into several sections:
OPC: a low level core library written in C providing interfaces to the Intel MKL and Monte Carlo generators
OPCUDA: a low level core library written in CUDA implementing higher level BLAS extensions and Monte Carlo scenario generators
OPMODEL: an intermediate level pricing library written in C# providing services to plan out and execute kernel valuations and Monte Carlo simulations
BENCHMARKS: written in C# and comprising a set of consolve and GUI driven benchmarks for the core routines and pricing models
TESTS: written in C# to test library routines
PLATFORMS: 32 and 64 bit Windows under Visual Studio, 32 and 64 bit Linux under Mono . I would welcome volunteers for a port of the intermediate level library to native C++, Java, Python and other development environments. I would also welcome volunteers for a port of the core libraries to OpenCL, ATLAS and the public domain version of SFMT.
KNOWN BUGS : the benchmark routines gmt.exe, glv.exe and gsv.exe throw a DLL not found exception under 64 bit Linux perhaps because of a Mono bug. They work correctly otherwise under 32 bit Linux and under 32-64 bit Windows. Any help to fix this bug would be welcome.
CREDITS: The CUDA code for SGEMM4, SGEMV4 and SSQMM were inspired by Vasily Volkov's implementation of SGEMM. The library makes use of several variations of the multi-threaded Mersenne Twister algorithm of period 2203 due to Makoto Matsumoto.The Monte Carlo routine in SMC includes code by Victor Podlozhnyuk included in the CUDA SDK. CPU-side BLAS and random number generators link to primitives in the Intel Math Kernel Libraries.
Bug reports and code have been contributed by Guy Taylor.
LICENSE:Libraries are licensed under GPL as free software. It can be redistributed it and/or modified under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
|