| Brick Library 0.1
    Performance-portable stencil datalayout & codegen | 
MPI stuff related to bricks. More...
#include <vector>#include <unordered_map>#include <algorithm>#include <cassert>#include <cstring>#include <cmath>#include <iostream>#include <mpi.h>#include <omp.h>#include <unistd.h>#include "brick.h"#include "bitset.h"#include "memfd.h"Go to the source code of this file.
| Classes | |
| struct | grid_access< T, dim, 1 > | 
| struct | grid_access< T, dim, d > | 
| Generic base template for Accessing grid indices using [].  More... | |
| struct | ExchangeView | 
| PUT view of the ghost and surface region using mmap.  More... | |
| struct | MultiStageExchangeView | 
| SHIFT view of the ghost and surface region using mmap.  More... | |
| struct | MultiStageExchangeView::Package | 
| class | BrickDecomp< dim, BDims > | 
| Decomposition for MPI communication.  More... | |
| struct | BrickDecomp< dim, BDims >::g_region | 
| Record start and end of each region.  More... | |
| struct | mpi_stats | 
| Statistics collection for MPI programs.  More... | |
| Functions | |
| void | allneighbors (BitSet cur, long idx, long dim, std::vector< BitSet > &neighbors) | 
| Enumerate all neighbors. | |
| template<unsigned dim, unsigned ... BDims> | |
| void | populate (MPI_Comm &comm, BrickDecomp< dim, BDims... > &bDecomp, BitSet neighbor, int d, int *coo) | 
| Populate neighbor-rank map for BrickDecomp using MPI_Comm. | |
| mpi_stats | mpi_statistics (double stats, MPI_Comm comm) | 
| std::ostream & | operator<< (std::ostream &os, const mpi_stats &stats) | 
| pretty print an mpi_stats object | |
| Variables | |
| double | packtime | 
| double | calltime | 
| double | waittime | 
| double | movetime | 
| double | calctime | 
| std::vector< BitSet > | skin3d_good | 
| Optimized surface ordering for 3D. | |
| std::vector< BitSet > | skin3d_normal | 
| std::vector< BitSet > | skin3d_bad | 
MPI stuff related to bricks.
Enumerate all neighbors.
| [in] | cur | usually 0 | 
| [in] | idx | current dimension, starts from 1 | 
| [in] | dim | total number of dimensions | 
| [out] | neighbors | a list of neighbors | 
| 
 | inline | 
Collect a stats within a certain communicator to its root
| stats | a double represent a stat | 
| comm | communicator | 
| 
 | inline | 
pretty print an mpi_stats object
| void populate | ( | MPI_Comm & | comm, | 
| BrickDecomp< dim, BDims... > & | bDecomp, | ||
| BitSet | neighbor, | ||
| int | d, | ||
| int * | coo | ||
| ) | 
Populate neighbor-rank map for BrickDecomp using MPI_Comm.
| dim | number of dimensions | 
| BDims | Brick dimensions | 
| comm | |
| bDecomp | |
| neighbor | |
| d | current dimension | 
| coo | This rank's coo | 
Example:
| double calctime | 
| double calltime | 
| double movetime | 
| 
 | extern | 
| std::vector<BitSet> skin3d_bad | 
| 
 | extern | 
Optimized surface ordering for 3D.
| 
 | extern | 
| double waittime |