https://1library.org/document/qvlwgno1-writing-message-passing-parallel-programs-with-mpi.html