On 10-May-12 4:01 PM, Jeff Squyres wrote: > Looks ok to me. > > FWIW, I'd put EDR in, if you know the values (even though there won't be any > hardware for a while). That'll just give this code a longer shelf life / > future-proof-ness...
Great, I'll add EDR too. There's actually a patch pending to be accepted in kernel that adds enums instead of all these values. But for now we only have these numbers. -- YK > > On May 10, 2012, at 8:57 AM, Yevgeny Kliteynik wrote: > >> On 10-May-12 3:42 PM, Yevgeny Kliteynik wrote: >>> >>> Here are the ActiveSpeed values: >>> >>> 1: SDR - 2.5 Gb/s * (8/10 coding) >>> 2: DDR - 5 Gb/s * (8/10 coding) >>> 4: QDR - 10 Gb/s * (8/10 coding) >>> 8: FDR10 - 10 Gb/s * (64/66 coding) >>> 16: FDR - 14 Gbps * (64/66 coding) >>> 32: EDR - 25 Gbs * (64/66 coding) >>> >>> EDR is not out yet, so we can ignore it for the sake of this patch. >>> It is also true that *most* of IB cables are 4x. >>> There are 12x clusters out there (like TACC's Ranger), and sometimes >>> there are 1x links (mostly because the cable is not perfect or too long). >>> >>> So cases of 4 and 8 are not the same for us, because MPI needs actual >>> *data* rate instead of *bit* rate, which is different in these cases. >>> >>> I'll send a patch for review in a minute... >>> >> >> How about this patch? If it looks OK, I'll commit to trunk and open CMR. >> >> ndex: btl_openib_component.c >> =================================================================== >> --- btl_openib_component.c (revision 26420) >> +++ btl_openib_component.c (working copy) >> @@ -810,8 +810,10 @@ >> we have to look up the values corresponding to >> port->active_speed and port->active_width. These >> are enums corresponding to the IB spec. Overall >> - forumula is 80% of the reported speed (to get the >> - true link speed) times the number of links. */ >> + forumula to get the true link speed is 8/10 or >> + 64/66 of the reported speed (depends on the coding >> + that is being used for the particular speed) times >> + the number of links. */ >> switch (ib_port_attr->active_speed) { >> case 1: >> /* 2.5Gbps * 0.8, in megabits */ >> @@ -826,9 +828,13 @@ >> openib_btl->super.btl_bandwidth = 8000; >> break; >> case 8: >> - /* 40.0Gbps * 0.8, in megabits */ >> - openib_btl->super.btl_bandwidth = 32000; >> + /* FDR10: 10.0Gbps * 64/66, in megabits */ >> + openib_btl->super.btl_bandwidth = 9700; >> break; >> + case 16: >> + /* FDR: 14.0Gbps * 64/66, in megabits */ >> + openib_btl->super.btl_bandwidth = 13600; >> + break; >> default: >> /* Who knows? Declare this port unreachable (do >> *not* return ERR_VALUE_OF_OUT_OF_BOUNDS; that > >