| |
``Последующий прием информации, запускаемый тем же коммуникатором, и источник информации и тег, возвращаемый в status подпрограммой MPI_IPROBE получат сообщение, что были поставлены в соответствие зондом, если никакой другой прием не вмешается после запуска зонда и отправка информации не будет успешно отменена''
Объяснение:
Следующая программа показывает, что определения MPI-1 отмены и запуска зонда конфликтуют:
Процесс 0 Процесс 1 ---------- ---------- MPI_Init(); MPI_Init(); MPI_Isend(dest=1); MPI_Probe(); MPI_Barrier(); MPI_Barrier(); MPI_Cancel(); MPI_Wait(); MPI_Test_cancelled(); MPI_Barrier(); MPI_Barrier(); MPI_Recv();
Так как отправка информации была отменена процессом 0, ожидание должно быть локальным (страница 54, строка 13) и должно осуществлять возврат до соответствующего приема. Для того чтобы ожидание было локальным, отправка должна быть успешно отменена, и поэтому не должна соответствовать приему в процессе 1 (страница 54, строка 29).
Однако, понятно, что зонд в процессе 1 должен моментально обнаруживать входящее сообщение. На странице 52 строка 1, объясняет, что последующий прием процессом 1 должен возвращать сообщение, найденное зондом. Приведенный выше пример прямо противоположен, и поэтому текст и ``отправка информации не будет успешно отменена'' должен быть добавлен к строке 3 страницы 54.
Альтернативное решение (отклоненное) заключалось бы в изменении семантики отмены, так чтобы вызов не был локальным, если сообщение было прозондировано. Это усложняет реализацию, и добавляет новое понятие ``состояния'' сообщения (зондированное или нет). Оно, однако, сохранило бы то, что после зондирования блокирующий прием становился локальным. []
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |