У меня возникли проблемы с пониманием концепции блокирующего и неблокирующего обмена данными в MPI. Каковы различия между ними? Каковы преимущества и недостатки?