Hypre memory usage

Level nBoxes nCells xmin ymin zmin xmax ymax zmax MinBoxSize MaxBoxSize Table1 Table2 Table3 TableSize TableSize/nBoxes TableSize/nCells
0 1024 262144 1 1 1 64 64 64 256 256 8 8 160 10,240 10 0.0390625
1 246 157536 33 25 33 96 94 96 512 1344 20 21 8 3,360 13 0.021
2 869 1132952 65 53 67 190 188 186 512 3584 44 46 24 48,576 55 .042
3 4242 8477904 131 107 135 378 376 370 512 20480 112 116 95 1,234,240 290 .145
4 4201 24779672 315 313 321 704 696 704 512 46080 192 190 189 6,894,720 1641 .27
5 10653 8818504 657 627 659 1380 1368 1362 512 4608 354 369 337 44,020,962 4132 5
6 1902 1404112 1024 1024 1024 2728 2710 2642 512 2744 465 449 444 92,700,540 48738 66

The code dies with the following message Out of memory trying to allocate 412094160 bytes

  • nBoxes is the number of grids passed into hypre for that level's solve
  • nCells it the number of cells inside of those grids
  • xmin is the lowest index in the x-direction of all the boxes passed into hypre
  • xmax is the highest index in the x-direction…
  • ymin is the lowest index in the y-direction etc…
  • MinBoxSize is the number of cells in the smallest box
  • MaxBoxSize is the number of cells in the largest box
  • Table1 , Table2 , & Table3 are the sizes used to calculate the index table
  • Table size is the product of those sizes.

So hypre was working as indicated assuming that it was compiled without the '-with-no-global-partition' option. This compiler option is strongly recommended on BlueGene for amr problems using hypre.

Here is a graphical example of hypre's global partition index table… This would results in a 9x6 table with an entry for every black dot. The horizontal lines are along the top and bottom of every grid, and the vertical lines are along the left and right edge.

Graphical explanation of hypre's global partition used for struct

Attachments (1)

Download all attachments as: .zip

Comments

No comments.