Стратегии обработки ошибок для задач Microsoft HPC - PullRequest
0 голосов
/ 27 мая 2010

У меня есть приложение .NET, которое будет создавать задачи для запуска в кластере MS HPC. Мы не используем ничего из этого причудливого материала DryadLINQ, просто удаленно выполняем exe в кластере и передаем аргументы через командную строку. Задачей будет код .NET, и я бы хотел, чтобы вызывающее приложение получало реальный объект Exception при возникновении ошибки в HPC.

Каков наилучший общий метод для достижения этой цели?

Дайте мне знать, если вам нужна дополнительная информация.

Спасибо!

1 Ответ

1 голос
/ 20 сентября 2010

Вы не можете передать исключение обратно из исполняемого файла в клиентское приложение HPC, когда вы используете пакетный планировщик. Если достаточно знать, что одно из заданий или заданий, поставленных в очередь, не выполнено, вы можете удерживать объект SchedulerJob и добавить обратный вызов к событию OnJobState или OnTaskState. Всякий раз, когда ваша работа (или задача в этой работе) меняет состояние, вы получаете в своем обратном вызове информацию о задании / задании и изменении состояния; затем вы можете проверить, было ли состояние изменено на «Сбой», и действовать в соответствии с этой информацией.

Чтобы пометить задачу или задание как «Сбой», необходимо иметь исполняемый файл выхода с ненулевым кодом выхода. Если вам нужны подробности о фактическом исключении, лучшее, что вы можете сделать, это распечатать его на стандартный вывод.

Если вам действительно нужны все детали исключений, альтернативой может быть использование инфраструктуры SOA для ваших вычислений. Преимущества будут:

  • ваши вычислительные запросы выглядят как WCF вызовы методов

  • вы получите подробные исключения, когда ваш код выбрасывает

  • вы можете использовать отладчик SOA расширение для Visual Studio для отладки ваш код

Недостатками будут:

  • Более сложное написание и развертывание приложения, начиная с существующей кодовой базы.

Вот несколько ресурсов, с которых можно начать (поиск «Windows HPC SOA» должен дать вам гораздо больше):

Документация по MSDN SOA

...