.net Microsoft HPC任务的错误处理策略

.net Microsoft HPC任务的错误处理策略,.net,error-handling,hpc,.net,Error Handling,Hpc,我有一个.NET应用程序,它将生成要在MS HPC群集上运行的任务。我们没有使用任何花哨的DryadLINQ东西,只是在集群上远程执行一个exe,并通过命令行传递参数。任务将是.NET代码,我希望调用应用程序在HPC上发生错误时获取实际的异常对象 实现这一点的最佳通用技术是什么 如果你需要更多信息,请告诉我 谢谢 使用批处理计划程序时,无法将异常从可执行文件传递回客户端HPC应用程序。如果知道您排队的某个任务或作业失败,那么您可以保留SchedulerJob对象,并向OnJobState或OnT

我有一个.NET应用程序,它将生成要在MS HPC群集上运行的任务。我们没有使用任何花哨的DryadLINQ东西,只是在集群上远程执行一个exe,并通过命令行传递参数。任务将是.NET代码,我希望调用应用程序在HPC上发生错误时获取实际的异常对象

实现这一点的最佳通用技术是什么

如果你需要更多信息,请告诉我


谢谢

使用批处理计划程序时,无法将异常从可执行文件传递回客户端HPC应用程序。如果知道您排队的某个任务或作业失败,那么您可以保留SchedulerJob对象,并向OnJobState或OnTaskState事件添加回调。每当您的作业(或该作业中的任务)更改状态时,您将在回调中获得jobid/taskid和状态更改信息;然后,您可以检查状态是否更改为“失败”,并根据该信息采取行动

要将任务或作业标记为“失败”,请使用非零退出代码退出可执行文件。如果需要实际异常的详细信息,最好将其打印到stdout

如果您确实需要所有异常详细信息,另一种选择可能是使用SOA框架进行计算。 优点是:

  • 您的计算请求看起来像WCF 方法调用

  • 您可以在返回时获得详细的异常 你的代码抛出

  • 您可以使用SOA调试器 要调试的Visual Studio扩展 你的代码

缺点是:

  • 从现有代码库开始编写和部署应用程序更加复杂
以下是一些可以帮助您入门的资源(搜索“Windows HPC SOA”应该可以获得更多):