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 |