In the not to distant past I can recall seeing several risk systems valuing vanilla interest swaps with individual trade valuations taking around a few milliseconds. Whilst quants might rightly be alarmed that it would take so long, when one adds in overheads which can easily occur in the integration of a pricing library with a risk system, it certainly was not unusual to see average calculation times at a few milliseconds per trade.
I recently performed some tests with freshly written code (in Java), which showed that on massive OTC vanilla swap portfolios (from 100K trades up to 2 million trades) one can now see average trade valuation times not measured in milli-seconds, but measured in micro-seconds. Moreover, the machines I tested on were not high-end servers, just simple commodity hardware.
During the performance tests, I noticed a conservative rule of thumb, which I found to be an interesting and succinct way of explaining performance measurements
“Trade valuation time is about 1 micro-second per year of maturity of the swap”
so that, for example, a 5Y swap would take on average 5 micro-seconds to value. Of course, one can get easily get caught up in the detail and dismiss the rule, for example a GBP swap has less frequent payments and so would be up to twice as quick as a USD swap, however the rule of thumb gives us the correct order of magnitude.
The realisation that trade valuation times can be driven down to microseconds, ensures that even massive OTC portfolios can be valued and risk managed through out the day on inexpensive hardware. Moreover, with a carefully structured architecture, a host of intra-day possibilities now arise even on such large portfolios…