Added multithreading support via OpenMP