How should I choose between using OpenMP and MPI to parallelize code?
In short, moving to MPI is much more difficult but the potential pay-off is much greater. Hardware availability is an over-riding factor as the model for parallelism is closely related to the underlying hardware. Otherwise the human factors are probably the most significant and you should consider the cost of development, debugging and associated support. Here are some more notes on making a choice between OpenMP and MPI.