introduction MPI2 Elementary_MPI message_passing point_to_point sorting_algorithms global_operations monte_carlo programming_strategies MPE game_of_life poisson domain_decomposition 2D_Domain_Decomposition diffusion Advanced_MPI advanced_communication GPUs