This module provides the utility routines.

name | description |
---|---|

Subroutines contained in this interface:

name | description |
---|---|

Determine an approximately optimal communication |

Subroutines contained in this interface:

name | description |
---|---|

Determine an approximately optimal communication |

Determine an approximately optimal communication sequence for each processor to SendRecv data with its neighbors only. Such that: no conflicts occur (i.e. A wants to send to B, but B is currently busy receiving from C) and that a minimum number of communication rounds are needed. This is done by using the Vizing approximation to the minimal edge coloring problem of the processor topology graph.

Note | |
---|---|

The current implementation relies on external routine written in C++ and its Fortran wrapper. |

Reference: V.G. Vizing, On an estimate of the chromatic class of a p-graph. Discret. Analiz. 3, 1964, pp.25-30. (In Russian).

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | The topology to be optimized | |||

integer | (INOUT) | return status, 0 on success |

integer, , (IN)

The topology to be optimized

integer, , (INOUT)

return status, 0 on success

ppm_module_data, ppm_module_error, ppm_module_typedef, ppm_module_alloc, ppm_module_check_id, ppm_module_substop, ppm_module_color_edge, ppm_module_substart

Determine an approximately optimal communication sequence for each processor to SendRecv data with its neighbors only. Such that: no conflicts occur (i.e. A wants to send to B, but B is currently busy receiving from C) and that a minimum number of communication rounds are needed. This is done by using the Vizing approximation to the minimal edge coloring problem of the processor topology graph.

Tip | |
---|---|

This routine should be used for cartesian decompositions |

Note | |
---|---|

The current implementation relies on external routine written in C++ and its Fortran wrapper. |

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | The topology to be optimized | |||

integer | (INOUT) | return status, 0 on success |

integer, , (IN)

The topology to be optimized

integer, , (INOUT)

return status, 0 on success

ppm_module_data, ppm_module_error, ppm_module_alloc, ppm_module_check_id, ppm_module_substop, ppm_module_write, ppm_module_substart