Using a grid: A user’s perspective
5. Monitoring progress and recovery
The user can query the grid system to see how his application and its subjobs are progressing. When the number of subjobs becomes large, it becomes too difficult to list them all in a graphical window. Instead, there may simply be one large bar graph showing some averaged progress metric. It becomes more difficult for the user to tell if any particular subjob is not running properly.
A grid system, in conjunction with its job scheduler, often provides some degree of recovery for subjobs that fail.
A job may fail due to a:
- Programming error: The job stops part way with some program fault.
- Hardware or power failure: The machine or devices being used stops working in some way.
- Communications interruption: A communication path to the machine has failed or is overloaded with other data traffic.
- Excessive slowness: The job might be in an infinite loop or normal job progress may be limited by another process running at a higher priority or some other form of contention.
It is not always possible to automatically determine if the reason for a job’s failure is due to a problem with the design of the application or if it is due to failures of various kinds in the grid system infrastructure. Schedulers are often designed to categorize job failures in some way and automatically resubmit jobs so that they are likely to succeed, running elsewhere on the grid. In some systems, the user is informed about any job failures and the user must decide whether to issue a command to attempt to rerun the failed jobs.
Grid applications can be designed to automate the monitoring and recovery of their own subjobs using functions provided by the grid system software application programming interfaces (APIs).