QLogic OFED+ Host Software User Guide, Rev. B
QLogic OFED+ Host Software User Guide, Rev. B
QLogic OFED+ Host Software User Guide, Rev. B
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
7–Dispersive Routing<br />
Internally, PSM utilizes dispersive routing differently for small and large<br />
messages. Large messages are any messages greater-than or equal-to 64K. For<br />
large messages, the message is split into message fragments of 128K by default<br />
(called a window). Each of these message windows is sprayed across a distinct<br />
path between ports. All packets belonging to a window utilize the same path<br />
however the windows themselves can take a different path through the fabric.<br />
PSM assembles the windows that make up an MPI message before delivering it to<br />
the application. This allows limited out of order semantics through the fabrics to be<br />
maintain with little overhead. Small messages on the other hand always utilize a<br />
single path when communicating to a remote node however different processes<br />
executing on a node can utilize different paths for their communication between<br />
the nodes. For example, two nodes A and B each with 8 processors per node.<br />
Assuming the fabric is configured for a LMC of 3, PSM constructs 8 paths through<br />
the fabric as described above and a 16 process MPI application that spans these<br />
nodes (8 process per node). Then:<br />
• Each MPI process is automatically bound to a given CPU core numbered<br />
between 0-7. PSM does this at startup to get improved cache hit rates and<br />
other benefits.<br />
• Small Messages sent from a process on core N will use path N.<br />
NOTE:<br />
Only path N will be used by this process for all communications to any<br />
process on the remote node.<br />
• For a large message, each process will utilize all of the 8 paths and spray<br />
the windowed messages across it.<br />
The above highlights the default path selection policy that is active in PSM when<br />
running on non-zero LMC configured fabrics. There are 3 other path selection<br />
policies that determine how to select the path (or path index from the set of<br />
available paths) used by a process when communicating with a remote node. The<br />
above path policy is called adaptive. The 3 remaining path policies are static<br />
policies that assign a static path on job startup for both small and large message<br />
transfers.<br />
• Static_Src: Only one path per process is used for all remote<br />
communications. The path index is based on the CPU number the process<br />
is running.<br />
NOTE:<br />
Multiple paths are still used in the fabric if multiple processes (each on<br />
a different CPU) are communicating.<br />
7-2 D000046-005 B