On Jun 1, 2011, at 11:47 AM, Roy Stogner wrote:

> 
> On Wed, 1 Jun 2011, Cody Permann wrote:
> 
>> On Jun 1, 2011, at 11:34 AM, Roy Stogner wrote:
>> 
>>> Struct padding in elem.h is such that adding 1 byte to
>>> sizeof(subdomain_id_type) won't necessarily add 1 byte to
>>> sizeof(Elem).  At first glance it looks like it would add 4 bytes on
>>> 32-bit systems or 0 bytes on 64-bit systems, but I wouldn't swear to
>>> any of that.
>> 
>> Yes I came to the exact same conclusion based on what I know about
>> struct padding.  I just verified on my 64-bit Mac that changing the
>> subdomain size to 16 bits did _NOT_ change the overall size of an
>> element.  (HEX8 is 96 bytes before and after on this system)
> 
> I'm now tempted to say let's default to 32-bit subdomain_id_type and
> just leave configure options to bump it down to 16 or 8 bits.  Any
> issues with Exodus (or other formats) support for 32-bit block
> numbers?

subdomain_id_type impacts on Elem Size:

8 bits: sizeof(Hex8) = 96
16 bits: sizeof(Hex8) = 96
32 bits: sizeof(Hex8) = 96
64 bits: sizeof(Hex8) = 104  (just to verify)

As expected, with alignment the only impact on Elems manifests itself when 
going over 32 bits on a 64 bit machine.  As Roy pointed out a minute ago though 
I'd bet that we'd see growth moving from 8 to 16 bits on a 32 bit machine but 
that probably isn't a significant concern with most reasonably modern hardware. 
 Based on Ben's comments about disabling AMR for a bigger impact on footprint, 
and Roy's comments it appears we have a good path forward.  We'll work to make 
sure there aren't any issues with Exodus and any other obvious problems in the 
library related to the current implementation before commiting a patch.  I know 
I've gone into that "id_types.h" file before when debugging and changed that 
typedef without ill effects on small problems but I'll need to build a few test 
cases with thousands of subdomains to make sure that everything else works 
properly.

Cody  


> ---
> Roy


------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger. 
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today. 
http://p.sf.net/sfu/quest-sfdev2dev
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to