Cray XE/XT topology functions should use rca_get_meshtopology() to honestly report mesh/torus
Original issue: https://charm.cs.illinois.edu/redmine/issues/194
Quoth Jim:
I'm doing torus optimizations and TopoManager seems to have it's own ideas on what the actualy topology of the network is (really a 23x24x24 torus):
apr29_512b.rec:X TOPOLOGY 5: 0 1 2 3 4 apr29_512b.rec:Y TOPOLOGY 4: 0 1 2 3 apr29_512b.rec:Z TOPOLOGY 24: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 19 20 21 22 23
It's saying 5 (mesh) by 4 (mesh) by 24 (torus), but only reporting a torus when the job actually spans the full machine in that dimension:
apr29_3000b.rec:X TOPOLOGY 8: 0 1 2 3 4 5 6 7 apr29_3000b.rec:Y TOPOLOGY 24: 0 1 2 3 20 21 22 23 apr29_3000b.rec:Z TOPOLOGY 24: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Well, actually it's worse than that in XTTorus.h:
// we get a torus only if the size of the dimension is the biggest torus[0] = 0; torus[1] = (dimNY == yDIM) ? 1 : 0; torus[2] = (dimNZ == zDIM) ? 1 : 0; torus[3] = 0;
There is this function rca_get_meshtopology() that probably tells you if a given dimension is a torus or not, so is there a reason not to use it?
There are actual mesh machines out there, so this test seems necessary.
Original date: 2013-06-07 01:39:45
As of now cray does not provide a way to differentiate between mesh and tori. Request Cray for the same.
Original date: 2015-02-09 17:49:52
Not much progress here. Cray is not changing the API much.