mdcore
0.1.5
|
Go to the source code of this file.
Data Structures | |
struct | runner_fifo |
struct | runner |
Defines | |
#define | runner_err_ok 0 |
#define | runner_err_null -1 |
#define | runner_err_malloc -2 |
#define | runner_err_space -3 |
#define | runner_err_pthread -4 |
#define | runner_err_engine -5 |
#define | runner_err_spe -6 |
#define | runner_err_mfc -7 |
#define | runner_err_unavail -8 |
#define | runner_err_fifo -9 |
#define | runner_err_verlet_overflow -10 |
#define | runner_minsleep 1000 |
#define | runner_bitesize 3 |
#define | runner_verlet_bitesize 200 |
#define | runner_qlen 8 |
#define | runner_dispatch_stop 0xffffffff |
#define | runner_dispatch_lookahead 20 |
Functions | |
int | runner_dispatcher (struct engine *e) |
This is the dispatcher that passes pairs to the individual #runners. | |
int | runner_dopair (struct runner *r, struct cell *cell_i, struct cell *cell_j, FPTYPE *shift) |
int | runner_dopair_unsorted (struct runner *r, struct cell *cell_i, struct cell *cell_j, FPTYPE *shift) |
int | runner_dopair_verlet2 (struct runner *r, struct cell *cell_i, struct cell *cell_j, FPTYPE *pshift, struct cellpair *cp) |
int | runner_dopair_verlet (struct runner *r, struct cell *cell_i, struct cell *cell_j, FPTYPE *pshift, struct cellpair *cp) |
int | runner_init_SPU (struct runner *r, struct engine *e, int id) |
Initialize the runner associated to the given engine and attach it to an SPU. | |
int | runner_init (struct runner *r, struct engine *e, int id) |
Initialize the runner associated to the given engine. | |
int | runner_run_pairs (struct runner *r) |
The runner's main routine. | |
int | runner_run_tuples (struct runner *r) |
The runner's main routine (celltuple model). | |
int | runner_run_verlet (struct runner *r) |
The runner's main routine (for Verlet lists). | |
void | runner_sort_ascending (unsigned int *parts, int N) |
Sort the particles in ascending order using QuickSort. | |
void | runner_sort_descending (unsigned int *parts, int N) |
Sort the particles in descending order using QuickSort. | |
int | runner_verlet_eval (struct runner *r, struct cell *c, FPTYPE *f_out) |
int | runner_verlet_fill (struct runner *r, struct cell *cell_i, struct cell *cell_j, FPTYPE *pshift) |
Variables | |
int | runner_err |
#define runner_bitesize 3 |
Maximum number of cellpairs to get from space_getpair.
#define runner_dispatch_lookahead 20 |
#define runner_dispatch_stop 0xffffffff |
Magic word to make the dispatcher stop.
#define runner_err_engine -5 |
#define runner_err_fifo -9 |
#define runner_err_malloc -2 |
#define runner_err_mfc -7 |
#define runner_err_null -1 |
#define runner_err_ok 0 |
#define runner_err_pthread -4 |
#define runner_err_space -3 |
#define runner_err_spe -6 |
#define runner_err_unavail -8 |
#define runner_err_verlet_overflow -10 |
#define runner_minsleep 1000 |
#define runner_qlen 8 |
Length of the cell pair queue between the PPU and the SPU and of the fifo-queue in dispatch mode.
#define runner_verlet_bitesize 200 |
Number of particles to request per call to space_getverlet.
int runner_dispatcher | ( | struct engine * | e | ) |
This is the dispatcher that passes pairs to the individual #runners.
r | Pointer to the engine in which the runners reside. |
int runner_dopair | ( | struct runner * | r, |
struct cell * | cell_i, | ||
struct cell * | cell_j, | ||
FPTYPE * | shift | ||
) |
int runner_dopair_unsorted | ( | struct runner * | r, |
struct cell * | cell_i, | ||
struct cell * | cell_j, | ||
FPTYPE * | shift | ||
) |
int runner_dopair_verlet | ( | struct runner * | r, |
struct cell * | cell_i, | ||
struct cell * | cell_j, | ||
FPTYPE * | pshift, | ||
struct cellpair * | cp | ||
) |
int runner_dopair_verlet2 | ( | struct runner * | r, |
struct cell * | cell_i, | ||
struct cell * | cell_j, | ||
FPTYPE * | pshift, | ||
struct cellpair * | cp | ||
) |
int runner_init | ( | struct runner * | r, |
struct engine * | e, | ||
int | id | ||
) |
Initialize the runner associated to the given engine.
r | The runner to be initialized. |
e | The engine with which it is associated. |
id | The ID of this runner. |
int runner_init_SPU | ( | struct runner * | r, |
struct engine * | e, | ||
int | id | ||
) |
Initialize the runner associated to the given engine and attach it to an SPU.
r | The runner to be initialized. |
e | The engine with which it is associated. |
id | The ID of this runner. |
If CELL
is not defined, this routine will fail!
int runner_run_pairs | ( | struct runner * | r | ) |
The runner's main routine.
r | Pointer to the runner to run. |
This is the main routine for the runner. When called, it enters an infinite loop in which it waits at the engine r->e
barrier and, once having paSSEd, calls space_getpair until there are no pairs available.
int runner_run_tuples | ( | struct runner * | r | ) |
The runner's main routine (celltuple model).
r | Pointer to the runner to run. |
This is the main routine for the runner. When called, it enters an infinite loop in which it waits at the engine r->e
barrier and, once having passed, calls space_gettuple until there are no tuples available.
int runner_run_verlet | ( | struct runner * | r | ) |
The runner's main routine (for Verlet lists).
r | Pointer to the runner to run. |
This is the main routine for the runner. When called, it enters an infinite loop in which it waits at the engine r->e
barrier and, once having passed, checks first if the Verlet list should be re-built and then proceeds to traverse the Verlet list cell-wise and computes its interactions.
void runner_sort_ascending | ( | unsigned int * | parts, |
int | N | ||
) |
Sort the particles in ascending order using QuickSort.
parts | The particle IDs and distances in compact form |
N | The number of particles. |
The particle data is assumed to contain the distance in the lower 16 bits and the particle ID in the upper 16 bits.
void runner_sort_descending | ( | unsigned int * | parts, |
int | N | ||
) |
Sort the particles in descending order using QuickSort.
parts | The particle IDs and distances in compact form |
N | The number of particles. |
The particle data is assumed to contain the distance in the lower 16 bits and the particle ID in the upper 16 bits.
int runner_verlet_eval | ( | struct runner * | r, |
struct cell * | c, | ||
FPTYPE * | f_out | ||
) |
int runner_verlet_fill | ( | struct runner * | r, |
struct cell * | cell_i, | ||
struct cell * | cell_j, | ||
FPTYPE * | pshift | ||
) |
int runner_err |
The ID of the last error.