27.12.2014 Views

QLogic OFED+ Host Software User Guide, Rev. B

QLogic OFED+ Host Software User Guide, Rev. B

QLogic OFED+ Host Software User Guide, Rev. B

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!