|
|
LinkTest can test different process-process combinations in parallel. What connections are tested in parallel to other connections and when is defined by the communication pattern. Given an even number of processes, say 16, LinkTest, in its default configuration, can test 16 of the potential 240 connections by testing between 8 exclusive pairs forwards and backwards. To test the remaining 224 possible connections requires repeating this 14 additional times. Each time LinkTest can test connections in parallel is called a step, so to test the connections between 16 processes takes about 15 steps.
|
|
|
|
|
|
A communication pattern defines which connections are tested together in parallel. Continue with our example of 16 processes, the communication patterns defines which 8 connection pairs are tested in parallel. A common way to generate this pairing is the [1-Factor algorithm](https://en.wikipedia.org/wiki/All-to-all_(parallel_pattern)#1-factor_algorithm), however, given an even number $`n`$ processes there are $`(n-1)!!`$ possible pairings. For the derivation of these expressions see [here](#derivation:-number-of-communication-patterns) [here2](Communication-Patterns#derivation:-number-of-communication-patterns).
|
|
|
A communication pattern defines which connections are tested together in parallel. Continue with our example of 16 processes, the communication patterns defines which 8 connection pairs are tested in parallel. A common way to generate this pairing is the [1-Factor algorithm](https://en.wikipedia.org/wiki/All-to-all_(parallel_pattern)#1-factor_algorithm), however, given an even number $`n`$ processes there are $`(n-1)!!`$ possible pairings. For the derivation of these expressions see [here](#derivation-number-of-communication-patterns).
|
|
|
|
|
|
Furthermore these expression over exaggerate the possible space as two steps in which the same pair order is tested, but the ordering of the pairs is different, are considered to be different communication patterns, when in reality this is not the case. As a result $`P`$ should be divided by $`n!`$. We have also likely forgotten to include other effects, as such consider these numbers to be an upper bound.
|
|
|
|
... | ... | |