|
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 |