  In this paper, we present a parallel algorithm for Monte Carlo simulation of
the 2D Ising Model to perform efficiently on a cluster computer using MPI. We
use C++ programming language to implement the algorithm. In our algorithm,
every process creates a sub-lattice and the energy is calculated after each
Monte Carlo iteration. Each process communicates with its two neighbor
processes during the job and they exchange the boundary spin variables.
Finally, the total energy of lattice is calculated by map-reduce method versus
the temperature. We use multi-spin coding technique to reduce the interprocess
communications. This algorithm has been designed in a way that an appropriate
load-balancing exists and it benefits a good scalability. It has been executed
on the cluster computer of Plasma Physics Research Center which includes 9
nodes and each node consists of two quad-core CPUs. Our results show that this
algorithm is more efficient for large lattices and more iterations.
