Skip to content

ENH: multiLevel: native scotch implementation of multi-level

Mattijs Janssens requested to merge feature-multiLevel-scotch into develop

Summary

Support multi-level type decomposition using native scotch functionality. multi-level decomposition is e.g. used when processor-processor communication is more expensive if the two processors are not on the same node. Hence it makes sense to minimise 'cuts' between nodes at the cost of increasing 'cuts' between processors on the same node. This is supported natively in scotch by specifying different costs.

Resolved bugs (If applicable)

Details of new models (If applicable)

Specify a hierarchy of decompositions. Specify different weights traversing the hierarchy.

    numberOfSubdomains  2048;
    coeffs
    {
        // Divide into 64 nodes, each of 32 cores
        domains (64 32);
        // Inside a nodes the communication weight is 1% of that inbetween nodes
        domainWeights (1 0.01);
    }

Alternatively the first-level decomposition can be left out by assuming weights are 1 for that level:

    numberOfSubdomains  2048;
    coeffs
    {
        // Divide into 2048/32=64 nodes
        domains (32);
        // Inside a node the communication weight is 1% of that inbetween nodes
        domainWeights (0.01);
    }
```

### Risks

Merge request reports