The concept of a random walk comes up often when modeling scientific behavior -- from particles moving in a container to predatory animals hunting for food. This problem challenges you to create a random walk simulator, with an added challenge of making it compute in parallel.

Assuming agents move around in a 2D environment, one unit per time step, in a random direction each step, create a model that takes as input the number of agents, the size of the environment, and the number of time steps, and produces as output a display of the agents in the environment at each time step. Assume the environment is bounded, such that agents cannot move outside the 2D rectangle that encloses them. Assume also that agents cannot walk on top of each other, such that no two agents can occupy the same space at any given time.

The model should be able to run on multiple processors in parallel using MPI, OpenMP, CUDA, and/or another parallel technology.

Include a README that explains what the output shows, how to run the program, and the approach you took to solve the problem.