Age | Commit message (Collapse) | Author |
|
|
|
|
|
The rudimentary and highly inefficicient OpenMPI "support" of the
current grid refinement implementation is not something you want to
actually use. Making this performant requires at least:
* Refinement-aware load balancing
* Load-balancing aware coupler communication (i.e. not dumbly
communicating coupling information to processors that process
neither the relevant coarse not the fine grid)
Until this issue is solved OpenMP delivers acceptable results on
shared-memory platforms. e.g. processing 13500 refined grid points
in `apps/adrian/cylinder2d/optimized_grid` takes about 1.3 times
as long as processing the same cell count in a uniform grid.
|
|
|
|
|
|
|
|
|
|
Same result, nicer code
|
|
|
|
|
|
Scaling factor is specific to the refinement method implemented by the coupler.
|
|
|
|
|
|
Works but is nowhere near anything one could consider good.
Obvious issues:
* More than one cuboid per grid makes it harder to determine the next lattice cell to be coupled
* i.e. currently lattice positions are determined ad hoc by resolving their physical position
* Coupling is not actually parallelized
* All coupling lines are traversed by all processes, way to much communication
* Load balancing and cuboid decomposition doesn't care about refinement
* ideally refined cuboids should be computationally near their coarse _parent_ cuboids
The first two isses should be fixable with a reasonable amount of work.
This sadly doesn't apply in any form to the last issue.
|
|
|
|
|