Here is the latest news from SciComp on SciFinance®, the complete solution that automates coding and delivers source code (C/C++) for derivatives pricing and risk models. For more information on SciFinance, contact SciComp sales.
Sign-up today for our upcoming webinar with NVIDIA:
Automatic GPU Computing for Derivative Pricing Models
Tuesday, November 17th,
11 am EDT.
Download our latest document, featuring in-depth information on GPU-enabling pricing and risk models.
New SciCommodity Catalog and expanded SciMC Examples Catalog
In this webinar, co-sponsored with NVIDIA Corporation and Dell, Inc., you will learn about:
Click here to sign up for the webinar.
Topics covered include:
The SciFinance Examples Catalogs provide hundreds of pricing and risk model specifications for all asset classes. The new SciCommodity Catalog features commodity-specific examples (contact your sales representative for more information on commodity support in SciFinance).
The new SciCommodity Catalog includes Monte Carlo and PDE examples for:
In addition, the SciMC catalog has been upgraded with the addition of many new examples and revision of existing ones.
The SciMC Catalog includes new or revised Monte Carlo examples for:
Jump models are now implemented in MC codes by computing the Poisson distributed number of jumps that occur in each time step. The syntax for specifying SDEs with jumps in ASPEN is unchanged.
NOTE: This new method is now the default. To get the previous default method, (computing Poisson distributed jump times and inserting these into the time step sequence), specify SimulateJumpTimes[True]; The default method was changed to facilitate efficient parallel code implementations. Jump models now work in both SciGPU and SciOpenMP parallel code.
A MultiStream feature had been added to random number generators ranALFG and ranWH4CLCG. These generators may now have sequence splitting in serial code:
These new arguments allow you to create serial MC code in which the pseudo-random number sequence is split identically as in in either OpenMP or CUDA parallel code. Thus serial and parallel code will have identical results, rather than just agreement within the MC variance. (The new arguments are ignored in CUDA version since CUDA codes always have multiple streams.)
AsArray[<ArrayName>] is now an optional argument to Output. When there are multiple scalar values of the same type, they are assigned in statement order to the elements of <ArrayName>. For example, the specification
Output[{V, der[V,S], der[V,{S,2}]}, S=Spot, AsArray[atSpot], "Results.out"];
will output three scalars as an array. The output file is unchanged for executables running from the command line and producing output files. But for wrapped codes, e.g. ExcelWrapper, there will be a single function call returning the array <ArrayName> of outputs rather than individual function calls each producing a single scalar output.
Milstein74; This discretization scheme is due to Milstein (1974). This is the original, simpler version of the Milstein family of discretization methods. It has both weak and strong order 1.0 of convergence. It creates simpler code than the current command Milstein, which has strong and weak convergence order of 2.0. Milstein74 may be useful for high dimensional systems for which Milstein may require excessive computations. ExactOU; An exact discretization for Orenstein-Uhlenbeck processes
This new statement lets you build up a correlation matrix in Monte Carlo codes from component sub-matrices. For example, in a basket equity structure in which we model the dynamics of each of the nD underlying stock as a Heston stochastic volatility process:
...
SDE[delta[S] == (r-q) S delta[t] + Sqrt[v] S dW1;
delta[v] == kappa(theta-v) delta[t] + sigma Sqrt[v] dW2];
StdWiener[{dW1,dW2}];
Vector[{S,q,dW1,SRef,dW2,kappa,theta,sigma}, {iD,1,nD}];
ReadArray[RhoSS, {iD,1,nD},{jD,1,nD}, "RhoSS.dat"];
ReadArray[RhoSv, {iD,1,nD},{jD,1,nD}, "RhoSv.dat"];
ReadArray[Rhovv, {iD,1,nD},{jD,1,nD}, "Rhovv.dat"];
BuildCorrelationMatrix[rho,{{RhoSS,RhoSv},{Rhovv}}];
...
We supply three correlation sub-matrices: RhoSS, correlations of S_i and S_j; RhoSv, the correlations S_i and v_j; and Rhovv the correlations of v_i and V_j. The resulting global correlation matrix rho is (2*nD) x (2*nD). The syntax of BuildCorrelationMatrix is similar to that of CorrelationElements, except that the components may now themselves be matrices. The sub-matrices need not be identical in shape as above, but the dimensions must be consistent with their position in the global correlation matrix, which, once constituted, must be symmetric.
ArraySum, ArrayMax, and ArrayMin now take an optional second argument that is a list of index names over which to compute the value. For example, given array InA dimensioned by i and j, whereas the specification
OutA = ArraySum[InA]makes OutA a scalar out that is the sum over the entire array,
OutA = ArraySum[InA, {j}]
makes OutA an array dimensioned by i, generating the code for (i=1; i<=iN; i++) {
asum = 0.;
for (j=1; j<=jN; j++) {
asum = asum + InA[i][j];
}
OutA[i] = asum;
}
The TargetFileExtensions specification statement determines the extensions of files containing the target code, such as ".c" or ".hpp". If nothing is specified, the extensions will default to .cpp and .h when the target language is C++, or to .c and .h when the target language is ansiC or msC. Examples:
TargetFileExtensions[{".hpp",".cc"}];
TargetFileExtensions[{".h",".cpp"}];
TargetFileExtensions[{".h",".cxx"}];
Syntax: TargetFileExtensions[{<h-file-ext>,<c-file-ext>}];
SciComp Inc., 5806 Mesa Drive
Suite 250, Austin, TX 78731
512-451-1050
Get more information on SciComp products
SciFinance automates pricing and risk model development
SciGPU™ achieves blazing fast performance with CUDA and OpenMP
SciCalibrator™ provides pricing model calibration
A resource site with examples, documentation and more...
Watch the SciFinance Parallel Computing movie:
Webinar: Automatic GPU computing for derivative pricing models
ICBI
Global Derivatives 2010
Annual Conference
Paris, May 17-21, 2010
NEWS
"...the only thing you need to add to get GPGPU acceleration is literally 'CUDA'; it's a single keyword, not a fundamentally different way to formulate the math equations. This allows SciComp's customers to save even more time while also improving accuracy."
Beyond 3D