Abstract
Parallel processing uses multiple processors to compute a large computer problem. Two main multiprocessing programming models are shared memory and message passing. In the latter model, processes communicate by exchanging messages using the network. The project consisted of two parts: 1) To investigate the performance of a multithreaded matrix multiplication program, and 2) To create a user guide for how to setup a message passing multiprocessor simulation environment using Simics including MPI (message passing interface) installation, OS craff file creation, memory caches addition and python scripts usage. The simulation results and performance analysis indicate as matrix size increases and the number of processing nodes increases, the rate at which bytes communicated and the number of packets increase is faster than the rates at which processing time per node decreases.