We introduced various kinds of parallel computers and networks. We are focusing on SPMD (single program, multiple data). MPI is a library that enables several machines to run different instances of the same program, where those instances talk to each other. We did two example codes in Python that use the midpoint rule of integration. The first is mid1.py and is very naive. The communication time is proportional to the number of processors, regardless of the network topology. However, it relies only on basic send and recv messages. The second, mid2.py, introduces collective communications "broadcast" and "reduce". These higher-level calls allow the library to exploit network topology to optimize the time it takes to do the entire communication. The file hosts is used to tell mpirun what machines are available for logging on to via the -machinefile option.