More LAM gm RPI work.
There's a degree of urgency to this because we're asking Myricom for some cheap/free equipment, and we kinda need a working Myrinet RPI to do this. Plus, the Sandia folks have a Myrinet cluster, and it's kinda in our interest to have a working version...
- Added more to the
README.myrifile -- it was incorrect and
incomplete. For example, it didn't have anything about changing the
tiny/short message lengths. - Had to bullet-proof the tiny and short message lengths (both the
defaults and the user-settable sizes) to ensure that they weren't
the same, and that the tiny really was less than (short +
sizeof(struct c2c_envl)) -- it's a little confusing because the
tiny size has to have the size of the envelope added to it. Hence,
the tiny and short lengths must be at least (sizeof(struct) apart.
c2c_envl) - Cleaned up a lot of confusing "size" vs. "length" misnamed
variables and whatnot in the code (these two words mean something
very different in Myrinet/gm). - Found some problems with user-overridden message length sizes;
initial buffers were being provided with the wrong size, so messages
would never be received properly.
All these took a long time to resolve because I had to go [re]learn how the Myrinet code worked. Plus, I made assumptions about things that were supposedly already tested which ended up being broken anyway. Ugh.
However, with these bug fixes, we might be darn close to the first beta release. We'll see.
Everything works on Chiba City now; need to do some cross-checks on the Hydra and on the babel cluster.