[openib-general] Re: Question about pinning memory

Gleb Natapov glebn at voltaire.com
Mon Jul 25 08:27:43 PDT 2005


>> > Having said that - do you have some benchmarks to prove that
>> > pinning is that expensive? Are you sure that all these internal
>> > table
>> > lookups aren't even slower?
>> > I cant promise, but given a microbenchmark, maybe something could be
>> > done to
>> > improve the speed of this operation.
>>
>> In my experience cache hit in MVAPICH improves registration by factor
>> of
>> two.
>>
>But thats VAPI based, not gen2 based, isnt it?
>
What is the difference? gen2 do magic? 

>> Internal table lookup is a search in balanced tree. Hardware memory
>> registration is system call + writes on PCI bus + search in balanced
>> tree in get_user_pages,
>
>I cant tell without seeing actual benchmarks.
>Certainly tricks like overriding malloc/free operations can have
>impact on overall application performance.
There is no need to override malloc/free to do registration caching.
And here is the benchmark results for MVAPICH over gen2:
This is how much cycles takes to send buffer of 100000 bytes with cache
miss:      536388
cache hit: 9740

I used MPI_Isend for the test.

>
>> how can you improve this?
>
>I have some optimization ideas in mind - clearly even with a very smart
>registration cache there may be cache misses, so if a problem exists,
>any optimizations shall be beneficial.

It is always good to improve worst case.

--
			Gleb.



More information about the general mailing list