Нет, это невозможно в приложении MPI, использующем библиотеку MPI.
Отдельные процессы не будут знать ни о местонахождении других процессов, ни об идентификаторах процессов других процессов - и в спецификации MPI нет ничего, что могло бы сделать желаемое уничтожение.
Если бы вы делали это вручную, то вам нужно было бы MPI_Alltoall для обмена идентификаторами процессов и именами хостов по всей системе, а затем вам нужно было бы порождать ssh / rsh для посещения нужного узла, когда вы хотите что-то убить. В общем, он не портативный, не чистый.
MPI_Abort - это правильный способ сделать то, что вы пытаетесь достичь. Из руководства Open MPI:
«Эта подпрограмма делает« лучшую попытку »отменить все задачи в группе связи». (т.е. MPI_Abort (MPI_COMM_WORLD, -1) - это то, что вам нужно.
Любой вывод во время MPI_Abort будет зависеть от конкретной машины, поэтому вы можете или не можете получить упомянутое вами сообщение об ошибке.