Difference between revisions of "Message Queue Debugging"

From Mpich
Jump to: navigation, search
Line 8: Line 8:
  
 
This function dumps the state of the nemesis shared memory and module send queues for a particular VC (virtual connection).  This is only implemented for the newtcp module at the moment, although it is simple to add support for other modules as needed.
 
This function dumps the state of the nemesis shared memory and module send queues for a particular VC (virtual connection).  This is only implemented for the newtcp module at the moment, although it is simple to add support for other modules as needed.
 +
 +
void MPID_nem_dbg_print_all_sendq(FILE *stream)
 +
 +
This is a convenience function that basically just calls <code>_print_vc_sendq</code> for all known VCs in all known PGs (process groups).
  
 
You can call these functions from a debugger to aid in debugging various problems such as incorrect ordering of <code>MPI_Send</code>'s and <code>MPI_Recv</code>'s in collective algorithms or user code.  These functions are not related to the [[Debugger_Message_Queue_Access|proper debugger interface]] that allows you to examine the message queues from totalview and other debuggers.
 
You can call these functions from a debugger to aid in debugging various problems such as incorrect ordering of <code>MPI_Send</code>'s and <code>MPI_Recv</code>'s in collective algorithms or user code.  These functions are not related to the [[Debugger_Message_Queue_Access|proper debugger interface]] that allows you to examine the message queues from totalview and other debuggers.
  
 
<!-- vim: set ft=wikipedia : -->
 
<!-- vim: set ft=wikipedia : -->

Revision as of 16:03, 20 August 2008

The capability to dump CH3 and nemesis-newtcp recv/send queues from a debugger was added in r1195. The functions used to do so are:

void MPIDI_CH3U_Dbg_print_recvq(FILE *stream)

This function dumps the state of the CH3 receive queues (both posted and unexpected) to the given stream. A common choice for the stream is stdout or stderr.

void MPID_nem_dbg_print_vc_sendq(FILE *stream, MPIDI_VC_t *vc)

This function dumps the state of the nemesis shared memory and module send queues for a particular VC (virtual connection). This is only implemented for the newtcp module at the moment, although it is simple to add support for other modules as needed.

void MPID_nem_dbg_print_all_sendq(FILE *stream)

This is a convenience function that basically just calls _print_vc_sendq for all known VCs in all known PGs (process groups).

You can call these functions from a debugger to aid in debugging various problems such as incorrect ordering of MPI_Send's and MPI_Recv's in collective algorithms or user code. These functions are not related to the proper debugger interface that allows you to examine the message queues from totalview and other debuggers.