Система MPI МПС (Межведомственный информационный портал МВД) используется различными органами государственной власти РФ для автоматизации процессов записи на прием граждан в МВД. Однако при использовании данного сервиса пользователи иногда сталкиваются с ошибками, которые могут затруднить процесс получения желаемой услуги. Ошибка сервиса MPI МПС появляется при попытке зарегистрировать запись на прием в МВД через данную систему.
Проблема возникает по нескольким причинам, одной из которых является неверный ввод данных. Из-за этого система не может обработать запрос и выдает ошибку. Кроме того, проблема может быть вызвана техническими проблемами на сервере или внешних факторах, таких как проблемы с интернет-соединением или наличие вирусов на компьютере.
Чтобы исправить ошибку сервиса MPI МПС, в первую очередь необходимо проверить правильность введенных данных. Если это не поможет, следует попробовать зарегистрировать запись на прием через другой браузер. Также необходимо проверить соединение с интернетом, наличие вирусов и обновить браузер до последней версии. Если проблема не устраняется, следует обратиться за помощью к специалистам МВД.
Содержание
- Ошибка сервиса MPI МПС: что это и как исправить
- Что такое ошибка сервиса MPI МПС?
- Как исправить ошибку сервиса MPI МПС?
- Вопрос-ответ
- Что такое ошибка сервиса MPI МПС?
- Как исправить ошибку сервиса MPI МПС?
- Может ли ошибка сервиса MPI МПС привести к потере данных?
Сервис MPI МПС (Message Passing Interface, Multi-Processor System) используется для коммуникации между процессами в параллельных вычислениях. Ошибка данного сервиса связана с некорректной передачей сообщений между процессами и может привести к сбою в работе программы.
Для исправления данной ошибки необходимо прежде всего проверить версию установленного MPI МПС и совместимость с используемым программным обеспечением. Также стоит обратить внимание на наличие достаточного объема оперативной памяти для работы MPI МПС и настроек сетевых параметров.
Если проблема не устраняется, можно воспользоваться инструментами диагностики, такими как MPI_LOG_FILE_VARIABLE и MPI_ERRHANDLER. Для более подробной информации можно обратиться к документации по использованию MPI МПС.
В целом, важно понимать, что ошибка сервиса MPI МПС может возникать по многим причинам, включая настройки сети и установленное программное обеспечение. Поэтому необходимо проводить тщательную диагностику и настройку для корректной работы данного сервиса.
Что такое ошибка сервиса MPI МПС?
Ошибка сервиса MPI МПС (Message Passing Interface, Multichannel Protocol Service) появляется в случае, когда приложение не может связаться с процессом MPI, запущенным на компьютере. Это может произойти по многим причинам, в том числе неправильная настройка сети или программного обеспечения.
Ошибки MPI МПС часто возникают в высокопроизводительных вычислениях, которые используют MPI для обмена данными между несколькими процессами. Если MPI сервис не работает правильно, это может привести к непредсказуемому поведению приложений, и даже к зависанию системы.
Исправить ошибку сервиса MPI МПС можно путем проверки настроек сети, убедившись, что все процессы MPI запущены на нужных компьютерах, а также проверкой наличия неисправностей в программном обеспечении системы.
Как исправить ошибку сервиса MPI МПС?
Ошибка сервиса MPI МПС может возникнуть по нескольким причинам, таким как неполадки в сети, отсутствие обновлений ПО или проблемы с конфигурацией. В любом случае, следует принимать несколько мер для устранения проблемы.
1. Проверьте подключение к сети. Убедитесь, что у вас есть стабильное подключение к сети. В большинстве случаев, проблемы с MPI МПС связаны с неполадками в сети.
2. Установите все доступные обновления ПО. Если у вас установлены не все обновления MPI МПС, это может привести к проблемам. Установите все доступные обновления, чтобы устранить ошибку.
3. Проверьте конфигурацию. Если вы производили изменения в конфигурации MPI МПС, возможно, это стало причиной ошибки. Проверьте конфигурацию и восстановите настройки, если это необходимо.
4. Перезапустите службы. Перезапустите службы MPI МПС, чтобы устранить возможные проблемы связанные с некорректной работой сервиса.
Следуя этим рекомендациям, вы сможете исправить ошибку сервиса MPI МПС и продолжить работу с этим сервисом.
Вопрос-ответ
Что такое ошибка сервиса MPI МПС?
Ошибка сервиса MPI МПС — это сообщение об ошибке, которое появляется на экране компьютера при работе с программой MPI МПС. Это означает, что произошла ошибка в работе сервиса MPI МПС.
Как исправить ошибку сервиса MPI МПС?
Существует несколько способов исправления ошибки сервиса MPI МПС. Самый простой способ — перезагрузить компьютер и запустить программу MPI МПС заново. Если это не помогает, то можно попробовать обновить драйверы на компьютере или проверить наличие вирусов. Также стоит проверить, нет ли конфликтов с другими программами или установленными компонентами на компьютере.
Может ли ошибка сервиса MPI МПС привести к потере данных?
Да, ошибка сервиса MPI МПС может привести к потере данных. Поэтому рекомендуется регулярно сохранять данные, с которыми вы работаете, и резервировать их в случае утери данных. Также стоит установить специальное программное обеспечение для резервного копирования данных.
Мотивация и дисклеймер
На днях ковырялся с нашим виндовым кластером, пытаясь возобновить работоспособность флюента через планировщик, и теперь, победив проблему, решил написать немного о наболевшем. Вообще проблемы с работой различных MPI-служб в рамках техподдержки приходится решать довольно часто, и не на все вопросы удаётся найти ответы в интернетах. В свете этих обстоятельств представляю вашему вниманию небольшой гайд по решению различных проблем, связанных с MPI. Отмечу, что всё сказанное ниже относится исключительно к работе ПО ANSYS, главным образом — к CFX и Fluent, т.к. эти продукты лучше всего параллелятся. Более общее толкование упоминаемых терминов легко найти в той же википедии. Здесь также не будут затронуты тонкости параллельной работы различных приложений, т.к. статья замышляется как шпаргалка при устранении неисправностей.
Три часто задаваемых вопроса
1) MPI — что за непонятная, обидная аббревиатура, и для чего это вообще нужно?
MPI = Message Passing Interface (интерфейс передачи сообщений) — это средство общения между различными процессами во время решения задачи. Необходимость в MPI возникает только тогда, когда распараллеливание выполнения задачи происходит между процессами (не путать с распараллеливанием на потоки). В CFX и Fluent возможен только такой вариант, тогда как прочностные и электромагнитные продукты по дефолту параллелятся на потоки в рамках одного процесса, а несколько процессов рождается при активации некоторой «галочки», содержащей в названии слово «distribute» или что-то подобное. При возникновении сомнений способ распараллеливания легко проверить, заглянув в диспетчер задач (в Винде ctrl + shift + esc) и сосчитав процессы:
В данном случае виден один управляющий процесс fl1700 и четыре дочерних процесса fl_mpi1700. По загрузке ЦП можно понять, заняты ли процессы делом или просто занимают/ждут лицензии. Аналогичным образом можно отобразить процессы в Линуксе командой top/atop/htop.
2) Когда нужно устанавливать MPI отдельно с дистрибутива ANSYS?
Только тогда, когда вы собираетесь распараллеливать решение задачи между несколькими машинами по сети. В этом случае MPI должен встать в качестве службы. В противном случае устанавливать MPI не только не нужно, т.к. нужные библиотеки копируются в директорию установки (ANSYS IncvXXXcommonfilesMPI), но и иногда вредно. Подтверждающий пример приведу ниже.
3) Какой MPI выбирать?
Человечеству известны несколько различных реализаций MPI, часть из которых имеет общие корни. Применительно к ANSYS это Platform MPI, Intel MPI, MS MPI (для виндовых кластеров) и Open MPI (Линукс).
На мой взгляд, выбирать нужно тот вариант, который работает, и только так. Ощутимой разницы в производительности на своей практике я никогда не видел, хотя допускаю опровергающие мою точку зрения частные случаи. По дефолту Fluent, CFX и Mechanical используют pcmpi, и если всё работает, то не надо ничего ковырять.
В определённых случаях на определённых системах может требоваться определённая реализация. Например, для распределённых (на нескольких машинах) вычислений через виндовый планировщик можно использовать только msmpi, на линуксовых кластерах часто по умолчанию настроен Open MPI, поэтому бывает удобнее использовать его. Также переходить на другой MPI бывает необходимо из-за несовместимости с железом — об этом ниже.
Замечание 1. С наименованиями Platform MPI без бутылки не разберёшься, поэтому на всякий случай привожу эволюцию названия в хронологическом порядке: HP MPI > Platform MPI > IBM Platform MPI. То есть это примерно одно и то же, но называться может по-разному. Сокращается обычно как hpmpi или pcmpi.
Замечание 2. Когда нужно противопоставить MS (Microsoft) MPI другим реализациям, может использоваться название Microsoft HPC, более старое CCP или совсем старое CCS (да, в CFX до сих пор не переименовали).
При каких симптомах нужно копать в сторону MPI
1) Сообщение об ошибке содержит упоминание mpi, rank и affinity.
2) Fluent зависает или падает без объяснения причин сразу после запуска.
3) CFX падает или виснет после того, как в логе появляется слово «Solver» в рамочке.
4) Любой другой солвер падает или зависает на первой итерации.
Где взять дополнительную информацию, если стандартный лог решателя не содержит ничего полезного
В первую очередь нужно смотреть стандартные потоки вывода и ошибок (STDOUT и STDERR). Например, при вылете решателя CFX может ничего не написать в .out, при этом полезная для диагностики информация может содержаться в окне консоли, которое запускается вместе с солвером. Если запуск происходит через планировщик, то STDOUT и STDERR обычно перенаправляются в соответствующие файлы в рабочей директории. При ручном запуске через командную строку вывод также можно перенаправить в файл, например: cfx5solve -def myCase.def -par-local -part 4 >> output.txt 2>&1.
Также имеет смысл посмотреть лог ошибок приложений в журнале событий операционной системы.
Каковы основные причины вылета или зависания, и что при этом «крутить»
Когда приложение бездействует или вообще не отвечает, беда, скорее всего, или с фаерволлом, или с учётными данными для выбранной реализации MPI. В Линуксе к списку возможных причин добавляется неправильно настроенный беспарольный доступо по ssh. Фаерволл и ssh могут портить кровь только при расчёте на нескольких машинах, либо в рамках одной машины, но через планировщик. Необходимость ввода учётных данных может проявиться даже при расчёте на локальной машине. Решения здесь очевидные:
1) Чтобы исключить фаерволл — попробовать его временно отключить. Если помогло, то настроить исключения для всех нужных процессов (солвера, mpirun, mpiexec и т.д.). Проще всего посмотреть в логе, что именно он блокировал. На правильном кластере таких проблем возникать не должно, т.к. исключения для mpi-служб настраиваются автоматически системой управления кластером.
2) Чтобы проверить ssh, нужно попробовать залогиниться с каждого узла на каждый из других и убедиться, что при этом не требуется пароль. При большом количестве узлов для такой проверки целесообразно написать скрипт. Возможно, существуют и более удобные готовые инструменты, но я таких не встречал. При выявлении проблем между определёнными узлами нужно повторно сгенерировать ключи, скопировать публичные части и т.д.
3) Для проверки учётных данных удобнее всего запустить тот же флюент с нужной версией MPI в интерактивном режиме и проверить, появится ли окно для ввода пароля. Если появится, то пароль можно просто ввести и сохранить. Если нет, то пароль может быть введён неправильно, и тогда его нужно попробовать обнулить и ввести заново. Это можно сделать очень полезной флюентовской утилитой. Для её вызова нужно открыть Fluent Launcher, в нём — вкладку Environment, далее в поле Other Environment Variables щёлкнуть правой кнопкой и выбрать пункт Start Fluent Diagnostics. Появится вот такое окно, в котором помимо очистки учётных данных для разных реализаций MPI есть ещё множество полезных функций:
Когда приложение вылетает, нужно проверить следующие моменты:
1) Переменные окружения, связанные со службами MPI, а также переменную Path на всех узлах. Приведу два примера из своей практики.
Пример номер раз. Пользователь на локальной машине последовательно установил версии ANSYS с 14й по 16ю, каждый раз устанавливая Platform MPI в качестве отдельной службы:
В результате не работают более старые версии CFX. Почему так происходит? Из-за несовместимости версий CFX и Platform MPI. Несовместимость в результате установки MPI как службы возникает из-за появления переменной MPI_ROOT, которая указывает на последнюю установленную версию службы. А эта версия MPI, например, используется CFX’ом начиная только с 16й версии. Решение — удалить переменную. Если нужно обеспечить работоспособность нескольких очень старых и очень новых версий CFX на одном кластере, то можно перед запуском CFX в рамках сессии перезаписать в переменную нужный путь.
Пример номер два — случай с нашим виндовым кластером. Запускаем флюент через планировщик, и после появления Job’а всё висит, при этом в stderr пишется несколько десятков Мб текса в секунду. Убиваем Job, потом убиваем gui и хост-процесс флюента (cx1700 и fl1700). Причём быстро, пока лог не разросся до нечитаемых размеров. Смотрим в лог, видим повторяющийся тысячи раз текст:
User credentials needed to launch processes:
account (domainuser) [HPCvdk]: password:
Unable to manage jobs using credentials with a blank password.
Please enter another account.
То есть нам намекают на отсутствие сохранённого пароля для mpiexec (основной исполняемый файл MS MPI, аналог у Platform — mpirun). Чешем голову, запускаем разные тесты MPI, пробуем CFX — всё работает. Чистим учётные данные через Cluster Manager или командой cluscfg delcreds, вводим заново — не помогает. Чешем голову сильнее. Идём на узлы, пробуем запустить что-нибудь локально (например, mpiexec notepad). И на узлах с нас спрашивают пароль! Так быть не должно, поскольку голова хранит наш пароль, и эта информация передаётся вычислительным узлам. Пробуем сохранить пароль на узлах, запускаем Fluent. Новая ошибка:
Fatal protocol error: check version between Mpiexec.exe, Msmpi.dll, and Smpd.exe.
Чешем всё остальное. Начинаем думать, тот ли это mpiexec, который нам нужен? Запускаем clusrun where mpiexec, чтобы понять, откуда он запускается. Видим, что на голове выдаётся правильная директория (…Program FilesMicrosoft HPC Pack 2012…), а на узлах перед ней идёт директория Intel MPI, т.е. сначала mpiexec ищется именно там. Оказывается, некий злоумышленник установил на узлах IntelMPI, у которого исполняемый файл имеет то же название, а путь к нему записался в начало переменной Path. Лечение простое — перемещаем интеловские пути в конец переменной, или вообще удаляем, если злоумышленник разрешает. В результате всё работает.
Данные примеры иллюстрируют, как важно проявлять внимательность при установке различных MPI-служб и проверять, какие переменные они создают.
2) Работоспособность сети и MPI службы именно по этой сети при помощи простых тестов. Особенно это касается сети Infiniband, которая довольно капризна по отношению к драйверам и прошивкам сетевых карт. У меня были случаи, когда из-за отличия версии прошивки только на одной карте не работала вся сеть кластера, пока этот узел активен. По той же причине сеть может работать, но не включится протокол прямого доступа к памяти (RDMA или его виндовая реализация NetworkDirect), в результате чего латентность вырастет на пару порядков, а пропускная способность упадёт примерно на порядок. Под той же виндой версию прошивки можно проверить командой clusrun ibstat | findstr Firmware. Также для диагностики сети Infiniband могут быть полезны команды ibnetdiscover и ibping. Последняя аналогична обычному пингу, но требует, чтобы на пингуемой машине была поднята серверная часть (ibping -S).
3) Совместимость с железом, особенно если в сообщении об ошибке содержится слово affinity. Русскоязычного аналога понятия affinity я не знаю, но оно имеет непосредственное отношение к технологии неравномерного доступа к памяти (NUMA). С практической точки зрения данная технология позволяет привязывать процессы к ядрам и обеспечивает им доступ к наиболее близкорасположенной (физически) памяти. Использование данной технологии может управляться MPI (флаг -affinity), как в CFX, или на уровне кода, как во Fluent. В принципе использование affinity должно ускорять параллельные вычисления (хотя для механики не рекомендуется), но иногда функция работает криво. Это происходит потому, что BIOS выдаёт операционной системе неправильный SRAT (таблица распределение ресурсов), в результате MPI присваивает процессам неправильные ранги, и всё падает. Также в качестве симптома может наблюдаться неправильное определение количества физических ядер системой. Данная проблема наблюдается в современных серверных процах Intel Xeon начиная с 3-го поколения (лично встречал на железе HP и ASUS).
Чтобы подтвердить данную причину, нужно зайти в BIOS и отключить NUMA или включить Node Interleaving (= отключить NUMA). В свежих прошивках от HP есть вариант не отключать NUMA, а установить параметр NUMA Group Size Optimization = flat. Наиболее правильное решение — накатить свежую прошивку BIOS. Также иногда помогает переход с Platform MPI на Intel MPI или использование локальной установки вместо сетевой.
На этом пока всё. Если материал окажется востребованным, буду его понемногу расширять. Также отмечу, что здесь я описал в основном собственный опыт, который слегка дополняет информацию на портале пользователей и зарубежных форумах. Настоятельно рекомендую при диагностике неисправностей в первую очередь обращаться к Customer Portal’у.
PS Если ошибки, связанные с MPI, возникают в процессе счёта, то проблема может заключаться в банальном делении на ноль при развале решения. Особенно это характерно для флюента, который после floating point exception может растерять связь со своими процессами. В подобных случаях его нужно просто перезапустить и устранить проблему сходимости итераций. До версии 16.1 были известны проблемы с динамической адаптацией, которые также валили MPI, но теперь это исправлено.
PPS Иногда похожие симптомы проявляются при ошибке доступа к серверу лицензий, причём в логе может ничего не отразиться, и если переменная ANSWAIT=1 не задана, то приложение просто закроется. Чтобы исключить этот вариант, нужно убедиться, что сервер лицензий виден всем узлам, т.к. хост-процесс, запрашивающий лицензию, может родиться на любом из них.
Обновлено
Ускорьте свой компьютер сегодня с помощью этой простой загрузки. г.
Если вы получаете серьезную ошибку инициализации в сообщении об ошибке mpi_init, в наши дни руководство было создано, чтобы помочь вам. грамм.После того, как их изменение будет завершено, init_MPI = False, хотя при отсутствии mpi4py большинство людей получат ошибку MPI, в которой говорится, что эксклюзивная процедура MPI была названа до инициализации MPI. Возможно, код наверняка увидит, есть ли библиотека MPI. Если libmultinest_mpi.so существует, но mpi4py определенно отсутствует, предупреждать?
грамм. InitializeExecute выполнение среды MPI
Продолжить
<для>интервал MPI_Init (int 2. argc, char *** argv)
Ввод
Настройки указателя
- argc, чтобы разрешить число аргументов
- argv
- Указатель на множество векторов аргументов
Безопасность потоковой передачи и сигналов
Эта процедура должна вызываться только еще одним потоком. Нить называетсяvОсновная угроза требуются руки вниз, и нить, которая спрашивает MPI_Finalize …
Примечания
Стандарт MPI не объявляет, что каждый тип программы перед MPI_INIT Гдепосле MPI_FINALIZE … В рендеринге MPICH публика должна делатькак можно меньше. В частности, предотвращайте все, чтосостояние внешней программы, например создание информации, стандартное чтениеВведите или напишите в обычно реализуемый вывод.
Примечания к C
Что касается MPI-2, MPI_Init ‘принимает NULL в качестве входного параметра. Включеновлияет на значения, хранящиеся в MPI_INFO_ENV …
Заметки о Фортране
Ссылка на Фортран для MPI_Init возвращается только ошибка<для> Подпрограмма MPI_INIT (ierr) Целочисленная ошибка
Ошибка
Все подпрограммы MPI (crome MPI_Wtime и MPI_Wtick ) возвращают индивидуальное значение ошибки;Подпрограммы C как значение для подпрограмм Fortran, а также выполнялись в прошломАргумент. Возвращается предыдущее значение, которое является текущим обработчиком ошибок MPI.называется. По умолчанию владелец этой ошибки отменяет все задание MPI. Дилервозможные ошибки могут быть изменены с помощью MPI_Comm_set_errhandler (для коммуникаторов), MPI_File_set_errhandler (для файлов) и MPI_Win_set_errhandler (дляОкно RMA). Обычный MPI-1 MPI_Erhandler_set можно использовать немного больше, носрок его потребления истек. Предопределенный менеджерОшибка MPI_ERRORS_RETURN может использоваться для того, чтобы действительно возвращать сообщения об ошибках.Обратите внимание, что MPI вряд ли гарантирует продолжение программы MPI.ошибка; Однако реализация MPI может продолжаться всякий раз, когдавозможный.
- MPI_SUCCESS
- Нет ошибки; Процедура MPI прошла успешно.
- MPI_ERR_OTHER Эта ошибка школы
- связана с 1 кодом ошибки,указывает, что была сделана попытка вызвать MPI_INIT в течение короткого времени. MPI_INIT может вызываться только один раз в каждом грамме маневра.
См. также
MPI_Init_thread, MPI_Finalize
Джайеш Кришна Solution For Initialization Errors In Mpi_init
Solução Para Erros De Inicialização Em Mpi_init
Soluzione Per Errori Di Inizializzazione In Mpi_init
Lösung Für Initialisierungsfehler In Mpi_init
Solución Para Errores De Inicialización En Mpi_init
Lösning För Initialiseringsfel I Mpi_init
Solution Pour Les Erreurs D’initialisation Dans Mpi_init
Mpi_init의 초기화 오류에 대한 솔루션
Oplossing Voor Initialisatiefouten In Mpi_init
Rozwiązanie Dla Błędów Inicjalizacji W Mpi_init
г.
title: MPI Error
TOCTitle: MPI Error
ms:assetid: D66B4D6B-A1FD-461B-BBC0-88742C912B08
ms:mtpsurl: https://msdn.microsoft.com/en-us/library/Dn473298(v=VS.85)
ms:contentKeyID: 59360844
ms.date: 03/28/2018
mtps_version: v=VS.85
f1_keywords:
- mpi/MPI_ERR_ACCESS
- mpi/MPI_ERR_AMODE
- mpi/MPI_ERR_ARG
- mpi/MPI_ERR_ASSERT
- mpi/MPI_ERR_BAD_FILE
- mpi/MPI_ERR_BASE
- mpi/MPI_ERR_BUFFER
- mpi/MPI_ERR_COMM
- mpi/MPI_ERR_CONVERSION
- mpi/MPI_ERR_COUNT
- mpi/MPI_ERR_DIMS
- mpi/MPI_ERR_DISP
- mpi/MPI_ERR_DUP_DATAREP
- mpi/MPI_ERR_FILE
- mpi/MPI_ERR_FILE_EXISTS
- mpi/MPI_ERR_FILE_IN_USE
- mpi/MPI_ERR_GROUP
- mpi/MPI_ERR_IN_STATUS
- mpi/MPI_ERR_INFO
- mpi/MPI_ERR_INFO_KEY
- mpi/MPI_ERR_INFO_NOKEY
- mpi/MPI_ERR_INFO_VALUE
- mpi/MPI_ERR_INTERN
- mpi/MPI_ERR_IO
- mpi/MPI_ERR_KEYVAL
- mpi/MPI_ERR_LASTCODE
- mpi/MPI_ERR_LOCKTYPE
- MPI_ERR_NO_MEM
- mpi/MPI_ERR_QUOTA
- MPI_ERR_NO_SUCH_FILE
- MPI_ERR_CONVERSION
- MPI_ERR_BAD_FILE
- mpi/MPI_ERR_SIZE
- MPI_ERR_AMODE
- mpi/MPI_SUCCESS
- mpi/MPI_ERR_SPAWN
- mpi/MPI_ERR_TAG
- MPI_ERR_GROUP
- MPI_ERR_FILE_EXISTS
- mpi/MPI_ERR_WIN
- mpi/MPI_ERR_TOPOLOGY
- MPI_ERR_IO
- MPI_ERR_FILE_IN_USE
- MPI_ERR_DISP
- MPI_ERR_IN_STATUS
- mpi/MPI_ERR_RMA_CONFLICT
- mpi/MPI_ERR_READ_ONLY
- MPI_ERR_BASE
- mpi/MPI_ERR_TYPE
- MPI_ERR_LASTCODE
- MPI_ERR_ARG
- MPI_ERR_DUP_DATAREP
- mpi/MPI_ERR_UNKNOWN
- MPI_ERR_LOCKTYPE
- mpi/MPI_ERR_RMA_SYNC
- MPI_ERR_ASSERT
- MPI_ERR_KEYVAL
- MPI_ERR_INFO_VALUE
- MPI_ERR_INFO_NOKEY
- MPI_ERR_COMM
- MPI_ERR_NOT_SAME
- MPI_ERR_ACCESS
- mpi/MPI_ERR_NAME
- MPI_ERR_BUFFER
- MPI_ERR_COUNT
- mpi/MPI_ERR_PORT
- mpi/MPI_ERR_OTHER
- mpi/MPI_ERR_TRUNCATE
- MPI_ERR_DIMS
- mpi/MPI_ERR_NO_MEM
- mpi/MPI_ERR_PENDING
- MPI_ERR_NO_SPACE
- mpi/MPI_ERR_NO_SUCH_FILE
- MPI_ERR_NAME
- MPI_ERR_INFO_KEY
- mpi/MPI_ERR_NOT_SAME
- MPI_ERR_FILE
- mpi/MPI_ERR_UNSUPPORTED_DATAREP
- mpi/MPI_ERR_OP
- mpi/MPI_ERR_ROOT
- mpi/MPI_ERR_UNSUPPORTED_OPERATION
- mpi/MPI_ERR_RANK
- MPI_ERR_INFO
- MPI_ERR_INTERN
- mpi/MPI_ERR_NO_SPACE
- mpi/MPI_ERR_REQUEST
- mpi/MPI_ERR_SERVICE
- MPI_ERR_REQUEST
- MPI_ERR_ROOT
- MPI_ERR_PORT
- MPI_ERR_TAG
- MPI_ERR_SPAWN
- MPI_ERR_OP
- MPI_ERR_SIZE
- MPI_ERR_UNSUPPORTED_OPERATION
- MPI_ERR_TYPE
- MPI_SUCCESS
- MPI_ERR_RMA_CONFLICT
- MPI_ERR_QUOTA
- MPI_ERR_RMA_SYNC
- MPI_ERR_UNSUPPORTED_DATAREP
- MPI_ERR_READ_ONLY
- MPI_ERR_TOPOLOGY
- MPI_ERR_OTHER
- MPI_ERR_WIN
- MPI_ERR_UNKNOWN
- MPI_ERR_SERVICE
- MPI_ERR_TRUNCATE
- MPI_ERR_RANK
- MPI_ERR_PENDING
dev_langs: - C++
- C
api_location: - mpi.h
api_name: - MPI_ERR_ACCESS
- MPI_ERR_AMODE
- MPI_ERR_ARG
- MPI_ERR_ASSERT
- MPI_ERR_CONVERSION
- MPI_ERR_COUNT
- MPI_ERR_DISP
- MPI_ERR_COMM
- MPI_ERR_BAD_FILE
- MPI_ERR_DIMS
- MPI_ERR_BUFFER
- MPI_ERR_BASE
- MPI_ERR_INFO_KEY
- MPI_ERR_FILE_IN_USE
- MPI_ERR_FILE_EXISTS
- MPI_ERR_INFO
- MPI_ERR_DUP_DATAREP
- MPI_ERR_INFO_NOKEY
- MPI_ERR_FILE
- MPI_ERR_LOCKTYPE
- MPI_ERR_INFO_VALUE
- MPI_ERR_LASTCODE
- MPI_ERR_KEYVAL
- MPI_ERR_IO
- MPI_ERR_INTERN
- MPI_ERR_IN_STATUS
- MPI_ERR_GROUP
- MPI_ERR_NAME
- MPI_ERR_RMA_CONFLICT
- MPI_ERR_SPAWN
- MPI_ERR_NOT_SAME
- MPI_ERR_TRUNCATE
- MPI_ERR_RMA_SYNC
- MPI_ERR_WIN
- MPI_ERR_TAG
- MPI_ERR_REQUEST
- MPI_ERR_READ_ONLY
- MPI_ERR_TOPOLOGY
- MPI_ERR_OTHER
- MPI_ERR_QUOTA
- MPI_ERR_NO_MEM
- MPI_ERR_NO_SPACE
- MPI_ERR_PENDING
- MPI_ERR_SIZE
- MPI_ERR_UNKNOWN
- MPI_ERR_NO_SUCH_FILE
- MPI_ERR_UNSUPPORTED_OPERATION
- MPI_ERR_UNSUPPORTED_DATAREP
- MPI_ERR_OP
- MPI_ERR_PORT
- MPI_ERR_ROOT
- MPI_ERR_TYPE
- MPI_ERR_RANK
- MPI_SUCCESS
- MPI_ERR_SERVICE
api_type: - HeaderDef
product: - Windows
topic_type: - apiref
- kbSyntax
product_family_name: VS
ROBOTS: INDEX,FOLLOW
MPI Error
Enumeration of predefined MPI error values.
MPI_SUCCESS
0
Successful return code.
MPI_ERR_BUFFER
1
Invalid buffer pointer
MPI_ERR_COUNT
2
Invalid count argument
MPI_ERR_TYPE
3
Invalid datatype argument
MPI_ERR_TAG
4
Invalid tag argument
MPI_ERR_COMM
5
Invalid communicator
MPI_ERR_RANK
6
Invalid rank
MPI_ERR_ROOT
7
Invalid root
MPI_ERR_GROUP
8
Invalid group
MPI_ERR_OP
9
Invalid operation
MPI_ERR_TOPOLOGY
10
Invalid topology
MPI_ERR_DIMS
11
Invalid dimension argument
MPI_ERR_ARG
12
Invalid argument
MPI_ERR_UNKNOWN
13
Unknown error
MPI_ERR_TRUNCATE
14
Message truncated on receive
MPI_ERR_OTHER
15
Other error; use Error_string
MPI_ERR_INTERN
16
Internal error code
MPI_ERR_IN_STATUS
17
Error code is in status
MPI_ERR_PENDING
18
Pending request
MPI_ERR_REQUEST
19
Invalid request (handle)
MPI_ERR_ACCESS
20
Permission denied
MPI_ERR_AMODE
21
Error related to amode passed to MPI_File_open
MPI_ERR_BAD_FILE
22
Invalid file name (e.g., path name too long)
MPI_ERR_CONVERSION
23
Error in user data conversion function
MPI_ERR_DUP_DATAREP
24
Data representation identifier already registered
MPI_ERR_FILE_EXISTS
25
File exists
MPI_ERR_FILE_IN_USE
26
File operation could not be completed, file in use
MPI_ERR_FILE
27
Invalid file handle
MPI_ERR_INFO
28
Invalid info argument
MPI_ERR_INFO_KEY
29
Key longer than MPI_MAX_INFO_KEY
MPI_ERR_INFO_VALUE
30
Value longer than MPI_MAX_INFO_VAL
MPI_ERR_INFO_NOKEY
31
Invalid key passed to MPI_Info_delete
MPI_ERR_IO
32
Other I/O error
MPI_ERR_NAME
33
Invalid service name in MPI_Lookup_name
MPI_ERR_NO_MEM
34
Alloc_mem could not allocate memory
MPI_ERR_NOT_SAME
35
Collective argument/sequence not the same on all processes
MPI_ERR_NO_SPACE
36
Not enough space
MPI_ERR_NO_SUCH_FILE
37
File does not exist
MPI_ERR_PORT
38
Invalid port name in MPI_comm_connect
MPI_ERR_QUOTA
39
Quota exceeded
MPI_ERR_READ_ONLY
40
Read-only file or file system
MPI_ERR_SERVICE
41
Invalid service name in MPI_Unpublish_name
MPI_ERR_SPAWN
42
Error in spawning processes
MPI_ERR_UNSUPPORTED_DATAREP
43
Unsupported dararep in MPI_File_set_view
MPI_ERR_UNSUPPORTED_OPERATION
44
Unsupported operation on file
MPI_ERR_WIN
45
Invalid win argument
MPI_ERR_BASE
46
Invalid base passed to MPI_Free_mem
MPI_ERR_LOCKTYPE
47
Invalid locktype argument
MPI_ERR_KEYVAL
48
Invalid keyval
MPI_ERR_RMA_CONFLICT
49
Conflicting accesses to window
MPI_ERR_RMA_SYNC
50
Wrong synchronization of RMA calls
MPI_ERR_SIZE
51
Invalid size argument
MPI_ERR_DISP
52
Invalid disp argument
MPI_ERR_ASSERT
53
Invalid assert argument
MPI_ERR_LASTCODE
0x3fffffff
Last valid error code for a predefined error class.
Requirements
Product |
HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package or HPC Pack 2008 Client Utilities |
Header |
Mpi.h |
See also
MPI Enumerations
#mpi
#mpi
Вопрос:
Я скомпилировал этот код:
program mpisimple
implicit none
integer ierr
include 'mpif.h'
call mpi_init(ierr)
write(6,*) 'Hello World!'
call mpi_finalize(ierr)
end
используя команду: mpif90 -o helloworld simplempi.f90
Когда я запускаю эту команду:
$ mpiexec -np 1 ./helloworld
Hello World!
как вы можете видеть, все работает нормально. Но когда я запускаю с любым другим количеством процессоров (здесь 4) Я получаю ошибки, и мне в основном приходится нажимать ctrl C, чтобы уничтожить ее.
Fatal error in MPI_Init: Other MPI error, error stack:
MPIR_Init_thread(805).....: fail failed
MPID_Init(1859)...........: channel initialization failed
MPIDI_CH3_Init(126).......: fail failed
MPID_nem_init_ckpt(858)...: fail failed
MPIDI_CH3I_Seg_commit(427): PMI_KVS_Get returned 4
In: PMI_Abort(69777679, Fatal error in MPI_Init: Other MPI error, error stack:
MPIR_Init_thread(805).....: fail failed
MPID_Init(1859)...........: channel initialization failed
MPIDI_CH3_Init(126).......: fail failed
MPID_nem_init_ckpt(858)...: fail failed
MPIDI_CH3I_Seg_commit(427): PMI_KVS_Get returned 4)
forrtl: severe (174): SIGSEGV, segmentation fault occurred
В чем может быть проблема? Я делаю это в системе Linux hpc.
Ответ №1:
Я понял, почему это произошло. Система, которую я использую, не требует от пользователей отправки одноядерных заданий через планировщик, но требует этого для многоядерных заданий. Как только команда mpiexec была отправлена через скрипт PBS bash, ошибки исчезли, и результат был таким, как ожидалось.
Комментарии:
1. Вероятно, у вас очень низкие ограничения ресурсов, установленные на головном узле кластера.
ulimit -a
показывает их. Это часто делается намеренно, чтобы удержать людей от перегрузки головных узлов многоядерными заданиями.