Результат одновременной работы вызовов accumulate
к одному и тому
же адресу, с одной и той же операцией и предопределенным типом данных,
является таким же, как если бы accumulate
к этому адресу был сделан
в некотором последовательном порядке. С другой стороны, если два адреса
обновляются двумя вызовами accumulate
, тогда обновления по этим
адресам могут произойти в обратном порядке. Таким образом, нет гарантии,
что весь вызов обновления MPI_ACCUMULATE
выполнится как единое
целое. Эффект этой недостаточной атомарности ограничен: предыдущие
условия корректности подразумевают, что к адресам, обновляемым вызовом
MPI_ACCUMULATE
, нельзя получить доступ при помощи load
или
RMA вызова, отличного от accumulate
, пока не выполнится вызов
MPI_ACCUMULATE
(в адресате). Разные чередования вызовов
могут привести к разным результатам только в той степени, в какой
компьютерная алгебра не полностью ассоциативна или коммутативна.