using fixed size thread pool for parallel execution