next up previous contents
Next: Процесс выполнения Up: Семантика и правильность Previous: Семантика и правильность   Contents

Атомарность

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



Alex Otwagin 2002-12-10