Remote direct memory access: Difference between revisions

Content deleted Content added
Xzqx (talk | contribs)
m minor grammar
Ric8ard (talk | contribs)
Corrected typo: hidding->hiding.
Line 12:
the memory area involved in the communications will be kept in main memory, at least during the duration of the transfer. One must for instance make sure that this memory will not be swapped out. Else, the [[DMA]] engine might use out-dated data, thus raising the risk of memory corruption. The usual way is to pin memory down so that it
will be kept in main memory, but this creates a somehow unexpected overhead since this memory registration is very expensive, thus increasing the latency linearly with the size of the data. In order to address that issue, there are several attitudes that were adopted :
* defering memory registration out of the critical path, thus somehow hiddinghiding the latency increase.
* using caching techniques to keep data pinned as long as possible so that the overhead could be reduced for application performing communications in the same memory area several times.
* pipelining memory registration and data transfer as done on [[Infiniband]] or [[Myrinet]] for instance.