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

Reply via email to