Отказоустойчивость в MPICH/OpenMPI

У меня есть два вопроса -

Q1. Есть ли более эффективный способ справиться с ситуацией с ошибками в MPI, кроме контрольной точки/отката? Я вижу, что если node "умирает", программа резко останавливается. Есть ли способ продолжить выполнение после того, как node умирает? (нет проблем, если это за счет точности)

Q2. Я прочитал в "http://stackoverflow.com/info/144309/what-is-the-best-mpi-implementation", что OpenMPI имеет лучшую отказоустойчивость, а в последнее время MPICH-2 также имеет аналогичные функции.. кто-нибудь знает, что это такое и как их использовать? это "режим"? могут ли они помочь в ситуации, указанной в Q1?

любезно ответ. Спасибо.

Ответ 1

MPI - все реализации - имели возможность продолжать некоторое время после ошибки. Значение по умолчанию - умереть - то есть обработчик ошибок по умолчанию - MPI_ERRORS_ARE_FATAL - но это может быть установлено (например, см. Обсуждение здесь). Но стандарт в настоящее время не намного выше этого; то есть трудно восстановить и продолжить после такой ошибки. Если ваша программа достаточно проста - какой-то тип мастера-мастера установки, возможно, так будет продолжаться.

форум MPI в настоящее время работает над тем, что станет MPI-3, а обработка ошибок и отказоустойчивость станут важным компонентом нового (там FT-MPI был проектом, который разработал очень надежный MPI, но, к сожалению, он основан на MPI1.2; очень ранняя версия стандарта. Заявка здесь заключается в том, что они теперь работают с OpenMPI, но я не знаю, что с этим получится. Там MPICH-V, основанный на MPI2, но это больше, чем я думаю, что вы ищете.

Обновлено для добавления: отказоустойчивость не попала в MPI-3, но рабочая группа продолжает свою работу, и ожидается, что что-то произойдет из-за этого слишком долго. p >