Что такое ошибка мпс

💡Почему важно знать причины неоплаты?

Оплата банковской картой через интернет — эту услугу сейчас предлагает практически любой интернет магазин. Вы можете например купить билет на поезд, оплатив банковской картой, сделать покупку на ozon.ru, купить ЖД билет онлайн.

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

Но у меня был случай, когда оплата просто не проходила. Робокасса писала сообщение — оплата отменена. Я не знал, в чем причина. В личном кабинете найти ошибку мне не удалось.

Существует множество разных причин ошибок — они бывают по причине банка или владельца карты. Важно хотя бы предполагать причину ошибки, чтоб понимать как действовать дальше? К примеру, если не удается оплатить горячий билет, то нужно понимать в чем причина и попытаться исправить проблему. Иначе билет может быть куплен другим человеком.

Основные причины ошибок при оплате банковской картой

Первая причина, которая является самой распространенной — отсутствие нужной суммы на карте. Рекомендуется проверить ваш баланс — для этого нужно позвонить в банк или войти в интернет банк. Иногда по карте устанавливают ежемесячный или ежедневный лимит трат. Чтоб это проверить — нужно позвонить в банк.

Эта причина может быть не ясна сразу — при отказе в оплате может не отображаться ваш баланс. Ошибка аутентификации 3D secure может быть также связана с неверным вводом реквизитов карты на предыдущем шаге. В таком случае просто повторите платеж и укажите правильные данные.

Вторая причина — на стороне платежной системы. Например, терминал оплаты РЖД не позволяет платить картами MasterCard. Можно использовать только карты Visa.
Заданный магазин может не поддерживать данный способ оплаты. К примеру, Робокасса, которую подключают к множеству магазинов предлагает различные тарифы для оплаты.
Робокасса как оплатить
Я сначала хотел оплатить вебмани, однако я позвонил в магазин. Оказалось, оплатить вебмани нельзя. У них не подключена эта опция. Хотя способ оплаты через вебмани предлагается на странице оплаты.

Третья причина — возможно ваша карта заблокирована. Опять же можно позвонить в банк и проверить это. Блокировка может быть осуществлена банком автоматически в случае наличия подозрительных операций у клиента.

Четвертая причина — у вас не подключена опция 3d Secure(MasterCard SecureCode в случае MasterCard).
Технология 3D Secure заключается в следующем: при оплате вам приходит СМС от банка, которую вы должны ввести в специальном окне. Эту СМС знаете только вы и банк. Мошенничество в данном случае достаточно трудно, для него потребуется и ваш телефон.
Эта опция нужна вам для оплаты на сумму больше 3 тыс. рублей. Это как раз мой случай. Я купил в интернет магазине газовую плиту Bosh. При оплате товара на сумму 22 тыс. рублей мне выдалось вот такое сообщение:
оплата картой Робокасса

Ошибка при оплате банковской картой.
Я был в замешательстве, не знал что делать. Сначала я думал, что это проблема магазина. Но сначала я все таки позвонил в банк. В моем случае это был Промсвязьбанк и карта Доходная.
Позвонив в поддержку Промсвязьбанка, мне предложили сначала пройти процедуру аутентификации

  1. Назвать 4 последних цифры номера карты
  2. Назвать фамилию имя отчество полностью
  3. Назвать кодовое слово.

Далее для подключения услуги 3d Secure от меня потребовали 2 номера из таблицы разовых ключей.  Вроде как услугу подключили, но через полчаса оплата снова не прошла. Позвонил в банк — сказали ожидайте когда подключится — услуга подключается не сразу. Нужно подождать.

Я решил проверить, подключена ли услуга. Я залогинился в Интернет-банк — увидел, что такая услуга есть(в ПСБ ритейл это можно посмотреть на странице карты, щелкнув по номеру карты)
банк 3D Secure
Еще раз попытка оплаты — мне высветилось окно, где я должен был ввести код подтверждения. После заполнения данных карты мне пришло СМС с кодом для оплаты
оплата 3d secure
Далее вуаля — заказ наконец то оплачен. Я получил следующее окно и статус заказа в магазине изменился на «Оплачен»
Мой заказ доставили в пункт назначения, где я его заберу в течение месяца. Главное оплата прошла.
Оплата картой через интернет

Самая частая ошибка 11070: ошибка аутентификации 3d-secure — причины

Самая частая ошибка, которая происходит при оплате картой — 11070: ошибка аутентификации 3dsecure. Есть 2 возможных причины этой ошибки

  1. Введен неверный одноразовый код. Вам пришел код, но при вводе вы допустили ошибку в цифре. В результате получили ошибку
  2. Одноразовый код протух. Время, которое вам дают на ввод одноразового кода при оплате, составляет не более 5 минут. Далее вам придется повторить оплату.

В любом случае, советуем повторить процесс оплаты и удостовериться, что вы ввели одноразовый пароль 3D Secure сразу после получения и пароль введен верно.

Ошибка процессинга карты — что это такое?

Процессинг банка — это сложная программа, которая отвечает за обработку транзакций по картам. Когда вы снимаете деньги в банкомате, делаете покупку, то идет запрос по интернет в данную систему. Проверяется есть ли на вашей карте деньги. Эта программа находится на серверах в Интернет.

Вы не можете повлиять на данную ошибку никак. Вам стоит обратиться на горячую линию банка или интернет-магазина, где вы осуществляете транзакцию. Исправление ошибки — дело специалистов, поддерживающих данную систему. Остается только ждать.

Вы можете попробовать осуществить оплату повторно примерно через пол-часа. По идее такие ошибки должны исправляться очень быстро. Аналогичная ошибка бывает с сообщением «Сервис временно недоступен». Это значит, что сломалась серверная сторона и сделать ничего нельзя. Только ждать починки

Что значит хост недоступен при оплате картой

Хост — это определенный сетевой адрес. Это может быть ip адрес или же просто доменное имя(к примеру, server1.sberbak.online). При оплате картой через терминал происходит подключение к определенному сетевому адресу(хосту). На данном хосте находится программное обеспечение, которое производит оплату — снимает с карты деньги, проверяет баланс и т.д.

Если хост недоступен, значит деньги снять нельзя. Есть 2 основных причины недоступности:

  1. Нет интернет на устройстве, с которого производится оплата. В современных терминалах может быть вшит Интернет-модуль, через который терминал связывается с сервером. Возможно он потерял сеть или завис. В этом случае может помочь перезагрузка или же выход по голое небо, где Мобильный интернет ловит отлично
  2. Хост недоступен по причине поломки. В этом случае рекомендуется обратиться на горячую линию банка, который поддерживает ваш терминал. Данная проблема должна решаться на стороне хоста. Он может быть недоступен по разным причинам: завис, упал сервер, идет обновление программного обеспечения.

Что такое ошибка в CVC карты?

CVC-код — это трехзначный код, который находится на обратной стороне вашей банковской карты. Если появляется ошибка в CVC карты, то рекомендуем проверить, правильно ли вы ввели этот код? Если все правильно, пожалуйста проверьте, введены ли правильно другие данные вашей карты Сбербанка, ВТБ или другого банка.

cvc код
CVC код нужен для того, чтоб проверить, есть ли у вас на руках данная карта в руках. Данная ошибка значит, что CVC код введен неверно. Просто осуществите оплату повторно и введите все данные верно

Проблема при регистрации токена — как решить?

Проблема при регистрации токена — частая ошибка, которая проявляется на сайте РЖД при оплате билетов.
Токен — это уникальный идентификатор(стока типа 23hjsdfjsdhfjhj2323dfgg), которая формируется когда вы заказываете билет. Это как бы ваша сессия оплаты. Ошибка возникает на стороне сервера оплаты.
Решений может быть два

  1. Проблемы на сервере РЖД. Сервер оплаты очень занят и перегружен из-за числа заказов. Возможно на нем ошибка. Рекомендуем в этом случае попробывать повторить оплату позднее
  2. Токен Истек. Это вина того, кто платит. Рассмотрим ситуацию: если вы оформили билет, а потом отошли от компьютера на полчаса, а потом вернулись и нажали оплатить. Ваш заказ аннулирован, т.к. вы не оплатили вовремя. При оплате вы получите ошибку. Нужно заново купить билет и оплатить его в течение 10 минут.

Если ошибка в течение часа сохраняется, рекомендуем обратиться на горячую линию РЖД.

Ошибка банковской карты — карта не поддерживается

Ошибка «карта не поддерживается» может возникать, если вы оплачиваете какую-либо услугу картой другой платежной системы, предоплаченной картой либо же Виртуальной картой. Это не значит, что карта у вас «неправильная», на ней нет денег или еще что-либо. Просто в данном конкретном случае нельзя использовать карту вашего типа. К примеру, виртуальные карты нельзя использовать при оплате в Google Play Market.

Решение простое: попробуйте использовать другую карту. Если ошибка повторится, то обратитесь в службу поддержки интернет-магазина или платежного сервиса, где осуществляете оплату.

Таблица с кодами ошибок при оплате.

Немногие знают, что при оплате картой система обычно выдает код ошибки. Например, E00 при оплате. Иногда по ошибке можно понять, в чем проблема

Код ошибки и описание
Код 00 – успешно проведенная операция.
Код 01 – отказать, позвонить в банк, который выпустил карту.
Код 02 – отказать, позвонить в банк, который выпустил карту (специальные условия).
Код 04 — изъять карту без указания причины.
Код 05 – отказать без указания причины.
Код 17 – отказать, отклонено пользователем карты.
код 19 — тех. ошибка на стороне банка
Код 41 – изъять, утерянная карта.
Код 43 – изъять, украденная карта.
код 50 — ?
Код 51 – отказать, на счете недостаточно средств.
Код 55 – отказать, неверно введенный ПИН-код.
Код 57 – отказать, недопустимый тип операции для данного вида карты
(например, попытка оплаты в магазине по карте предназначенной только для снятия наличных).
Код 61 – отказать, превышение максимальной суммы операции для данной карты.
Код 62 – отказать, заблокированная карта.
Код 65 – отказать, превышение максимального количества операции для данной карты.
Код 75 — отказать, превышение максимального количества неверных ПИН-кодов для данной карты.
Код 83 – отказать, ошибка сети (технические проблемы).
Код 91 – отказать, невозможно направить запрос (технические проблемы).
Код 96 – отказать, невозможно связаться с банком, который выдал карту.
Код Z3 — онлайн не работает, а в оффлайне терминал отклонил транзакцию.

Что делать, если с картой все ОК, но оплата не проходит?

Самая типичная проблема, когда оплата не проходит — сбой в банковской системе. В работе банка могут наблюдаться перебои. Это может быть не обязательно ваш банк, а банк который принимает платеж на стороне клиента(которому принадлежит терминал). В этом случае можно дать 2 совета

  1. Подождать и оплатить позднее. Сбои в работе оперативно решаются и уже через час оплата может пройти без проблем. Обычно о сбоях можно узнать по СМС сообщениям или позвонив на горячую линию вашего банка.
  2. Использовать другую карту. Если нельзя оплатить одной — нужно попробывать оплатить другой картой. Если оплата и другой картой не проходит, то это скорее всего сбой на стороне, принимающей платеж. Тут остается только ждать.

3 полезных совета при оплате картой через Интернет

Во первых — заведите себе специальную карту. Не используйте для оплаты зарплатную карту, на которой у вас все деньги. Оптимально — кредитная карта. Она позволяет в отдельных случаях вернуть часть суммы покупки(CashBack). Обычно это сумма до 5 процентов от покупки. Будьте внимательны, некоторые сервисы при оплате катой берут комиссии. И конечно же адрес страницы оплаты всегда должен начинаться с https и рядом с адресом должен стоять значок в виде замка(Соединение https).

Во вторых — не держите много денег на карте. На карте должно быть немногим больше суммы, необходимой вам для покупки. Примерно плюс 10% от общей стоимости покупки. Логика проста — с нулевой карты ничего не могут снять.
Делаете покупку — просто пополняете карту в интернет банке и получаете нужную сумму.

В третьих — Делайте оплату картой в известных магазинах. Почитайте отзывы о магазинах на Яндекс.Маркет. Если вы платите картой, будьте готовы к тому, что при отмене заказа могут вернуться на вашу карту не сразу.
В последний раз, когда я делал оплату заказа и потом возвращал заказ и деньги, возврат на карту шел в течение 7 дней. Помните — никто деньги вам сразу не вернет. Будьте готовы ждать.

Популярные вопросы и ответы про оплату

Может ли пройти онлайн-оплата, если вы указали неверный cvv/cvc, но в системе 3d- secure ввели верный код из SMS?

Это вопрос из IT диктанта. Ответ на него ДА, может.

Код cvv/cvc известен только банку, который выпустил карту. И именно банк решает, пропустить транзакцию или нет. Данный код может и не передаваться при оплате, хотя и его нужно будет вводить при оплате. Авторизовать операцию возможно и без данного кода. Т.е. пройдет эта операция или нет — решает банк.

Пройдет ли оплата картой, если неверно ввести ФИО плательщика

ФИО плательщика практически не влияет на успешность оплаты. Можно ввести любое имя, хоть «Котик Вася» и при верном вводе других реквизитов карты оплата пройдет.

Дмитрий Тачков

Дмитрий Тачков

Работник банка или другого фин. учреждения
Подробнее

Создатель проекта, финансовый эксперт

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

Статья была опубликована ровно 3 года назад, еле сам её нашел для дополнения.

Если при оплате картой вы сталкиваетесь с какой-то ошибкой, отказом терминала («деклайн»), то код ответа даст понимание, почему это случилось. Ниже расшифровки ответов платежных систем:
chek

Код 00 – успешно проведенная операция.
Код 01 – отказать, позвонить в банк-эмитент
Код 02 – отказать, позвонить в банк-эмитент (особое условие)
Код 03 Invalid merchant (Неверный мерчант ID), незарегистрированная торговая точка или агрегатор платежей
Код 04 — изъять карту без указания причины. Блок карты в связи с мошенничеством. Pick-up card.
Код 05 – Do not Honour. (Транзакция была отклонена банком без указания причин.

06 Error. Неизвестная ошибка на стороне банка, повторить
07 Pick-up card, special condition. Карта заблокирована банком в связи с мошенничеством
08 — обслуживать с идентификацией по документу и подписи либо отменить всю операцию
12 Invalid transaction card / issuer / acquirer Мерчант не принимает карты этого банка.
13 Invalid amount Сумма превысила лимит банка на транзакцию, возможно, ошибка ввода суммы
14 Invalid card number — Неверный номер карты либо карта заблокирована холдером/банком
17 – отказать, отклонено пользователем карты.
19 System Error  — Системная ошибка на стороне мерчанта/банка, нужно повторить транзакцию
21 No Action Taken Запрещено банком без каких либо объяснений
31 эмитент не найден в платёжной системе
32 частично завершено
34 Suspected Fraud Подозрении в мошенничестве
39 No Credit Account Отсутствует кредитный счет карты
41 Lost Card, Pickup; Карта утеряна, изьять
42 Special Pickup; Карта украдена, изьять
43 Hot Card, Pickup; Карта украдена, изьять
51 Not sufficient funds; Недостаточно средств для оплаты
54 Expired card; Срок карты истек
55 Incorrect PIN; Неверный пин
57 Transaction not permitted on card; Мерчант не принимает карты этого банка или недопустимый тип операции для данного вида карты (например, по карте можно только снять нал, без оплаты покупок)
58 Txn Not Permitted On Term; Мерчант не принимает этот вид операции, см. 57
59 Suspected Fraud; подозрение в мошенничестве.
61 Exceeds amount limit; сумма превышает разрешенный суточный максимум для карты
62 Restricted card; картсчет заморожен, блок карты
63 Security violation; картсчет заморожен, блок карты
64 — сумма отмены авторизации отлична от суммы оригинальной авторизации
65 — отказать, превышение максимального количества операции для данной карты //лимит  расходных операций по счету
67 — карта изъята в банкомате
75 Exceeds PIN Retry; пин введен максимальное количество раз
78 Function Not Available; номер карты не действителен или не существует
80 Ошибка сети
81 Ошибка в шифре PIN (МС)
82 CVV Validation Error; неверный cvv код)
83 – отказать, ошибка сети (технические проблемы)
86 невозможно проверить pin
88 ошибка шифрования Pin
91 Issuer not available; связь с банком отсутствует, тех.проблемы
93 Transaction violates law; транзакция незаконна
94 Duplicate Transaction; двойная транзакция.
96 System Error; системная ошибка на стороне мерчанта/не связаться с банком-эмитентом

100 (используется Visa, аналог кода 119 для MasterCard) — Нет разрешения. Неверный способ шифрования данных. (пример: банк-эмитент блокирует операции по магнитной полосе для Чипованной карты).
101 — Карта просрочена (примеры: истек срок действия карты или карта была перевыпущена)
117 — Неверный ПИН-код

119 для MC (см. код 100 выше): Unable to Encrypt Message — SecurePay’s security methods were unable to encrypt the message

Код 182 — отказ банка-эмитента. Возможно, на карте установлены ограничения по расчетам в интернете.

Код Z1 — техническая ошибка терминала; если нет приоритета PIN, то карта не обслуживается.
Код Z3 — онлайн не работает, а в оффлайне терминал отклонил транзакцию.
Q1 — аутентификация карты не прошла
NX — внутренняя ошибка терминала, например, отсутствие маршрута сети или сброс IP-адреса

ОБ — не обслуживать

Pos-errors (pdf)

Result Code
Description
Как решить проблему
Куда обратиться

76

51

076

9859

116

603

Insufficient funds

Not sufficient funds

Decline, not sufficient funds

Decline, not sufficient funds
На балансе карты недостаточно средств
Если на карте баланс больше или равен сумме транзакции, а отказ все равно происходит по причине недостатка средств, тогда возможны такие причины:
— банк-эмитент удерживает дополнительные комиссии с держателя карты. Это может возникать в случаях погашение кредита посредством интернет-платежа, либо если договор на обслуживание банковской карты предусматривает дополнительные комиссии;
— происходит конвертация из валюты покупки в валюту карты. Убедитесь, что средств на карте достаточно для покрытия комиссии за конвертацию валют. Некоторые банки-эмитенты устанавливают комиссии на конвертацию валют как-правило в пределах 1%
Банк-эмитент (банк, выпустивший карту)

50

5

9905

180

Transaction declined

Do not honor

Do not Honour

Transaction declined

Do not honor
Не обслуживать
Пожалуй, самый общий и не определенный код отказа. Он может указывать на любые ограничения, наложенные банком-эмитентом, которые банк пожелал оставить не уточненными.
Возможные причины:
— карта заблокирована или на ней установлен статус
— на карте не установлен лимит на оплату в интернет, либо этот лимит недостаточный
— сработали настройки системы безопасности банка-эмитента
— сработали ограничения по сумме или количеству операций по карте у банка-эмитента
— банк-эмитент установил ограничения на проведение данного типа транзакций
— по карте не разрешены международные платежи (доместиковая карта)
— банк-эмитент установил ограничение на транзакции с двойной конвертацией валют (DCC)
— банк-эмитент установил ограничения на транзакции в данной валюте
— банк-эмитент установил ограничения на транзакции в данной стране
— банк-эмитент в США ограничил по карте операции в валюте, отличной от USD
— банк-эмитент в США ограничил по карте операции в странах бывшего СНГ и других рисковых регионах
Банк-эмитент (банк, выпустивший карту). Если банк-эмитент не видит данную транзакцию, тогда необходимо обратиться в банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

55

055

12

902

9882

9912

Invalid transaction

Invalid transaction card / issuer / acquirer

Decline reason message: invalid transaction

Invalid transaction
Операция для данной карты или мерчанта не разрешена
Причины могут быть теми же, что и для Do not honor
Банк-эмитент (банк, выпустивший карту). Если банк-эмитент не видит данную транзакцию, тогда необходимо обратиться в банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

95

095

61

061

121

9861

9863

Decline, exceeds withdrawal amount limit

Exceeds amount limit

Exceeds withdrawal limit

Withdrawal limit would be exceeded

Withdrawal limit already reached

Card exceeds withdrawal amount limit
На карте достигнут лимит по сумме операций в сутки, в месяц или на разовую транзакцию
Возможные причины (более детально смотрите по банку-эквайеру выше):
— на карте не установлен лимит операций в интернет или он уже достигнут или будет достигнут с текущей транзакцией
— общий лимит по сумме для операций покупок по карте уже достигнут или будет достигнут с текущей транзакцией
— карта не открыта для расчетов в интернет
— на карте не активирован сервис 3D-Secure из-за чего операции в интернет без 3D-Secure пароля попадают под ограничения банка-эмитента
Банк-эмитент (банк, выпустивший карту)

65

065

82

082

9860

Activity count exceeded

Exceeds frequency limit

Maximum number of times used

Card exceeds withdrawal frequency limit
На карте достигнут лимит по количеству операций в сутки или в месяц
Возможные причины (более детально смотрите по банку-эквайеру выше):
— на карте не установлен лимит операций в интернет или он уже достигнут или будет достигнут с текущей транзакцией
— общий лимит по количеству операций покупок по карте уже достигнут или будет достигнут с текущей транзакцией
— карта не открыта для расчетов в интернет
— на карте не активирован сервис 3D-Secure из-за чего операции в интернет без 3D-Secure пароля попадают под ограничения банка-эмитента
Банк-эмитент (банк, выпустивший карту)

57

119

Not permitted to client

Transaction not permitted on card

Transaction not permitted to card

Decline, transaction not permitted to cardholder

Transaction not permitted to card

Not permitted to client

Decline, transaction not permitted to cardholder

Function Not Permitted To Cardholder

Not permitted to client
Транзакция не разрешена для карты или клиента

Банк эмитент отклонил транзакцию так как она не может быть осуществлена для этой карты или клиента.

Возможные причины (более детально смотрите по банку-эквайеру выше):
— данный карточный продукт не рассчитан для такого типа операции
— для данной карты не настроен такой тип операции на стороне банка-эмитента

Банк-эмитент (банк, выпустивший карту)

58

120

Decline, transaction not permitted to terminal

Not permitted to merchant

The requested service is not permitted for terminal

Function Not Permitted To Terminal

Txn Not Permitted On Term

Not permitted to merchant
Транзакция не разрешена для терминала или мерчанта
Мерчант или терминал настроен некорректно, или данный тип операции не разрешен на стороне банка-эквайера или платежного провайдера. В первую очередь нужно уточнить конфигурацию торговой точки у платежного провайдера и список допустимых операций
Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

211

N7

9881

Bad CVV2

Decline for CVV2 Failure

CVV2 is invalid

Invalid CVV2

Decline Cvv2 failure

Invalid CVV2 code
Введен неверный CVV2 код во время проведения платежа
Необходимо проверить CVV2 код на оборотной стороне карты. Код состоит из 3 цифр для Visa/MasterCard/Discover и из 4 цифр для карт American Express.
CVV2 код также может называться CVC2, CID, CSC2 код.
В некоторых случаях такой код отказа может возвращаться и при вводе неверного срока действия карты.
Стоит обратить внимание, если банк эмитент использует динамический код CVV2, генерируемый на короткий промежуток времени в клиент-банке — срок жизни такого CVV2 кода мог истечь на момент совершения операции
Банк-эмитент (банк, выпустивший карту)

058

59

059

62

062

9858

104

Restricted card

Restricted status

Decline, restricted card

Card is restricted

Your card is restricted

Restricted Card
Операции по карте ограничены
Возможные причины:
— операции по карте в данном регионе/стране не разрешены
— на карте установлен статус, ограничивающий платежи
— для карты не доступны интернет-платежи
Банк-эмитент (банк, выпустивший карту)

56

056

Transaction not supported by institution
Your card is not supported. Please use card of other payment system
Данный тип платежной системы не поддерживается
Банк-эквайер или платежный провайдер не поддерживает платежную систему данной карты.
Отказ может возникать в таких случаях:
— оплата картой локальной платежной системы за рубежом. Например картой платежной системы МИР за пределами РФ, картой платежной системы ПРОСТИР за пределами Украины
— оплата картами оплата AMERICAN EXPRESS, Diners Club,JCB, China Union Pay, Discover которые не поддерживаются платежным провайдером
— оплата картой Monobank в счет микро-кредитной организации (погашение кредита), либо выдача кредит. Монобанк блокирует операции в адрес МФО по некоторым типам карт
Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру
Монобанк, если карта этого банка

100

1000

Decline (general, no comments)

General decline, no comments

General decline

General decline
Общий отказ.
Причины могут быть теми же, что и для Do not honor
Банк-эмитент (банк, выпустивший карту)

54

101

Expired card

Decline, expired card

Expired card

Pick-up, expired card

Card expired

Invalid card expiry date
Истек срок действия карты
Возможные причины
— срок действия карты закончился
— указан неверный срок действия карты
— карта была перевыпущена с новым сроком
Банк-эмитент (банк, выпустивший карту)

14

111

9852

1012

305113

Card number does not exist

Invalid card number

No such card

Decline, card not effective

Invalid card

Wrong card number

Invalid card number
Неверный номер карты
Возможные причины:
— неверный номер карты
— карта не действительна
— оплата картой локальной платежной системы за рубежом. Например картой платежной системы МИР за пределами РФ, картой платежной системы ПРОСТИР за пределами Украины
— оплата картами оплата AMERICAN EXPRESS, Diners Club,JCB, China Union Pay, Discover которые не поддерживаются платежным провайдером
— операции по карте в данном регионе/стране не разрешены
— на карте установлен статус, ограничивающий платежи
Банк-эмитент (банк, выпустивший карту)

909

42

7

07

108

9875

207

42

External Decline Special Condition

Special Pickup

Pick up card (special)

Pick up card, special condition (fraud account)

Pick-up, special conditions

Decline, refer to card issuer’s special conditions

Pick up card, special condition (fraud account)
Специальный отказ банка-эмитента. Владелец карты подозревается в мошенничестве.
Банк-эмитент подозревает держателя карты в мошенничестве, либо система безопасности (антифрод-система) банка эмитента отклонила транзакцию
Банк-эмитент (банк, выпустивший карту)

122

63

89

Decline, security violation

Security violation

Security violation
Отказ по соображениям безопасности
Код отказа может отдаваться как банком-эмитентом, так и банком-эквайером. Возможные причины:
— карточный счет заморожен или заблокирован
— ограничения правил безопасности (система Antifraud на стороне любого из участников)
Банк-эмитент (банк, выпустивший карту)
Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

200

76

114

21

Invalid account

Decline, no account of type requested

No To Account

Invalid card number
Неверный номер карты или счета
Возможные причины:
— счет карты закрыт или заблокирован
— по счету запрещены расходные операции
— карта не действительна
— неверный номер карты
— оплата картой локальной платежной системы за рубежом. Например картой платежной системы МИР за пределами РФ, картой платежной системы ПРОСТИР за пределами Украины
— оплата картами оплата AMERICAN EXPRESS, Diners Club,JCB, China Union Pay, Discover которые не поддерживаются платежным провайдером
— операции по карте в данном регионе/стране не разрешены
— на карте установлен статус, ограничивающий платежи
— карта не предназначена для расчетов в интернет
Банк-эмитент (банк, выпустивший карту)

74

074

907

911

910

9872

91

291

82

908

810

Unable to authorize

Decline reason message: card issuer or switch inoperative

Destination not available

Issuer or switch inoperative

Issuer unavailable

Time-out at issuer

Decline reason message: card issuer timed out

Decline reason message: transaction destination cannot be found for routing

Transaction timeout

Acquiring bank request timeout

Ошибка связи: таймаут

Недоступен эмитент/эквайер

Таймаут при попытке связи с банком-эмитентом. Как правило такая ошибка возникает при проблемах технического характера на стороне любого из участников: банка-эквайера, банка эмитента, платежной системы Visa/MasterCard/МИР.

В первую очередь необходимо обратиться в банк-эквайер для выяснения причины и определения, на чьей стороне неисправности.

Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

Банк-эмитент (при получении 91 кода)

15

815

92

No such card/issuer

No such issuer

Invalid Issuer

Invalid card number
Указан неверный номер карты
см. Неверный номер карты

811

96

0

System error
Unknown payment system error
Технический сбой на стороне эквайера/платежной системы
Технический сбой на стороне банка-эквайера
Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

4

04

44

43

200

104

Pick-up (general, no comments)

Pick up card

Your card is restricted

Hot Card, Pickup (if possible)

Hold — Pick up card

Pick-up, restricted card

Pick-up, card acceptor contact card acquirer

Pick up card (no fraud)
Изъять карту
Банк-эмитент отклонил транзакцию с сообщением о необходимости изъять карту, если это возможно. Как правило причиной является блокировка карты по причине утери
Банк-эмитент (банк, выпустивший карту)

52
Number of PIN tries exceeded
PIN tries exceeded
Превышен лимит попыток ввода PIN-кода
На карте установлен статус в связи с превышением попыток ввода PIN-кода при оплате в наземных POS-терминалах или использования карты в банкомате.
Также причиной может быть то, что карта только что выпущена и первой операцией для нее должна быть операция смены PIN-кода
Банк-эмитент (банк, выпустивший карту)

205

110

13

567

9913

9867

Invalid advance amount

Decline, invalid amount

Invalid amount

Invalid amount
Неверная сумма
Причины отказа:
— слишком маленькая сумма. Если карта открыта в валюте, убедитесь, что сумма транзакции не менее 1 цента доллара США или 1 Евро цента
— слишком большая сумма
— из суммы транзакции невозможно удержать сумму комиссии платежного провайдера. Убедитесь, что сумма транзакции не меньше суммы всех комиссий
— ограничения на карте плательщика на стороне банка, который выпуcтил карту.
— достигнуты лимиты на стороне банка-эквайера.
Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру, Банк-эмитент (банк, выпустивший карту)

948

102

202

9934

59

Suspected fraud

Decline, suspected fraud

Suspected fraud
Подозрение в мошенничестве
Система безопасности одного из участников процессинговой цепочки подозревает участие карты в мошеннических действиях или в компрометации.
Также, возможно, что банк-эмитент заблокировал карту/счет в связи с подозрительными действиями, скиммингом, компрометацией
Банк-эмитент (банк, выпустивший карту)

800

904

30

030

9874

574

Format error

Decline reason message: format error

Format error
Ошибка формата сообщения
Технический сбой при попытке авторизовать транзакцию у банка-эмитента. Вероятно, какие-то из атрибутов транзакции указаны неверно. Необходимо уточнить у банка детали, которые вызвали такой отказ.
Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

41

540

208

9840

Lost Card, Pickup

Pick up card (lost card)

Lost card

Lost card, pick-up

Pick-up, lost card

Lost card
Карта утеряна
На карте установлен статус утеряна по заявлению картодержателя.
Банк-эмитент (банк, выпустивший карту)

93

124

Violation of law

Decline, violation of law

Suspected fraud
Транзакция не может быть выполнена: нарушение закона
Банк-эмитент отказал в осуществлении транзакции во избежание нарушения закона
Банк-эмитент (банк, выпустивший карту)

909

96

Decline reason message: system malfunction

System malfunction

System malfunction
Технический сбой на стороне эквайера/платежной системы
Технический сбой на стороне банка-эквайера
Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

01

02

107

108

Refer to card issuer

Decline, refer to card issuer

Decline, refer to card issuer special conditions

Refer to issuer

Decline, refer to card issuer
Обратиться к банку-эмитенту
Отказ банка-эмитента. Держатель карты должен обратиться в свой банк
Банк-эмитент (банк, выпустивший карту)

201
Incorrect PIN
Incorrect PIN
Неверный PIN
На карте установлен статус в связи с превышением попыток ввода PIN-кода при оплате в наземных POS-терминалах или использования карты в банкомате.
Также причиной может быть то, что карта только что выпущена и первой операцией для нее должна быть операция смены PIN-кода
Банк-эмитент (банк, выпустивший карту)

210
Bad CAVV
Do not honor
Неверный CAVV
Ошибка возникает при проверке 3DSecure на стороне банка-эмитента. Причиной может случить либо неверная настройка 3DSecure на карте, либо некорректная реализация Apple/Google Pay токенов на стороне платежной платформы, мерчанта или банка-эквайера
Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

43

209

057

9841

Pick up card (stolen card)

Pick-up, stolen card

Stolen card

Stolen card, pick-up

Lost/Stolen

Lost or stolen card

Stolen card
Карта украдена
Банк-эмитент установил на карте статус «украдена» по обращению держателя карты
Банк-эмитент (банк, выпустивший карту)

6000

106

Pre-authorizations are not allowed within this context.

Merchant is not allowed preauth

Preauth not allowed
Операция предавторизации на разрешена для торговца
Необходимо обратиться к платежному провайдеру или банку-эквайеру для активации двухстадийной оплаты перед пред-авторизацию/завершение (preauth/capture или prepurchase/completion или authorization/sale)
Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

03

3

109

9903

20003

Invalid merchant

Decline, invalid merchant

Merchant is not configured correctly
Мерчант настроен некорректно
Необходимо обратиться к платежному провайдеру или банку-эквайеру для настройки или активации мерчанта или мерчант-аккаунта.
Также причиной может быть некорректно переданный идентификатор мерчанта в транзакции
Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

Реализация MPI может обрабатывать или не обрабатывать некоторые ошибки, которые возникают при выполнении вызовов MPI . Это могут быть ошибки, которые генерируют исключения или прерывания, например, ошибки для операций с плавающей точкой или при нарушении доступа. Набор ошибок, которые корректно обрабатываются MPI , зависит от реализации. Каждая такая ошибка генерирует исключение MPI .

Вышеупомянутый текст имеет приоритет над любым текстом по обработке ошибок внутри этого документа. Текст, в котором говорится, что ошибки будут обработаны, должен содержать информацию о том, как они могут быть обработаны.

Пользователь может связывать обработчик ошибок с коммуникатором. Эта процедура будет использоваться для любого исключения MPI , которое имеет место в течение вызова MPI для обмена с использованием этого коммуникатора. Вызовы MPI , которые не связаны ни с одним коммуникатором, рассматриваются, как относящиеся к коммуникатору MPI_COMM_WORLD .

Привязка обработчиков ошибок к коммуникатору исключительно локальная: различные процессы могут присоединить различные обработчики ошибок к тому же самому коммуникатору.

Вновь созданный коммуникатор наследует обработчик ошибок, который связан с «родительским» коммуникатором. В частности, пользователь может определить «глобальный» обработчик ошибок для всех коммуникаторов, связывая этот обработчик с коммуникатором MPI_COMM_WORLD сразу после инициализации.

В MPI доступны несколько предопределенных обработчиков ошибок :

    MPI_ERRORS_ARE_FATAL — обработчик, который после вызова прерывает работу программы на всех процессах. Это имеет тот же эффект, как если бы процессом, который запустил обработчик, был вызван MPI_ABORT .
  • MPI_ERRORS_RETURN — обработчик не делает ничего, кроме представления кода ошибки пользователю.
  • Реализации могут обеспечивать дополнительные обработчики ошибок, программисты также могут написать свои собственные обработчики ошибок.

    Обработчик ошибок MPI_ERRORS_ARE_FATAL связан по умолчанию с MPI_COMM_WORLD после его инициализации. Таким образом, если пользователь не желает управлять обработкой ошибок самостоятельно, то каждая ошибка в MPI обрабатывается как фатальная. Так как все вызовы MPI возвращают код ошибки, пользователь может работать с ошибками в головной программе, используя возвращенные вызовами MPI коды и выполняя подходящую программу восстановления в том случае, когда вызов не был успешным. В этом случае будет использоваться обработчик ошибок MPI_ERRORS_RETURN . Обычно более удобно и более эффективно не проверять ошибки после каждого вызова, а иметь специализированный обработчик ошибок.

    После того, как ошибка обнаружена, состояние MPI является неопределенным. Это означает, что даже если используется определенный пользователем обработчик ошибок или
    MPI_ERRORS_RETURN , не обязательно , что пользователю будет разрешено продолжить использовать MPI после того, как ошибка определена. Цель таких обработчиков состоит в том, чтобы пользователь получил определенное им сообщение об ошибке и предпринял действия, не относящиеся к MPI (такие, как очистки буферов ввода/вывода) перед выходом из программы. Реализация MPI допускает продолжение работы приложения после возникновения ошибки, но не требует, чтобы так было всегда.

    Совет разработчикам: Хорошие реализации MPI должны максимально ограничивать воздействие ошибки, чтобы нормальное функционирование могло продолжаться после того, как обработчик ошибок был запущен. В документации должна содержаться информация относительно возможного эффекта по каждому классу ошибок.[]

    Обработчик ошибок MPI является скрытым объектом, связанным с дескриптором. Процедуры MPI обеспечивают создание новых обработчиков ошибок, связывают обработчики ошибок с коммуникаторами и проверяют, какой обработчик ошибок связан с коммуникатором.

    Синтаксис функции MPI_ERRHANDLER_CREATE представлен ниже.

    IN function установленная пользователем процедура обработки ошибок
    OUT errhandler MPI обработчик ошибок (дескриптор)

    int MPI_Errhandler_create(MPI_Handler_function *function,
    MPI_Errhandler *errhandler)

    MPI_ERRHANDLER_CREATE(FUNCTION, ERRHANDLER, IERROR)
    EXTERNAL FUNCTION
    INTEGER ERRHANDLER, IERROR

    Функция MPI_ERRHANDLER_CREATE регистрирует процедуру пользователя в качестве обработчика MPI исключений. Возвращает в errhandler дескриптор зарегистрированного обработчика исключений.

    В языке Си процедура пользователя должна быть функцией типа MPI_Handler_function , которая определяется как:

    Первый аргумент является идентификатором используемого коммуникатора, второй является кодом ошибки, который будет возвращен процедурой MPI , которая выявила ошибку. Если процедура возвратила MPI_ERR_IN_STATUS , то это значит, что код ошибки возвращен в статусный объект обращения, которое запустило обработчик ошибок. Остающиеся аргументы есть аргументы « stdargs », номер и значение которых являются зависимыми от реализации. В реализации должны быть ясно документированы эти аргументы. Адреса используются так, чтобы обработчик мог быть написан на языке ФОРТРАН.

    Синтаксис функции MPI_ERRHANDLER_SET представлен ниже.

    IN comm коммуникатор , на котором устанавливается обработчик ошибок (дескриптор)
    IN errhandler новый обработчик ошибок для коммуникатора (дескриптор)

    int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)

    MPI_ERRHANDLER_SET(COMM, ERRHANDLER, IERROR)
    INTEGER COMM, ERRHANDLER, IERROR

    Функция MPI_ERRHANDLER_SET связывает новый обработчик ошибок errorhandler с коммуникатором comm на вызывающем процессе. Заметим, что обработчик ошибок всегда связан с коммуникатором.

    Синтаксис функции MPI_ERRHANDLER_GET представлен ниже.

    IN comm коммуникатор, из которого получен обработчик ошибок (дескриптор)
    OUT errhandler MPI обработчик ошибок, связанный с коммуникатором (дескриптор)

    int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)

    MPI_ERRHANDLER_GET(COMM, ERRHANDLER, IERROR)
    INTEGER COMM, ERRHANDLER, IERROR

    Функция MPI_ERRHANDLER_GET возвращает в errhandler дескриптор обработчика ошибок, связанного с коммуникатором comm. Пример: библиотечная функция может записать на входной точке текущий обработчик ошибок для коммуникатора, затем установить собственный частный обработчик ошибок для этого коммуникатора и восстановить перед выходом предыдущий обработчик ошибок.

    Синтаксис функции MPI_ERRHANDLER_FREE представлен ниже.

    INOUT errhandler MPI обработчик ошибок (дескриптор)

    int MPI_Errhandler_free(MPI_Errhandler *errhandler)

    MPI_ERRHANDLER_FREE(ERRHANDLER, IERROR)
    INTEGER ERRHANDLER, IERROR

    Эта функция маркирует обработчик ошибок, связанный с errhandler для удаления и устанавливает для errhandler значение MPI_ERRHANDLER_NULL . Обработчик ошибок будет удален после того, как все коммуникаторы, связанные с ним, будут удалены.

    Синтаксис функции MPI_ERROR_STRING представлен ниже.

    MPI_ERROR_STRING(errorcode, string, resultlen)

    IN errorcodeк код ошибки, возвращаемый процедурой MPI
    OUT string текст, соответствующий errorcode
    OUT resultlen длина (в печатных знаках) результата, возвращаемого в string

    int MPI_Error_string(int errorcode, char *string, int *resultlen)

    MPI_ERROR_STRING(ERRORCODE, STRING, RESULTLEN, IERROR)
    INTEGER ERRORCODE, RESULTLEN, IERROR
    CHARACTER*(*) STRING

    void MPI::Get_error_string(int errorcode, char* name, int& resulten)

    Функция MPI_ERROR_STRING возвращает текст ошибки, связанный с кодом или классом ошибки. Аргумент string обязан иметь длину не менее _MAX_ERROR_STRING знаков. Число фактически записанных символов возвращается в выходном аргументе resultlen .

    Объяснение: Форма этой функции была выбрана такой для того, чтобы сделать привязки в языке ФОРТРАН и Си похожими. Версия, которая возвращает указатель на строку, создает две проблемы. Во первых, возвращенная строка должна быть статически распределена и различаться для каждого сообщения об ошибке (позволяя указателям, возвращенным успешными обращениями к MPI_ERROR_STRING , указать правильное сообщение). Во вторых, в языке ФОРТРАН функция, объявленная, как возвращающая CHARACTER*(*), может не ссылаться, например, на оператор PRINT .[]

    Next: Коды и классы ошибок. Up: Управление исполнительной средой MPI Previous: Получение сведений об исполнительной &nbsp Contents Alex Otwagin 2002-12-10

    Источник

    «Мне ANSYS ошибку выдаёт» или мини-гайд по диагностике проблем с 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-служб в рамках техподдержки приходится решать довольно часто, и не на все вопросы удаётся найти ответы в интернетах. В свете этих обстоятельств представляю вашему вниманию небольшой гайд по решению различных проблем, связанных с 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 не задана, то приложение просто закроется. Чтобы исключить этот вариант, нужно убедиться, что сервер лицензий виден всем узлам, т.к. хост-процесс, запрашивающий лицензию, может родиться на любом из них.

    I am having problem when running MPI codes using NVIDIA MPS Service on multi-GPU nodes.

    The system that I am using has 2 K80 GPUs (total of 4 GPUs).

    Basically, I first set the GPU mode to exclusive_process:

    nvidia_smi -c 3
    

    Then I start the MPS Service:

    nvidia-cuda-mps-control -d
    

    When I increase the number of processes and run my code I get the following error:

     all CUDA-capable devices are busy or unavailable
    

    Here is an example:

    This is my code:

    #include <stdio.h>
    #include <stdlib.h>
    #include "cuda_runtime.h"
    #include "mpi.h"
    #define __SIZE__ 1024
    
    int main(int argc, char **argv)
    {
    
        cudaError_t cuda_err = cudaSuccess;
        void *dev_buf;
    
        MPI_Init(&argc, &argv);
    
        int my_rank = -1;
        int dev_cnt = 0;
        int dev_id = -1;
    
        MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
    
        cuda_err = cudaGetDeviceCount(&dev_cnt);
        if (cuda_err != cudaSuccess)
            printf("cudaGET Error--on rank %d %sn", my_rank, cudaGetErrorString(cuda_err));
    
        dev_id = my_rank % dev_cnt;
    
        printf("myrank=%d dev_cnt=%d, dev_id=%dn", my_rank, dev_cnt, dev_id);
    
        cuda_err = cudaSetDevice(dev_id);
        if (cuda_err != cudaSuccess)
            printf("cudaSet Error--on rank %d %sn", my_rank, cudaGetErrorString(cuda_err));
    
        cuda_err = cudaMalloc((void **) &dev_buf, __SIZE__);
        if (cuda_err != cudaSuccess)
            printf("cudaMalloc Error--on rank %d %sn", my_rank, cudaGetErrorString(cuda_err))
        else
            printf("cudaMalloc Success++, %d n", my_rank);
    
    
        MPI_Finalize();
        return 0;
    }
    

    Here is the output for 12 processes:

    #mpirun -n 12 -hostfile hosts ./hq_test
    
    myrank=0 dev_cnt=4, dev_id=0
    myrank=1 dev_cnt=4, dev_id=1
    myrank=2 dev_cnt=4, dev_id=2
    myrank=3 dev_cnt=4, dev_id=3
    myrank=4 dev_cnt=4, dev_id=0
    myrank=5 dev_cnt=4, dev_id=1
    myrank=6 dev_cnt=4, dev_id=2
    myrank=7 dev_cnt=4, dev_id=3
    myrank=8 dev_cnt=4, dev_id=0
    myrank=9 dev_cnt=4, dev_id=1
    myrank=10 dev_cnt=4, dev_id=2
    myrank=11 dev_cnt=4, dev_id=3
    cudaMalloc Success++, 8
    cudaMalloc Success++, 10
    cudaMalloc Success++, 0
    cudaMalloc Success++, 1
    cudaMalloc Success++, 3
    cudaMalloc Success++, 7
    cudaMalloc Success++, 9
    cudaMalloc Success++, 6
    cudaMalloc Success++, 4
    cudaMalloc Success++, 2
    cudaMalloc Success++, 5
    cudaMalloc Success++, 11
    

    Here is the output for 14 processes:

     #mpirun -n 14 -hostfile hosts ./hq_test
    
    myrank=0 dev_cnt=4, dev_id=0
    myrank=1 dev_cnt=4, dev_id=1
    myrank=2 dev_cnt=4, dev_id=2
    myrank=3 dev_cnt=4, dev_id=3
    myrank=4 dev_cnt=4, dev_id=0
    myrank=5 dev_cnt=4, dev_id=1
    myrank=6 dev_cnt=4, dev_id=2
    myrank=7 dev_cnt=4, dev_id=3
    myrank=8 dev_cnt=4, dev_id=0
    myrank=9 dev_cnt=4, dev_id=1
    myrank=10 dev_cnt=4, dev_id=2
    myrank=11 dev_cnt=4, dev_id=3
    myrank=12 dev_cnt=4, dev_id=0
    myrank=13 dev_cnt=4, dev_id=1
    cudaMalloc Success++, 11
    cudaMalloc Success++, 3
    cudaMalloc Success++, 7
    cudaMalloc Success++, 2
    cudaMalloc Success++, 10
    cudaMalloc Success++, 6
    cudaMalloc Success++, 1
    cudaMalloc Success++, 8
    cudaMalloc Error--on rank 13 all CUDA-capable devices are busy or unavailable
    cudaMalloc Error--on rank 5 all CUDA-capable devices are busy or unavailable
    cudaMalloc Error--on rank 9 all CUDA-capable devices are busy or unavailable
    cudaMalloc Error--on rank 4 all CUDA-capable devices are busy or unavailable
    cudaMalloc Error--on rank 0 all CUDA-capable devices are busy or unavailable
    cudaMalloc Error--on rank 12 all CUDA-capable devices are busy or unavailable
    

    Note: I have already tried changing CUDA_DEVICE_MAX_CONNECTIONS value, but it didn’t help.

    I’d appreciate if you share your thoughts on this with me.

    I am having problem when running MPI codes using NVIDIA MPS Service on multi-GPU nodes.

    The system that I am using has 2 K80 GPUs (total of 4 GPUs).

    Basically, I first set the GPU mode to exclusive_process:

    nvidia_smi -c 3
    

    Then I start the MPS Service:

    nvidia-cuda-mps-control -d
    

    When I increase the number of processes and run my code I get the following error:

     all CUDA-capable devices are busy or unavailable
    

    Here is an example:

    This is my code:

    #include <stdio.h>
    #include <stdlib.h>
    #include "cuda_runtime.h"
    #include "mpi.h"
    #define __SIZE__ 1024
    
    int main(int argc, char **argv)
    {
    
        cudaError_t cuda_err = cudaSuccess;
        void *dev_buf;
    
        MPI_Init(&argc, &argv);
    
        int my_rank = -1;
        int dev_cnt = 0;
        int dev_id = -1;
    
        MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
    
        cuda_err = cudaGetDeviceCount(&dev_cnt);
        if (cuda_err != cudaSuccess)
            printf("cudaGET Error--on rank %d %sn", my_rank, cudaGetErrorString(cuda_err));
    
        dev_id = my_rank % dev_cnt;
    
        printf("myrank=%d dev_cnt=%d, dev_id=%dn", my_rank, dev_cnt, dev_id);
    
        cuda_err = cudaSetDevice(dev_id);
        if (cuda_err != cudaSuccess)
            printf("cudaSet Error--on rank %d %sn", my_rank, cudaGetErrorString(cuda_err));
    
        cuda_err = cudaMalloc((void **) &dev_buf, __SIZE__);
        if (cuda_err != cudaSuccess)
            printf("cudaMalloc Error--on rank %d %sn", my_rank, cudaGetErrorString(cuda_err))
        else
            printf("cudaMalloc Success++, %d n", my_rank);
    
    
        MPI_Finalize();
        return 0;
    }
    

    Here is the output for 12 processes:

    #mpirun -n 12 -hostfile hosts ./hq_test
    
    myrank=0 dev_cnt=4, dev_id=0
    myrank=1 dev_cnt=4, dev_id=1
    myrank=2 dev_cnt=4, dev_id=2
    myrank=3 dev_cnt=4, dev_id=3
    myrank=4 dev_cnt=4, dev_id=0
    myrank=5 dev_cnt=4, dev_id=1
    myrank=6 dev_cnt=4, dev_id=2
    myrank=7 dev_cnt=4, dev_id=3
    myrank=8 dev_cnt=4, dev_id=0
    myrank=9 dev_cnt=4, dev_id=1
    myrank=10 dev_cnt=4, dev_id=2
    myrank=11 dev_cnt=4, dev_id=3
    cudaMalloc Success++, 8
    cudaMalloc Success++, 10
    cudaMalloc Success++, 0
    cudaMalloc Success++, 1
    cudaMalloc Success++, 3
    cudaMalloc Success++, 7
    cudaMalloc Success++, 9
    cudaMalloc Success++, 6
    cudaMalloc Success++, 4
    cudaMalloc Success++, 2
    cudaMalloc Success++, 5
    cudaMalloc Success++, 11
    

    Here is the output for 14 processes:

     #mpirun -n 14 -hostfile hosts ./hq_test
    
    myrank=0 dev_cnt=4, dev_id=0
    myrank=1 dev_cnt=4, dev_id=1
    myrank=2 dev_cnt=4, dev_id=2
    myrank=3 dev_cnt=4, dev_id=3
    myrank=4 dev_cnt=4, dev_id=0
    myrank=5 dev_cnt=4, dev_id=1
    myrank=6 dev_cnt=4, dev_id=2
    myrank=7 dev_cnt=4, dev_id=3
    myrank=8 dev_cnt=4, dev_id=0
    myrank=9 dev_cnt=4, dev_id=1
    myrank=10 dev_cnt=4, dev_id=2
    myrank=11 dev_cnt=4, dev_id=3
    myrank=12 dev_cnt=4, dev_id=0
    myrank=13 dev_cnt=4, dev_id=1
    cudaMalloc Success++, 11
    cudaMalloc Success++, 3
    cudaMalloc Success++, 7
    cudaMalloc Success++, 2
    cudaMalloc Success++, 10
    cudaMalloc Success++, 6
    cudaMalloc Success++, 1
    cudaMalloc Success++, 8
    cudaMalloc Error--on rank 13 all CUDA-capable devices are busy or unavailable
    cudaMalloc Error--on rank 5 all CUDA-capable devices are busy or unavailable
    cudaMalloc Error--on rank 9 all CUDA-capable devices are busy or unavailable
    cudaMalloc Error--on rank 4 all CUDA-capable devices are busy or unavailable
    cudaMalloc Error--on rank 0 all CUDA-capable devices are busy or unavailable
    cudaMalloc Error--on rank 12 all CUDA-capable devices are busy or unavailable
    

    Note: I have already tried changing CUDA_DEVICE_MAX_CONNECTIONS value, but it didn’t help.

    I’d appreciate if you share your thoughts on this with me.

    -20010 Транзакция отклонена по причине того, что размер платежа превысил установленные лимиты Банком-эмитентом. Операция отклонена. Обратитесь в банк, выпустивший карту. -9000 Состояние начала транзакции. Операция отклонена. Обратитесь в магазин. -2101 Блокировка по e-mail Операция отклонена. Обратитесь в магазин. -2020 Получен неверный ECI. Код выставляется в том случае, если пришедший в PaRes ECI не соответствует допустимому значению для данной МПС. Правило работает только для MasterCard (01,02) и Visa (05,06), где значения в скобках — допустимые для МПС. Операция отклонена. Обратитесь в банк, выпустивший карту. -2019 PARes от эмитента содержит iReq, вследствие чего платёж был отклонён. Операция отклонена. Обратитесь в банк, выпустивший карту. -2018 Directory server Visa или MasterCard либо недоступен, либо в ответ на запрос вовлечённости карты (VeReq) пришла ошибка связи. Это ошибка взаимодействия платёжного шлюза и серверов МПС по причине технических неполадок на стороне последних. Операция отклонена. Обратитесь в банк, выпустивший карту. -2017 Отклонено. Статус PARes-а не «Y». Операция отклонена. Обратитесь в магазин. -2016 Банк-эмитент не смог определить, является ли карта 3dsecure. Операция отклонена. Обратитесь в банк, выпустивший карту. -2015 VERes от DS содержит iReq, вследствие чего платёж был отклонён. Операция отклонена. Обратитесь в банк, выпустивший карту. -2013 Исчерпаны попытки оплаты. Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. -2012 Данная операция не поддерживается. Операция отклонена. Обратитесь в банк, выпустивший карту. -2011 Банк-эмитент не смог провести авторизацию 3dsecure-карты. Операция отклонена. Обратитесь в банк, выпустивший карту. -2010 Несовпадение XID. Операция отклонена. Обратитесь в магазин. -2007 Истёк срок, отведённый на ввод данных карты с момента регистрации платежа (таймаут по умолчанию — 20 минут; продолжительность сессии может быть указана при регистрации заказа; если у мерчанта установлена привилегия «Нестандартная продолжительность сессии», то берётся период, указанный в настройках мерчанта). Истёк срок ожидания ввода данных. -2006 Означает, что эмитент отклонил аутентификацию (3DS авторизация не пройдена). Операция невозможна. Аутентификация держателя карты завершена неуспешно. -2005 Означает, что мы не смогли проверить подпись эмитента, то есть PARes был читаемый, но подписан неверно. Операция отклонена. Обратитесь в банк, выпустивший карту. -2003 Блокировка по порту. Операция отклонена. Обратитесь в магазин. -2002 Транзакция отклонена по причине того, что размер платежа превысил установленные лимиты. Примечание: имеется в виду либо лимиты Банка-эквайера на дневной оборот Магазина, либо лимиты Магазина на оборот по одной карте, либо лимит Магазина по одной операции. Операция отклонена. Обратитесь в магазин. -2001 Транзакция отклонена по причине того, что IP- адрес Клиента внесён в чёрный список. Операция отклонена. Обратитесь в магазин. -2000 Транзакция отклонена по причине того, что карта внесена в чёрный список. Операция отклонена. Обратитесь в магазин. -999 Оплата заказа была отклонена СБОЛ’ом Платеж СБОЛ отклонен -100 Не было попыток оплаты. — 0 Платёж успешно прошёл. — 1 Для успешного завершения транзакции требуется подтверждение личности. В случае интернет-транзакции (соот-но и в нашем) невозможно, поэтому считается как declined. Операция отклонена. Обратитесь в банк, выпустивший карту. 5 Отказ сети проводить транзакцию. Операция отклонена. Обратитесь в банк, выпустивший карту. 15 МПС не смогла определить эмитента карты. Ошибка проведения платежа. Попробуйте позднее. Если данная ошибка возникла повторно, обратитесь в Ваш банк для разъяснения причин. Телефон банка должен быть указан на обратной стороне карты. 53 Карты не существует в системах процессинга. Операция отклонена. Обратитесь в магазин. 81 DECLINED_BY_PINPROC Операция отклонена. Обратитесь в банк, выпустивший карту. 100 Ограничение по карте (Банк эмитент запретил интернет транзакции по карте). Операция отклонена. Обратитесь в банк, выпустивший карту. 101 Истёк срок действия карты. Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. 103 Нет связи с Банком-Эмитентом. Торговой точке необходимо связаться с банком-эмитентом. Операция отклонена. Обратитесь в банк, выпустивший карту. 104 Попытка выполнения операции по счёту, на использование которого наложены ограничения. Операция отклонена. Обратитесь в банк, выпустивший карту. 106 Превышено допустимое число попыток ввода ПИН. Вероятно карта временно заблокирована. Операция отклонена. Обратитесь в магазин. 107 Следует обратиться к Банку-Эмитенту. Операция отклонена. Обратитесь в банк, выпустивший карту. 109 Неверно указан идентификатор продавца/терминала или АСС заблокирован на уровне процессинга. Операция отклонена. Обратитесь в магазин. 110 Неверно указана сумма транзакции. Операция отклонена. Обратитесь в магазин. 111 Неверный номер карты. Операция отклонена. Обратитесь в банк, выпустивший карту. 116 Сумма транзакции превышает доступный остаток средств на выбранном счёте. Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. 118 Сервис не разрешён (отказ от эмитента). Операция отклонена. Обратитесь в банк, выпустивший карту. 119 Транзакция незаконна. Операция отклонена. Обратитесь в банк, выпустивший карту. 120 Отказ в проведении операции — транзакция не разрешена эмитентом. Код ответа платёжной сети — 57. Причины отказа необходимо уточнять у эмитента. Операция отклонена. Обратитесь в банк, выпустивший карту. 121 Предпринята попытка выполнить транзакцию на сумму, превышающую дневной лимит, заданный банком-эмитентом. Операция отклонена. Обратитесь в банк, выпустивший карту. 123 Превышен лимит на число транзакций: клиент выполнил максимально разрешённое число транзакций в течение лимитного цикла и пытается провести ещё одну. Операция отклонена. Обратитесь в банк, выпустивший карту. 125 Неверный номер карты. Подобная ошибка может означать ряд вещей: Попытка возврата на сумму, больше холда, попытка возврата нулевой суммы. Для AmEx — неверно указан срок действия карты. Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. 208 Карта утеряна. Операция отклонена. Обратитесь в магазин. 209 Превышены ограничения по карте. Операция отклонена. Обратитесь в магазин. 400 Реверсал обработан. — 902 Ограничение по карте (Владелец карты пытается выполнить транзакцию, которая для него не разрешена). Операция отклонена. Обратитесь в банк, выпустивший карту. 903 Предпринята попытка выполнить транзакцию на сумму, превышающую лимит, заданный банком-эмитентом. Операция отклонена. Обратитесь в банк, выпустивший карту. 904 Ошибочный формат сообщения с точки зрения банка эмитента. Операция отклонена. Обратитесь в банк, выпустивший карту. 907 Нет связи с Банком, выпустившим Вашу карту. Для данного номера карты не разрешена авторизация в режиме stand-in (этот режим означает, что эмитент не может связаться с платёжной сетью и поэтому транзакция возможна либо в оффлайне с последующей выгрузкой в бэк офис, либо она будет отклонена). Нет связи с банком. Повторите позже. 909 Невозможно провести операцию (Ошибка функционирования системы, имеющая общий характер. Фиксируется платёжной сетью или банком-эмитентом). Операция отклонена. Обратитесь в банк, выпустивший карту. 910 Банк-эмитент недоступен. Нет связи с банком. Повторите позже. 913 Неверный формат сообщения (Неправильный формат транзакции с точки зрения сети). Операция отклонена. Обратитесь в банк, выпустивший карту. 914 Не найдена транзакция (когда посылается завершение или reversal или refund). Операция отклонена. Обратитесь в магазин. 999 Отсутствует начало авторизации транзакции. Отклонено по фроду или ошибка 3dsec. После получения этого кода ответа дальнейшие попытки проведения платежа отклоняются. Операция отклонена. Обратитесь в магазин. 1001 Пусто (Выставляется в момент регистрации транзакции, т.е. когда еще по транзакции не было введено данных карт). Не получен ответ от банка. Повторите позже. 2002 Неверная операция. Операция отклонена. Обратитесь в магазин. 2003 SSL (Не 3d-Secure/SecureCode) транзакции запрещены Магазину. Операция отклонена. Обратитесь в магазин. 2004 Оплата через SSL без ввода CVС2 запрещена. Операция отклонена. Обратитесь в магазин. 2005 Платёж не соответствует условиям правила проверки по 3ds. Операция отклонена. Обратитесь в магазин. 2006 Однофазные платежи запрещены. Операция отклонена. Обратитесь в магазин. 2008 Транзакция ещё не завершена. Операция отклонена. Обратитесь в магазин. 2009 Сумма возврата превышает сумму оплаты. Операция отклонена. Обратитесь в магазин. 2014 Ошибка выполнения 3DS-правила. Операция отклонена. Обратитесь в магазин. 2015 Ошибка выполнения правила выбора терминала (правило некорректно). Операция отклонена. Обратитесь в магазин. 2016 Мерчант не имеет разрешения на 3-D Secure, необходимое для проведения платежа. Операция отклонена. Обратитесь в магазин. 2022 Заказ отклонён. Отклонён. 2023 Очередь на запросов на обработку в процессинг превысила допустимый лимит. Ошибка проведения платежа. Попробуйте позднее. 4005 Заказ отклонён продавцом. Отклонено продавцом. 71015 Введены неправильные параметры карты. Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. 151018 Таймаут в процессинге. Не удалось отправить. Не получен ответ от банка. Повторите позже. 151019 Таймаут в процессинге. Удалось отправить, но не получен ответ от банка. Не получен ответ от банка. Повторите позже. 341014 Код отказа РБС. Операция отклонена. Обратитесь в магазин.

    Статья была опубликована ровно 3 года назад, еле сам её нашел для дополнения.

    Если при оплате картой вы сталкиваетесь с какой-то ошибкой, отказом терминала («деклайн»), то код ответа даст понимание, почему это случилось. Ниже расшифровки ответов платежных систем:
    chek

    Код 00 – успешно проведенная операция.
    Код 01 – отказать, позвонить в банк-эмитент
    Код 02 – отказать, позвонить в банк-эмитент (особое условие)
    Код 03 Invalid merchant (Неверный мерчант ID), незарегистрированная торговая точка или агрегатор платежей
    Код 04 — изъять карту без указания причины. Блок карты в связи с мошенничеством. Pick-up card.
    Код 05 – Do not Honour. (Транзакция была отклонена банком без указания причин.

    06 Error. Неизвестная ошибка на стороне банка, повторить
    07 Pick-up card, special condition. Карта заблокирована банком в связи с мошенничеством
    08 — обслуживать с идентификацией по документу и подписи либо отменить всю операцию
    12 Invalid transaction card / issuer / acquirer Мерчант не принимает карты этого банка.
    13 Invalid amount Сумма превысила лимит банка на транзакцию, возможно, ошибка ввода суммы
    14 Invalid card number — Неверный номер карты либо карта заблокирована холдером/банком
    17 – отказать, отклонено пользователем карты.
    19 System Error  — Системная ошибка на стороне мерчанта/банка, нужно повторить транзакцию
    21 No Action Taken Запрещено банком без каких либо объяснений
    31 эмитент не найден в платёжной системе
    32 частично завершено
    34 Suspected Fraud Подозрении в мошенничестве
    39 No Credit Account Отсутствует кредитный счет карты
    41 Lost Card, Pickup; Карта утеряна, изьять
    42 Special Pickup; Карта украдена, изьять
    43 Hot Card, Pickup; Карта украдена, изьять
    51 Not sufficient funds; Недостаточно средств для оплаты
    54 Expired card; Срок карты истек
    55 Incorrect PIN; Неверный пин
    57 Transaction not permitted on card; Мерчант не принимает карты этого банка или недопустимый тип операции для данного вида карты (например, по карте можно только снять нал, без оплаты покупок)
    58 Txn Not Permitted On Term; Мерчант не принимает этот вид операции, см. 57
    59 Suspected Fraud; подозрение в мошенничестве.
    61 Exceeds amount limit; сумма превышает разрешенный суточный максимум для карты
    62 Restricted card; картсчет заморожен, блок карты
    63 Security violation; картсчет заморожен, блок карты
    64 — сумма отмены авторизации отлична от суммы оригинальной авторизации
    65 — отказать, превышение максимального количества операции для данной карты //лимит  расходных операций по счету
    67 — карта изъята в банкомате
    75 Exceeds PIN Retry; пин введен максимальное количество раз
    78 Function Not Available; номер карты не действителен или не существует
    80 Ошибка сети
    81 Ошибка в шифре PIN (МС)
    82 CVV Validation Error; неверный cvv код)
    83 – отказать, ошибка сети (технические проблемы)
    86 невозможно проверить pin
    88 ошибка шифрования Pin
    91 Issuer not available; связь с банком отсутствует, тех.проблемы
    93 Transaction violates law; транзакция незаконна
    94 Duplicate Transaction; двойная транзакция.
    96 System Error; системная ошибка на стороне мерчанта/не связаться с банком-эмитентом

    100 (используется Visa, аналог кода 119 для MasterCard) — Нет разрешения. Неверный способ шифрования данных. (пример: банк-эмитент блокирует операции по магнитной полосе для Чипованной карты).
    101 — Карта просрочена (примеры: истек срок действия карты или карта была перевыпущена)
    117 — Неверный ПИН-код

    119 для MC (см. код 100 выше): Unable to Encrypt Message — SecurePay’s security methods were unable to encrypt the message

    Код 182 — отказ банка-эмитента. Возможно, на карте установлены ограничения по расчетам в интернете.

    Код Z1 — техническая ошибка терминала; если нет приоритета PIN, то карта не обслуживается.
    Код Z3 — онлайн не работает, а в оффлайне терминал отклонил транзакцию.
    Q1 — аутентификация карты не прошла
    NX — внутренняя ошибка терминала, например, отсутствие маршрута сети или сброс IP-адреса

    ОБ — не обслуживать

    Pos-errors (pdf)

    Что значит ошибка сервиса mpi мпс

    Реализация MPI может обрабатывать или не обрабатывать некоторые ошибки, которые возникают при выполнении вызовов MPI . Это могут быть ошибки, которые генерируют исключения или прерывания, например, ошибки для операций с плавающей точкой или при нарушении доступа. Набор ошибок, которые корректно обрабатываются MPI , зависит от реализации. Каждая такая ошибка генерирует исключение MPI .

    Вышеупомянутый текст имеет приоритет над любым текстом по обработке ошибок внутри этого документа. Текст, в котором говорится, что ошибки будут обработаны, должен содержать информацию о том, как они могут быть обработаны.

    Пользователь может связывать обработчик ошибок с коммуникатором. Эта процедура будет использоваться для любого исключения MPI , которое имеет место в течение вызова MPI для обмена с использованием этого коммуникатора. Вызовы MPI , которые не связаны ни с одним коммуникатором, рассматриваются, как относящиеся к коммуникатору MPI_COMM_WORLD .

    Привязка обработчиков ошибок к коммуникатору исключительно локальная: различные процессы могут присоединить различные обработчики ошибок к тому же самому коммуникатору.

    Вновь созданный коммуникатор наследует обработчик ошибок, который связан с «родительским» коммуникатором. В частности, пользователь может определить «глобальный» обработчик ошибок для всех коммуникаторов, связывая этот обработчик с коммуникатором MPI_COMM_WORLD сразу после инициализации.

    В MPI доступны несколько предопределенных обработчиков ошибок :

      MPI_ERRORS_ARE_FATAL — обработчик, который после вызова прерывает работу программы на всех процессах. Это имеет тот же эффект, как если бы процессом, который запустил обработчик, был вызван MPI_ABORT .
  • MPI_ERRORS_RETURN — обработчик не делает ничего, кроме представления кода ошибки пользователю.
  • Реализации могут обеспечивать дополнительные обработчики ошибок, программисты также могут написать свои собственные обработчики ошибок.

    Обработчик ошибок MPI_ERRORS_ARE_FATAL связан по умолчанию с MPI_COMM_WORLD после его инициализации. Таким образом, если пользователь не желает управлять обработкой ошибок самостоятельно, то каждая ошибка в MPI обрабатывается как фатальная. Так как все вызовы MPI возвращают код ошибки, пользователь может работать с ошибками в головной программе, используя возвращенные вызовами MPI коды и выполняя подходящую программу восстановления в том случае, когда вызов не был успешным. В этом случае будет использоваться обработчик ошибок MPI_ERRORS_RETURN . Обычно более удобно и более эффективно не проверять ошибки после каждого вызова, а иметь специализированный обработчик ошибок.

    После того, как ошибка обнаружена, состояние MPI является неопределенным. Это означает, что даже если используется определенный пользователем обработчик ошибок или
    MPI_ERRORS_RETURN , не обязательно , что пользователю будет разрешено продолжить использовать MPI после того, как ошибка определена. Цель таких обработчиков состоит в том, чтобы пользователь получил определенное им сообщение об ошибке и предпринял действия, не относящиеся к MPI (такие, как очистки буферов ввода/вывода) перед выходом из программы. Реализация MPI допускает продолжение работы приложения после возникновения ошибки, но не требует, чтобы так было всегда.

    Совет разработчикам: Хорошие реализации MPI должны максимально ограничивать воздействие ошибки, чтобы нормальное функционирование могло продолжаться после того, как обработчик ошибок был запущен. В документации должна содержаться информация относительно возможного эффекта по каждому классу ошибок.[]

    Обработчик ошибок MPI является скрытым объектом, связанным с дескриптором. Процедуры MPI обеспечивают создание новых обработчиков ошибок, связывают обработчики ошибок с коммуникаторами и проверяют, какой обработчик ошибок связан с коммуникатором.

    Синтаксис функции MPI_ERRHANDLER_CREATE представлен ниже.

    IN function установленная пользователем процедура обработки ошибок
    OUT errhandler MPI обработчик ошибок (дескриптор)

    int MPI_Errhandler_create(MPI_Handler_function *function,
    MPI_Errhandler *errhandler)

    MPI_ERRHANDLER_CREATE(FUNCTION, ERRHANDLER, IERROR)
    EXTERNAL FUNCTION
    INTEGER ERRHANDLER, IERROR

    Функция MPI_ERRHANDLER_CREATE регистрирует процедуру пользователя в качестве обработчика MPI исключений. Возвращает в errhandler дескриптор зарегистрированного обработчика исключений.

    В языке Си процедура пользователя должна быть функцией типа MPI_Handler_function , которая определяется как:

    Первый аргумент является идентификатором используемого коммуникатора, второй является кодом ошибки, который будет возвращен процедурой MPI , которая выявила ошибку. Если процедура возвратила MPI_ERR_IN_STATUS , то это значит, что код ошибки возвращен в статусный объект обращения, которое запустило обработчик ошибок. Остающиеся аргументы есть аргументы « stdargs », номер и значение которых являются зависимыми от реализации. В реализации должны быть ясно документированы эти аргументы. Адреса используются так, чтобы обработчик мог быть написан на языке ФОРТРАН.

    Синтаксис функции MPI_ERRHANDLER_SET представлен ниже.

    IN comm коммуникатор , на котором устанавливается обработчик ошибок (дескриптор)
    IN errhandler новый обработчик ошибок для коммуникатора (дескриптор)

    int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)

    MPI_ERRHANDLER_SET(COMM, ERRHANDLER, IERROR)
    INTEGER COMM, ERRHANDLER, IERROR

    Функция MPI_ERRHANDLER_SET связывает новый обработчик ошибок errorhandler с коммуникатором comm на вызывающем процессе. Заметим, что обработчик ошибок всегда связан с коммуникатором.

    Синтаксис функции MPI_ERRHANDLER_GET представлен ниже.

    IN comm коммуникатор, из которого получен обработчик ошибок (дескриптор)
    OUT errhandler MPI обработчик ошибок, связанный с коммуникатором (дескриптор)

    int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)

    MPI_ERRHANDLER_GET(COMM, ERRHANDLER, IERROR)
    INTEGER COMM, ERRHANDLER, IERROR

    Функция MPI_ERRHANDLER_GET возвращает в errhandler дескриптор обработчика ошибок, связанного с коммуникатором comm. Пример: библиотечная функция может записать на входной точке текущий обработчик ошибок для коммуникатора, затем установить собственный частный обработчик ошибок для этого коммуникатора и восстановить перед выходом предыдущий обработчик ошибок.

    Синтаксис функции MPI_ERRHANDLER_FREE представлен ниже.

    INOUT errhandler MPI обработчик ошибок (дескриптор)

    int MPI_Errhandler_free(MPI_Errhandler *errhandler)

    MPI_ERRHANDLER_FREE(ERRHANDLER, IERROR)
    INTEGER ERRHANDLER, IERROR

    Эта функция маркирует обработчик ошибок, связанный с errhandler для удаления и устанавливает для errhandler значение MPI_ERRHANDLER_NULL . Обработчик ошибок будет удален после того, как все коммуникаторы, связанные с ним, будут удалены.

    Синтаксис функции MPI_ERROR_STRING представлен ниже.

    MPI_ERROR_STRING(errorcode, string, resultlen)

    IN errorcodeк код ошибки, возвращаемый процедурой MPI
    OUT string текст, соответствующий errorcode
    OUT resultlen длина (в печатных знаках) результата, возвращаемого в string

    int MPI_Error_string(int errorcode, char *string, int *resultlen)

    MPI_ERROR_STRING(ERRORCODE, STRING, RESULTLEN, IERROR)
    INTEGER ERRORCODE, RESULTLEN, IERROR
    CHARACTER*(*) STRING

    void MPI::Get_error_string(int errorcode, char* name, int& resulten)

    Функция MPI_ERROR_STRING возвращает текст ошибки, связанный с кодом или классом ошибки. Аргумент string обязан иметь длину не менее _MAX_ERROR_STRING знаков. Число фактически записанных символов возвращается в выходном аргументе resultlen .

    Объяснение: Форма этой функции была выбрана такой для того, чтобы сделать привязки в языке ФОРТРАН и Си похожими. Версия, которая возвращает указатель на строку, создает две проблемы. Во первых, возвращенная строка должна быть статически распределена и различаться для каждого сообщения об ошибке (позволяя указателям, возвращенным успешными обращениями к MPI_ERROR_STRING , указать правильное сообщение). Во вторых, в языке ФОРТРАН функция, объявленная, как возвращающая CHARACTER*(*), может не ссылаться, например, на оператор PRINT .[]

    Next: Коды и классы ошибок. Up: Управление исполнительной средой MPI Previous: Получение сведений об исполнительной &nbsp Contents Alex Otwagin 2002-12-10

    Источник

    «Мне ANSYS ошибку выдаёт» или мини-гайд по диагностике проблем с 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 не задана, то приложение просто закроется. Чтобы исключить этот вариант, нужно убедиться, что сервер лицензий виден всем узлам, т.к. хост-процесс, запрашивающий лицензию, может родиться на любом из них.

    Источник

    Result Code Description Как решить проблему Куда обратиться

    76

    51

    076

    9859

    116

    603

    Insufficient funds

    Not sufficient funds

    Decline, not sufficient funds

    Decline, not sufficient funds На балансе карты недостаточно средств Если на карте баланс больше или равен сумме транзакции, а отказ все равно происходит по причине недостатка средств, тогда возможны такие причины:
    — банк-эмитент удерживает дополнительные комиссии с держателя карты. Это может возникать в случаях погашение кредита посредством интернет-платежа, либо если договор на обслуживание банковской карты предусматривает дополнительные комиссии;
    — происходит конвертация из валюты покупки в валюту карты. Убедитесь, что средств на карте достаточно для покрытия комиссии за конвертацию валют. Некоторые банки-эмитенты устанавливают комиссии на конвертацию валют как-правило в пределах 1% Банк-эмитент (банк, выпустивший карту)

    50

    5

    9905

    180

    Transaction declined

    Do not honor

    Do not Honour

    Transaction declined

    Do not honor Не обслуживать Пожалуй, самый общий и не определенный код отказа. Он может указывать на любые ограничения, наложенные банком-эмитентом, которые банк пожелал оставить не уточненными.
    Возможные причины:
    — карта заблокирована или на ней установлен статус
    — на карте не установлен лимит на оплату в интернет, либо этот лимит недостаточный
    — сработали настройки системы безопасности банка-эмитента
    — сработали ограничения по сумме или количеству операций по карте у банка-эмитента
    — банк-эмитент установил ограничения на проведение данного типа транзакций
    — по карте не разрешены международные платежи (доместиковая карта)
    — банк-эмитент установил ограничение на транзакции с двойной конвертацией валют (DCC)
    — банк-эмитент установил ограничения на транзакции в данной валюте
    — банк-эмитент установил ограничения на транзакции в данной стране
    — банк-эмитент в США ограничил по карте операции в валюте, отличной от USD
    — банк-эмитент в США ограничил по карте операции в странах бывшего СНГ и других рисковых регионах Банк-эмитент (банк, выпустивший карту). Если банк-эмитент не видит данную транзакцию, тогда необходимо обратиться в банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

    55

    055

    12

    902

    9882

    9912

    Invalid transaction

    Invalid transaction card / issuer / acquirer

    Decline reason message: invalid transaction

    Invalid transaction Операция для данной карты или мерчанта не разрешена Причины могут быть теми же, что и для Do not honor Банк-эмитент (банк, выпустивший карту). Если банк-эмитент не видит данную транзакцию, тогда необходимо обратиться в банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

    95

    095

    61

    061

    121

    9861

    9863

    Decline, exceeds withdrawal amount limit

    Exceeds amount limit

    Exceeds withdrawal limit

    Withdrawal limit would be exceeded

    Withdrawal limit already reached

    Card exceeds withdrawal amount limit На карте достигнут лимит по сумме операций в сутки, в месяц или на разовую транзакцию Возможные причины (более детально смотрите по банку-эквайеру выше):
    — на карте не установлен лимит операций в интернет или он уже достигнут или будет достигнут с текущей транзакцией
    — общий лимит по сумме для операций покупок по карте уже достигнут или будет достигнут с текущей транзакцией
    — карта не открыта для расчетов в интернет
    — на карте не активирован сервис 3D-Secure из-за чего операции в интернет без 3D-Secure пароля попадают под ограничения банка-эмитента Банк-эмитент (банк, выпустивший карту)

    65

    065

    82

    082

    9860

    Activity count exceeded

    Exceeds frequency limit

    Maximum number of times used

    Card exceeds withdrawal frequency limit На карте достигнут лимит по количеству операций в сутки или в месяц Возможные причины (более детально смотрите по банку-эквайеру выше):
    — на карте не установлен лимит операций в интернет или он уже достигнут или будет достигнут с текущей транзакцией
    — общий лимит по количеству операций покупок по карте уже достигнут или будет достигнут с текущей транзакцией
    — карта не открыта для расчетов в интернет
    — на карте не активирован сервис 3D-Secure из-за чего операции в интернет без 3D-Secure пароля попадают под ограничения банка-эмитента Банк-эмитент (банк, выпустивший карту)

    57

    119

    Not permitted to client

    Transaction not permitted on card

    Transaction not permitted to card

    Decline, transaction not permitted to cardholder

    Transaction not permitted to card

    Not permitted to client

    Decline, transaction not permitted to cardholder

    Function Not Permitted To Cardholder

    Not permitted to client Транзакция не разрешена для карты или клиента

    Банк эмитент отклонил транзакцию так как она не может быть осуществлена для этой карты или клиента.

    Возможные причины (более детально смотрите по банку-эквайеру выше):
    — данный карточный продукт не рассчитан для такого типа операции
    — для данной карты не настроен такой тип операции на стороне банка-эмитента

    Банк-эмитент (банк, выпустивший карту)

    58

    120

    Decline, transaction not permitted to terminal

    Not permitted to merchant

    The requested service is not permitted for terminal

    Function Not Permitted To Terminal

    Txn Not Permitted On Term

    Not permitted to merchant Транзакция не разрешена для терминала или мерчанта Мерчант или терминал настроен некорректно, или данный тип операции не разрешен на стороне банка-эквайера или платежного провайдера. В первую очередь нужно уточнить конфигурацию торговой точки у платежного провайдера и список допустимых операций Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

    211

    N7

    9881

    Bad CVV2

    Decline for CVV2 Failure

    CVV2 is invalid

    Invalid CVV2

    Decline Cvv2 failure

    Invalid CVV2 code Введен неверный CVV2 код во время проведения платежа Необходимо проверить CVV2 код на оборотной стороне карты. Код состоит из 3 цифр для Visa/MasterCard/Discover и из 4 цифр для карт American Express.
    CVV2 код также может называться CVC2, CID, CSC2 код.
    В некоторых случаях такой код отказа может возвращаться и при вводе неверного срока действия карты.
    Стоит обратить внимание, если банк эмитент использует динамический код CVV2, генерируемый на короткий промежуток времени в клиент-банке — срок жизни такого CVV2 кода мог истечь на момент совершения операции Банк-эмитент (банк, выпустивший карту)

    058

    59

    059

    62

    062

    9858

    104

    Restricted card

    Restricted status

    Decline, restricted card

    Card is restricted

    Your card is restricted

    Restricted Card Операции по карте ограничены Возможные причины:
    — операции по карте в данном регионе/стране не разрешены
    — на карте установлен статус, ограничивающий платежи
    — для карты не доступны интернет-платежи Банк-эмитент (банк, выпустивший карту)

    56

    056

    Transaction not supported by institution Your card is not supported. Please use card of other payment system Данный тип платежной системы не поддерживается Банк-эквайер или платежный провайдер не поддерживает платежную систему данной карты.
    Отказ может возникать в таких случаях:
    — оплата картой локальной платежной системы за рубежом. Например картой платежной системы МИР за пределами РФ, картой платежной системы ПРОСТИР за пределами Украины
    — оплата картами оплата AMERICAN EXPRESS, Diners Club,JCB, China Union Pay, Discover которые не поддерживаются платежным провайдером
    — оплата картой Monobank в счет микро-кредитной организации (погашение кредита), либо выдача кредит. Монобанк блокирует операции в адрес МФО по некоторым типам карт Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру
    Монобанк, если карта этого банка

    100

    1000

    Decline (general, no comments)

    General decline, no comments

    General decline

    General decline Общий отказ. Причины могут быть теми же, что и для Do not honor Банк-эмитент (банк, выпустивший карту)

    54

    101

    Expired card

    Decline, expired card

    Expired card

    Pick-up, expired card

    Card expired

    Invalid card expiry date Истек срок действия карты Возможные причины
    — срок действия карты закончился
    — указан неверный срок действия карты
    — карта была перевыпущена с новым сроком Банк-эмитент (банк, выпустивший карту)

    14

    111

    9852

    1012

    305113

    Card number does not exist

    Invalid card number

    No such card

    Decline, card not effective

    Invalid card

    Wrong card number

    Invalid card number Неверный номер карты Возможные причины:
    — неверный номер карты
    — карта не действительна
    — оплата картой локальной платежной системы за рубежом. Например картой платежной системы МИР за пределами РФ, картой платежной системы ПРОСТИР за пределами Украины
    — оплата картами оплата AMERICAN EXPRESS, Diners Club,JCB, China Union Pay, Discover которые не поддерживаются платежным провайдером
    — операции по карте в данном регионе/стране не разрешены
    — на карте установлен статус, ограничивающий платежи Банк-эмитент (банк, выпустивший карту)

    909

    42

    7

    07

    108

    9875

    207

    42

    External Decline Special Condition

    Special Pickup

    Pick up card (special)

    Pick up card, special condition (fraud account)

    Pick-up, special conditions

    Decline, refer to card issuer’s special conditions

    Pick up card, special condition (fraud account) Специальный отказ банка-эмитента. Владелец карты подозревается в мошенничестве. Банк-эмитент подозревает держателя карты в мошенничестве, либо система безопасности (антифрод-система) банка эмитента отклонила транзакцию Банк-эмитент (банк, выпустивший карту)

    122

    63

    89

    Decline, security violation

    Security violation

    Security violation Отказ по соображениям безопасности Код отказа может отдаваться как банком-эмитентом, так и банком-эквайером. Возможные причины:
    — карточный счет заморожен или заблокирован
    — ограничения правил безопасности (система Antifraud на стороне любого из участников) Банк-эмитент (банк, выпустивший карту)
    Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

    200

    76

    114

    21

    Invalid account

    Decline, no account of type requested

    No To Account

    Invalid card number Неверный номер карты или счета Возможные причины:
    — счет карты закрыт или заблокирован
    — по счету запрещены расходные операции
    — карта не действительна
    — неверный номер карты
    — оплата картой локальной платежной системы за рубежом. Например картой платежной системы МИР за пределами РФ, картой платежной системы ПРОСТИР за пределами Украины
    — оплата картами оплата AMERICAN EXPRESS, Diners Club,JCB, China Union Pay, Discover которые не поддерживаются платежным провайдером
    — операции по карте в данном регионе/стране не разрешены
    — на карте установлен статус, ограничивающий платежи
    — карта не предназначена для расчетов в интернет Банк-эмитент (банк, выпустивший карту)

    74

    074

    907

    911

    910

    9872

    91

    291

    82

    908

    810

    Unable to authorize

    Decline reason message: card issuer or switch inoperative

    Destination not available

    Issuer or switch inoperative

    Issuer unavailable

    Time-out at issuer

    Decline reason message: card issuer timed out

    Decline reason message: transaction destination cannot be found for routing

    Transaction timeout

    Acquiring bank request timeout

    Ошибка связи: таймаут

    Недоступен эмитент/эквайер

    Таймаут при попытке связи с банком-эмитентом. Как правило такая ошибка возникает при проблемах технического характера на стороне любого из участников: банка-эквайера, банка эмитента, платежной системы Visa/MasterCard/МИР.

    В первую очередь необходимо обратиться в банк-эквайер для выяснения причины и определения, на чьей стороне неисправности.

    Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

    Банк-эмитент (при получении 91 кода)

    15

    815

    92

    No such card/issuer

    No such issuer

    Invalid Issuer

    Invalid card number Указан неверный номер карты см. Неверный номер карты

    811

    96

    0

    System error Unknown payment system error Технический сбой на стороне эквайера/платежной системы Технический сбой на стороне банка-эквайера Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

    4

    04

    44

    43

    200

    104

    Pick-up (general, no comments)

    Pick up card

    Your card is restricted

    Hot Card, Pickup (if possible)

    Hold — Pick up card

    Pick-up, restricted card

    Pick-up, card acceptor contact card acquirer

    Pick up card (no fraud) Изъять карту Банк-эмитент отклонил транзакцию с сообщением о необходимости изъять карту, если это возможно. Как правило причиной является блокировка карты по причине утери Банк-эмитент (банк, выпустивший карту) 52 Number of PIN tries exceeded PIN tries exceeded Превышен лимит попыток ввода PIN-кода На карте установлен статус в связи с превышением попыток ввода PIN-кода при оплате в наземных POS-терминалах или использования карты в банкомате.
    Также причиной может быть то, что карта только что выпущена и первой операцией для нее должна быть операция смены PIN-кода Банк-эмитент (банк, выпустивший карту)

    205

    110

    13

    567

    9913

    9867

    Invalid advance amount

    Decline, invalid amount

    Invalid amount

    Invalid amount Неверная сумма Причины отказа:
    — слишком маленькая сумма. Если карта открыта в валюте, убедитесь, что сумма транзакции не менее 1 цента доллара США или 1 Евро цента
    — слишком большая сумма
    — из суммы транзакции невозможно удержать сумму комиссии платежного провайдера. Убедитесь, что сумма транзакции не меньше суммы всех комиссий
    — ограничения на карте плательщика на стороне банка, который выпуcтил карту.
    — достигнуты лимиты на стороне банка-эквайера. Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру, Банк-эмитент (банк, выпустивший карту)

    948

    102

    202

    9934

    59

    Suspected fraud

    Decline, suspected fraud

    Suspected fraud Подозрение в мошенничестве Система безопасности одного из участников процессинговой цепочки подозревает участие карты в мошеннических действиях или в компрометации.
    Также, возможно, что банк-эмитент заблокировал карту/счет в связи с подозрительными действиями, скиммингом, компрометацией Банк-эмитент (банк, выпустивший карту)

    800

    904

    30

    030

    9874

    574

    Format error

    Decline reason message: format error

    Format error Ошибка формата сообщения Технический сбой при попытке авторизовать транзакцию у банка-эмитента. Вероятно, какие-то из атрибутов транзакции указаны неверно. Необходимо уточнить у банка детали, которые вызвали такой отказ. Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

    41

    540

    208

    9840

    Lost Card, Pickup

    Pick up card (lost card)

    Lost card

    Lost card, pick-up

    Pick-up, lost card

    Lost card Карта утеряна На карте установлен статус утеряна по заявлению картодержателя. Банк-эмитент (банк, выпустивший карту)

    93

    124

    Violation of law

    Decline, violation of law

    Suspected fraud Транзакция не может быть выполнена: нарушение закона Банк-эмитент отказал в осуществлении транзакции во избежание нарушения закона Банк-эмитент (банк, выпустивший карту)

    909

    96

    Decline reason message: system malfunction

    System malfunction

    System malfunction Технический сбой на стороне эквайера/платежной системы Технический сбой на стороне банка-эквайера Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

    01

    02

    107

    108

    Refer to card issuer

    Decline, refer to card issuer

    Decline, refer to card issuer special conditions

    Refer to issuer

    Decline, refer to card issuer Обратиться к банку-эмитенту Отказ банка-эмитента. Держатель карты должен обратиться в свой банк Банк-эмитент (банк, выпустивший карту) 201 Incorrect PIN Incorrect PIN Неверный PIN На карте установлен статус в связи с превышением попыток ввода PIN-кода при оплате в наземных POS-терминалах или использования карты в банкомате.
    Также причиной может быть то, что карта только что выпущена и первой операцией для нее должна быть операция смены PIN-кода Банк-эмитент (банк, выпустивший карту) 210 Bad CAVV Do not honor Неверный CAVV Ошибка возникает при проверке 3DSecure на стороне банка-эмитента. Причиной может случить либо неверная настройка 3DSecure на карте, либо некорректная реализация Apple/Google Pay токенов на стороне платежной платформы, мерчанта или банка-эквайера Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

    43

    209

    057

    9841

    Pick up card (stolen card)

    Pick-up, stolen card

    Stolen card

    Stolen card, pick-up

    Lost/Stolen

    Lost or stolen card

    Stolen card Карта украдена Банк-эмитент установил на карте статус «украдена» по обращению держателя карты Банк-эмитент (банк, выпустивший карту)

    6000

    106

    Pre-authorizations are not allowed within this context.

    Merchant is not allowed preauth

    Preauth not allowed Операция предавторизации на разрешена для торговца Необходимо обратиться к платежному провайдеру или банку-эквайеру для активации двухстадийной оплаты перед пред-авторизацию/завершение (preauth/capture или prepurchase/completion или authorization/sale) Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру

    03

    3

    109

    9903

    20003

    Invalid merchant

    Decline, invalid merchant

    Merchant is not configured correctly Мерчант настроен некорректно Необходимо обратиться к платежному провайдеру или банку-эквайеру для настройки или активации мерчанта или мерчант-аккаунта.
    Также причиной может быть некорректно переданный идентификатор мерчанта в транзакции Банк-эквайер (банк, обслуживающий торговую точку) или к платежному провайдеру
    -20010 Транзакция отклонена по причине того, что размер платежа превысил установленные лимиты Банком-эмитентом. Операция отклонена. Обратитесь в банк, выпустивший карту. -9000 Состояние начала транзакции. Операция отклонена. Обратитесь в магазин. -2101 Блокировка по e-mail Операция отклонена. Обратитесь в магазин. -2020 Получен неверный ECI. Код выставляется в том случае, если пришедший в PaRes ECI не соответствует допустимому значению для данной МПС. Правило работает только для MasterCard (01,02) и Visa (05,06), где значения в скобках — допустимые для МПС. Операция отклонена. Обратитесь в банк, выпустивший карту. -2019 PARes от эмитента содержит iReq, вследствие чего платёж был отклонён. Операция отклонена. Обратитесь в банк, выпустивший карту. -2018 Directory server Visa или MasterCard либо недоступен, либо в ответ на запрос вовлечённости карты (VeReq) пришла ошибка связи. Это ошибка взаимодействия платёжного шлюза и серверов МПС по причине технических неполадок на стороне последних. Операция отклонена. Обратитесь в банк, выпустивший карту. -2017 Отклонено. Статус PARes-а не «Y». Операция отклонена. Обратитесь в магазин. -2016 Банк-эмитент не смог определить, является ли карта 3dsecure. Операция отклонена. Обратитесь в банк, выпустивший карту. -2015 VERes от DS содержит iReq, вследствие чего платёж был отклонён. Операция отклонена. Обратитесь в банк, выпустивший карту. -2013 Исчерпаны попытки оплаты. Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. -2012 Данная операция не поддерживается. Операция отклонена. Обратитесь в банк, выпустивший карту. -2011 Банк-эмитент не смог провести авторизацию 3dsecure-карты. Операция отклонена. Обратитесь в банк, выпустивший карту. -2010 Несовпадение XID. Операция отклонена. Обратитесь в магазин. -2007 Истёк срок, отведённый на ввод данных карты с момента регистрации платежа (таймаут по умолчанию — 20 минут; продолжительность сессии может быть указана при регистрации заказа; если у мерчанта установлена привилегия «Нестандартная продолжительность сессии», то берётся период, указанный в настройках мерчанта). Истёк срок ожидания ввода данных. -2006 Означает, что эмитент отклонил аутентификацию (3DS авторизация не пройдена). Операция невозможна. Аутентификация держателя карты завершена неуспешно. -2005 Означает, что мы не смогли проверить подпись эмитента, то есть PARes был читаемый, но подписан неверно. Операция отклонена. Обратитесь в банк, выпустивший карту. -2003 Блокировка по порту. Операция отклонена. Обратитесь в магазин. -2002 Транзакция отклонена по причине того, что размер платежа превысил установленные лимиты. Примечание: имеется в виду либо лимиты Банка-эквайера на дневной оборот Магазина, либо лимиты Магазина на оборот по одной карте, либо лимит Магазина по одной операции. Операция отклонена. Обратитесь в магазин. -2001 Транзакция отклонена по причине того, что IP- адрес Клиента внесён в чёрный список. Операция отклонена. Обратитесь в магазин. -2000 Транзакция отклонена по причине того, что карта внесена в чёрный список. Операция отклонена. Обратитесь в магазин. -999 Оплата заказа была отклонена СБОЛ’ом Платеж СБОЛ отклонен -100 Не было попыток оплаты. — 0 Платёж успешно прошёл. — 1 Для успешного завершения транзакции требуется подтверждение личности. В случае интернет-транзакции (соот-но и в нашем) невозможно, поэтому считается как declined. Операция отклонена. Обратитесь в банк, выпустивший карту. 5 Отказ сети проводить транзакцию. Операция отклонена. Обратитесь в банк, выпустивший карту. 15 МПС не смогла определить эмитента карты. Ошибка проведения платежа. Попробуйте позднее. Если данная ошибка возникла повторно, обратитесь в Ваш банк для разъяснения причин. Телефон банка должен быть указан на обратной стороне карты. 53 Карты не существует в системах процессинга. Операция отклонена. Обратитесь в магазин. 81 DECLINED_BY_PINPROC Операция отклонена. Обратитесь в банк, выпустивший карту. 100 Ограничение по карте (Банк эмитент запретил интернет транзакции по карте). Операция отклонена. Обратитесь в банк, выпустивший карту. 101 Истёк срок действия карты. Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. 103 Нет связи с Банком-Эмитентом. Торговой точке необходимо связаться с банком-эмитентом. Операция отклонена. Обратитесь в банк, выпустивший карту. 104 Попытка выполнения операции по счёту, на использование которого наложены ограничения. Операция отклонена. Обратитесь в банк, выпустивший карту. 106 Превышено допустимое число попыток ввода ПИН. Вероятно карта временно заблокирована. Операция отклонена. Обратитесь в магазин. 107 Следует обратиться к Банку-Эмитенту. Операция отклонена. Обратитесь в банк, выпустивший карту. 109 Неверно указан идентификатор продавца/терминала или АСС заблокирован на уровне процессинга. Операция отклонена. Обратитесь в магазин. 110 Неверно указана сумма транзакции. Операция отклонена. Обратитесь в магазин. 111 Неверный номер карты. Операция отклонена. Обратитесь в банк, выпустивший карту. 116 Сумма транзакции превышает доступный остаток средств на выбранном счёте. Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. 118 Сервис не разрешён (отказ от эмитента). Операция отклонена. Обратитесь в банк, выпустивший карту. 119 Транзакция незаконна. Операция отклонена. Обратитесь в банк, выпустивший карту. 120 Отказ в проведении операции — транзакция не разрешена эмитентом. Код ответа платёжной сети — 57. Причины отказа необходимо уточнять у эмитента. Операция отклонена. Обратитесь в банк, выпустивший карту. 121 Предпринята попытка выполнить транзакцию на сумму, превышающую дневной лимит, заданный банком-эмитентом. Операция отклонена. Обратитесь в банк, выпустивший карту. 123 Превышен лимит на число транзакций: клиент выполнил максимально разрешённое число транзакций в течение лимитного цикла и пытается провести ещё одну. Операция отклонена. Обратитесь в банк, выпустивший карту. 125 Неверный номер карты. Подобная ошибка может означать ряд вещей: Попытка возврата на сумму, больше холда, попытка возврата нулевой суммы. Для AmEx — неверно указан срок действия карты. Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. 208 Карта утеряна. Операция отклонена. Обратитесь в магазин. 209 Превышены ограничения по карте. Операция отклонена. Обратитесь в магазин. 400 Реверсал обработан. — 902 Ограничение по карте (Владелец карты пытается выполнить транзакцию, которая для него не разрешена). Операция отклонена. Обратитесь в банк, выпустивший карту. 903 Предпринята попытка выполнить транзакцию на сумму, превышающую лимит, заданный банком-эмитентом. Операция отклонена. Обратитесь в банк, выпустивший карту. 904 Ошибочный формат сообщения с точки зрения банка эмитента. Операция отклонена. Обратитесь в банк, выпустивший карту. 907 Нет связи с Банком, выпустившим Вашу карту. Для данного номера карты не разрешена авторизация в режиме stand-in (этот режим означает, что эмитент не может связаться с платёжной сетью и поэтому транзакция возможна либо в оффлайне с последующей выгрузкой в бэк офис, либо она будет отклонена). Нет связи с банком. Повторите позже. 909 Невозможно провести операцию (Ошибка функционирования системы, имеющая общий характер. Фиксируется платёжной сетью или банком-эмитентом). Операция отклонена. Обратитесь в банк, выпустивший карту. 910 Банк-эмитент недоступен. Нет связи с банком. Повторите позже. 913 Неверный формат сообщения (Неправильный формат транзакции с точки зрения сети). Операция отклонена. Обратитесь в банк, выпустивший карту. 914 Не найдена транзакция (когда посылается завершение или reversal или refund). Операция отклонена. Обратитесь в магазин. 999 Отсутствует начало авторизации транзакции. Отклонено по фроду или ошибка 3dsec. После получения этого кода ответа дальнейшие попытки проведения платежа отклоняются. Операция отклонена. Обратитесь в магазин. 1001 Пусто (Выставляется в момент регистрации транзакции, т.е. когда еще по транзакции не было введено данных карт). Не получен ответ от банка. Повторите позже. 2002 Неверная операция. Операция отклонена. Обратитесь в магазин. 2003 SSL (Не 3d-Secure/SecureCode) транзакции запрещены Магазину. Операция отклонена. Обратитесь в магазин. 2004 Оплата через SSL без ввода CVС2 запрещена. Операция отклонена. Обратитесь в магазин. 2005 Платёж не соответствует условиям правила проверки по 3ds. Операция отклонена. Обратитесь в магазин. 2006 Однофазные платежи запрещены. Операция отклонена. Обратитесь в магазин. 2008 Транзакция ещё не завершена. Операция отклонена. Обратитесь в магазин. 2009 Сумма возврата превышает сумму оплаты. Операция отклонена. Обратитесь в магазин. 2014 Ошибка выполнения 3DS-правила. Операция отклонена. Обратитесь в магазин. 2015 Ошибка выполнения правила выбора терминала (правило некорректно). Операция отклонена. Обратитесь в магазин. 2016 Мерчант не имеет разрешения на 3-D Secure, необходимое для проведения платежа. Операция отклонена. Обратитесь в магазин. 2022 Заказ отклонён. Отклонён. 2023 Очередь на запросов на обработку в процессинг превысила допустимый лимит. Ошибка проведения платежа. Попробуйте позднее. 4005 Заказ отклонён продавцом. Отклонено продавцом. 71015 Введены неправильные параметры карты. Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. 151018 Таймаут в процессинге. Не удалось отправить. Не получен ответ от банка. Повторите позже. 151019 Таймаут в процессинге. Удалось отправить, но не получен ответ от банка. Не получен ответ от банка. Повторите позже. 341014 Код отказа РБС. Операция отклонена. Обратитесь в магазин.

    Понравилась статья? Поделить с друзьями:
  • Что такое ошибка есиа
  • Что такое ошибка молодости
  • Что такое ошибка е10 на стиральной машине
  • Что такое ошибка матрицы
  • Что такое ошибка е10 на котле бакси