<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Sure thing. <div><br></div><div>This was for my custom core-collapse supernova application.* Functionally, it is nearly identical to the CCSN application (source/Simulation/SimulationMain/CCSN) packaged with the latest release of FLASH (v4.2.2), except that I’m using MHD rather than plain hydro. This setup uses the unsplit staggered mesh MHD solver, detailed mircrophysical tabular EOS (source/physics/Eos/EosMain/Nuclear), the new multipole gravity solver (source/Grid/GridSolvers/Multipole_new, Couch, Graziani, & Flocke, 2013, ApJ, 778, 181), approximate neutrino transport via a leakage scheme (source/physics/RadTrans/NeutrinoLeakage), and AMR via PARAMESH. <div><br></div><div>The scaling study was done on BG/Q Mira at Argonne Leadership Computing Facility. To control the number of AMR blocks per core, I use a custom version of Grid_markRefineDerefine.F90 that forces refinement up to the maximum level within a runtime-specified radius. This test employed hybrid parallelism with AMR blocks distributed amongst the MPI ranks and OpenMP threading <i>within</i> block (i.e., the i,j,k loops are threaded). I used 24^3 zones per block (this reduces the fractional memory overhead of guardcells and the communication per rank per step). This application strong scales like a champ (Fig. 1 below), being fairly efficient down to ~4 AMR blocks per MPI rank. </div><div><br></div><div>On hardware, Mira is a BG/Q with 16 cores per node, 1 GB memory per core, and capable of 4 hardware threads per core. My application clocks in at memory usage per rank of about 1200 MB (large EOS table, MHD has lots of extra face variables, scratch arrays, and my application defines a number of new grid variables). Thus, I have to run 8 MPI ranks per node in order to fit in memory. I therefore run with 8 OpenMP threads per MPI rank. This is not ideal; not every part of FLASH is threaded (I’m looking at you, Grid, IO…). The heavy-lifting physics routines are threaded and with 24^3 zones per block and within-block threading, the thread-to-thread speedup is acceptable even up to 8 threads. </div><div><br></div><div>The big run (32,768 nodes, 524,288 cores) had 2,097,152 leaf blocks (~29 <i>billion</i> zones), 2,396,744 total blocks, and used 262,144 MPI ranks (thus 8 leaf blocks per MPI rank).</div><div><br></div><div>Note that Mira has an extremely fast communication fabric! YMMV on other systems. I have run a much smaller weak scaling study on TACC Stampede up to 4096 cores and it is also essentially perfect, but I have yet to go to any significant core count on Stampede (see Fig. 2).</div><div><br></div><div>Hope this is helpful and informative!</div><div><br></div><div>Sean</div><div><div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px;"><div><br></div><div></div></span></div></div></div></div></div></div></body></html>