Home › Forums › Features › Parallelization › Reply To: Parallelization
While some work has been done in some areas of QuantLib it is fundamentally not thread safe, you cannot have two threads asking the same instrument for it’s PV under different scenarios. It is because of this that the ORE libraries all assume a single thread and this is what the ore executable is.
Also, ORE is primarily about bringing transparency to the models and their use, this is best severed by a single threaded framework which is the most accessible to the majority of people.
If you are only interested in speeding it up, then you should see that all the of the time is being spent in the ValuationEngine, there is very little benefit is speeding up market data loading, bootstrapping, etc. So you quickly come to the conclusion that you just need to parallise the three nested loops. Doing this is really an engineering question, it is of course possible to do this using the existing ORE libraries, but this would have to be done at an application and orchestration level (i.e. at a process rather than thread level). It probably makes sense to have a single node process a full path (for path dependant trades) so it’s really a question of splitting the portfolio or samples or both across nodes.
I should point out that Quaternion has an ORE based commercial offering in this area.