A Scalable Parallel Multi-Purpose Reservoir Simulator