Parallel Whale Optimization Algorithm for Solving Constrained and Unconstrained Optimization Problems