Much of the internal computations are embarrassingly parallel. How can the internal functions make use of multiple cores when they are available?