No strong opinion. However, the comment about the initial value of 
opal_cache_line_size is wrong (opal/runtime/opal.h), as it states that the 
default value is -1 while it is 128.

  george.

On Apr 23, 2012, at 16:21 , Jeffrey Squyres wrote:

> No one replied to this RFC.  Does anyone have an opinion about it?
> 
> I have attached a patch (including some debugging output) showing my initial 
> implementation.  If no one objects by the end of this week, I'll commit to 
> the trunk.
> 
> Terry: please add this to the agenda tomorrow.
> 
> 
> On Mar 30, 2012, at 1:09 PM, Jeffrey Squyres wrote:
> 
>> I was just recently reminded of a comment that is near the top of 
>> opal_init_util():
>> 
>>   /* JMS See note in runtime/opal.h -- this is temporary; to be
>>      replaced with real hwloc information soon (in trunk/v1.5 and
>>      beyond, only).  This *used* to be a #define, so it's important
>>      to define it very early.  */
>>   opal_cache_line_size = 128;
>> 
>> A few points:
>> 
>> 1. On my platforms, hwloc tells me that my cache line size is 64, not 128.  
>> Probably not a tragedy, but...
>> 
>> 2. I see opal_cache_line_size being used in a lot of BTL and PML 
>> initialization locations.  I see it being used in opal/class/free_list.*, 
>> too.
>> 
>> 3. I poked around with this yesterday to see if we could have hwloc 
>> initialize the opal_cache_line_size value.  Points to remember:
>> 
>> - we initialize the opal hwloc framework in opal_init(), but we do not load 
>> the local machine's architecture then (because it can be expensive, 
>> particularly if lots of MPI processes are all doing it simultaneously)
>> - instead, the local machine topology is discovered once by each orted 
>> (using hwloc) and then RML sent to each local MPI process, where it is 
>> locally loaded into each MPI proc's hwloc tree
>> - this happens during the orte_init() in ompi_mpi_init()
>> 
>> Meaning: we can initialize the opal_cache_line_size in MPI processes during 
>> orte_init().
>> 
>> Is this acceptable to everyone?  
>> 
>> If so, I can go ahead and code this up.  I would probably leave the initial 
>> value hard-coded to 128 (just in case something uses it before orte_init()), 
>> and then later during orte_init(), reset it to the smallest L1 cache size 
>> that hwloc finds on the machine.
>> 
>> -- 
>> Jeff Squyres
>> jsquy...@cisco.com
>> For corporate legal information go to: 
>> http://www.cisco.com/web/about/doing_business/legal/cri/
>> 
>> 
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
> 
> 
> -- 
> Jeff Squyres
> jsquy...@cisco.com
> For corporate legal information go to: 
> http://www.cisco.com/web/about/doing_business/legal/cri/
> <opal-cache-line-size.diff>_______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel


Reply via email to