Mpi_file_open вызывает зависание позже в коде

Когда я звоню:

MPI_File_open(k_space_communicator, "TB_schro_BS.dat", MPI_MODE_CREATE|MPI_MODE_WRONLY,MPI_INFO_NULL, &bs_out); MPI_File_close(&bs_out);

k_space_communicator работает, как это используется во многих других функциях без проблем,
bs_out объявлено: MPI_File bs_out;

TB_schro_BS.dat это файл, который был удален перед этим вызовом, если он уже существует.

Я не получаю немедленных ошибок или зависаний (все процессы делают это из этой функции), и код, кажется, прекрасно работает до тех пор, пока позже в программе, он случайно зависает, когда я пытаюсь удалить другой объект.

Итак, это происходит только тогда, когда у меня есть ряд процессов, которые не являются фактором количества вычислений, которые я делаю. Однако, если я закомментирую эту строку кода, никаких зависаний не будет, независимо от того, сколько процессов я выполняю (очевидно, меньше, чем вычисления).

Самое странное в том, что когда я проследил, где происходят зависания, я обнаружил, что это происходит между концом деструктора объекта и сразу после вызова удаления объекта, где нет дополнительного кода.

Наконец, есть одна ошибка, которая выводится перед зависанием, которую я не мог полностью расшифровать, и возникает между 1-3 раза за запуск для запуска из 4 процессов:

*** glibc detected *** mpiuf-nemo: corrupted double-linked list: 0x000000000192a640 ***

Я работаю в cpp с помощью mpich2 на Ubuntu. Извините, я не могу быть более конкретным, так как не могу сообщить подробности о коде, но я буду рад ответить на любые ваши дополнительные вопросы. Извините, если я что-то пропустил. Я немного взволнован этой проблемой.

1

Решение

Вы должны выяснить, возможно, с помощью valgrind, откуда возникла эта glibc-обнаруженная ошибка о двойном списке.

Вы упомянули создание / уничтожение объектов, но в вашем примере используются привязки Си. Вы смешиваете привязки C и C ++? Большая часть кода C ++ прекрасно использует привязки C.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]