Right now the UnRisk team is working on the development of a powerful xVA Engine (the corresponding new UnRisk products will be released in 2015). In order to being able to handle the huge amounts of generated data
- positive exposures
- negative exposures
- realizations of all underlying risk factors in all considered Monte Carlo paths
we decided to choose HDF5 to be the best "Language" to connect the User Interface with the underlying Numeric Engines.
To be honest, HDF5 is not a language it is a file format.
An HDF5 file has the advantage that it may become very big without the loss of speed in accessing the data within this file. By the use of special programs (e.g. HDFView) one can easily take a look at the contents of such a file.
The UnRisk xVA calculation workflow consists of the following steps:
- Read in the User Input containing the usual UnRisk objects
- Transform this Input into the HDF5 Dialect and create the HDF5 file
- Call the xVA Engine, which
- reads in the contents of the file
- calls the numeric engine
- writes the output of the numeric engine into the HDF5 file
- Transform the output of the xVA Engine back into the UnRisk Language
- Return the results to the User
Here is a screenshot of the contents of such an HDF5 file (containing the xVA calculations for a portfolio consisting of several netting sets and instruments):
But why did we choose this workflow and do not use a simple function call?
The reasons are the following:
Reason 1: We are able to split our development team into two groups: the first one is responsible for steps 1, 2, 4 and 5 , the second one is responsible for step 3. Both groups simply have to use the same "UnRisk HDF Dictionary".
Reason 2: The different steps may be performed asynchronously - meaning that the workflow could look as follows:
- Create many HDF5 files on machine 1 (i.e. perform steps 1 and 2 from above for a list of user inputs)
- Call the xVA Engine for each of these files on machine 2 at any time afterwards
- Extract the calculation output on machine 3 at any time afterwards
Reason 3: Users may only want to use our xVA Engine - i.e. they want to perform steps 1, 2, 4 and 5 themselves. The only Thing, they have to learn is the UnRisk HDF5 dialect (we may support such customers by the use of our Java functionality to write to and read from HDF5 files).
Reason 4: For debugging purposes it is very convinient that a customer only has to send his / her HDF5 file to us - we immediately can use this file to debug our xVA Engine
Reason 5: If the user wants to add a new Instrument to his / her portfolio, he / she simply has to add the Instrument description to the HDF5 file (may be done also by the use of our user interfaces) of this Portfolio. By the use of the already existing results (of the calculations for the portfolio without this Instrument) the performance of the calculations may be increased immensely.
We keep you informed on our xVA developments and let you know as soon as our corresponding products are available. If you have any questions beforehand, feel free to contact us.