That's another approach I have thought about... breaking the read into bite-sized chunks. However it seems to me that this could lead to more CPU and process time being spent working on managing network traffic. Realistically, I would only want to cancel RDMA reads which will take a relatively long time otherwise. So perhaps I set a data length maximum, and reads are broken down into segments of that maximum size as you suggested.... or I adjust the scheduler to not move tasks which large memory requirements.
Another approach is to take a pattern from parallel programming: exponential backoff, but perhaps make it into exponential fetch... I fetch 1U, 2U, 4U, 16U, 32U... to n*nU (where U is the unit of measure, say KB or MB). This way I can cancel the request at certain points, but it becomes harder to cancel each time because I already have so much of the data. Some random thoughts anyways :-) AJ _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
