OpenFPM_pdata  4.1.0 Project that contain the implementation of distributed structures
GridModule

## Data Structures

class  cub::GridBarrier
GridBarrier implements a software global barrier among thread blocks within a CUDA grid. More...

GridBarrierLifetime extends GridBarrier to provide lifetime management of the temporary device storage needed for cooperation. More...

struct  cub::GridEvenShare< OffsetT >
GridEvenShare is a descriptor utility for distributing input among CUDA thread blocks in an "even-share" fashion. Each thread block gets roughly the same number of input tiles. More...

class  cub::GridQueue< OffsetT >
GridQueue is a descriptor utility for dynamic queue management. More...

## Enumerations

enum  cub::GridMappingStrategy { cub::GRID_MAPPING_RAKE, cub::GRID_MAPPING_STRIP_MINE, cub::GRID_MAPPING_DYNAMIC }
cub::GridMappingStrategy enumerates alternative strategies for mapping constant-sized tiles of device-wide data onto a grid of CUDA thread blocks. More...

## Functions

template<typename OffsetT >
__global__ void cub::FillAndResetDrainKernel (GridQueue< OffsetT > grid_queue, OffsetT num_items)

## ◆ GridMappingStrategy

cub::GridMappingStrategy enumerates alternative strategies for mapping constant-sized tiles of device-wide data onto a grid of CUDA thread blocks.

Enumerator
GRID_MAPPING_RAKE

An a "raking" access pattern in which each thread block is assigned a consecutive sequence of input tiles.

Overview
The input is evenly partitioned into p segments, where p is constant and corresponds loosely to the number of thread blocks that may actively reside on the target device. Each segment is comprised of consecutive tiles, where a tile is a small, constant-sized unit of input to be processed to completion before the thread block terminates or obtains more work. The kernel invokes p thread blocks, each of which iteratively consumes a segment of n/p elements in tile-size increments.
GRID_MAPPING_STRIP_MINE

An a "strip mining" access pattern in which the input tiles assigned to each thread block are separated by a stride equal to the the extent of the grid.

Overview
The input is evenly partitioned into p sets, where p is constant and corresponds loosely to the number of thread blocks that may actively reside on the target device. Each set is comprised of data tiles separated by stride tiles, where a tile is a small, constant-sized unit of input to be processed to completion before the thread block terminates or obtains more work. The kernel invokes p thread blocks, each of which iteratively consumes a segment of n/p elements in tile-size increments.
GRID_MAPPING_DYNAMIC

A dynamic "queue-based" strategy for assigning input tiles to thread blocks.

Overview
The input is treated as a queue to be dynamically consumed by a grid of thread blocks. Work is atomically dequeued in tiles, where a tile is a unit of input to be processed to completion before the thread block terminates or obtains more work. The grid size p is constant, loosely corresponding to the number of thread blocks that may actively reside on the target device.

Definition at line 59 of file grid_mapping.cuh.

## ◆ FillAndResetDrainKernel()

template<typename OffsetT >
 __global__ void cub::FillAndResetDrainKernel ( GridQueue< OffsetT > grid_queue, OffsetT num_items )

Reset grid queue (call with 1 block of 1 thread)

Definition at line 203 of file grid_queue.cuh.