(git:92574dc)
Loading...
Searching...
No Matches
grid_library.c File Reference
#include "grid_library.h"
#include "grid_common.h"
#include "grid_constants.h"
#include "../../mpiwrap/cp_mpi.h"
#include "../../offload/offload_runtime.h"
#include <assert.h>
#include <omp.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Data Structures

struct  grid_library_globals

Macros

#define GRID_LIBRARY_PRINT(FN, MSG, OUTPUT_UNIT)
#define GRID_NBACKENDS   5
#define GRID_NKERNELS   4
#define GRID_MAX_LP   20

Functions

void grid_library_init (void)
 Initializes the grid library.
void grid_library_finalize (void)
 Finalizes the grid library.
grid_sphere_cache * grid_library_get_sphere_cache (void)
 Returns a pointer to the thread local sphere cache.
void grid_library_set_config (const enum grid_backend backend, const bool validate, const bool apply_cutoff)
 Configures the grid library.
grid_library_config grid_library_get_config (void)
 Returns the library config.
void grid_library_counter_add (const int lp, const enum grid_backend backend, const enum grid_library_kernel kernel, const int increment)
 Adds given increment to counter specified by lp, backend, and kernel.
static int compare_counters (const void *a, const void *b)
 Comperator passed to qsort to compare two counters.
void grid_library_print_stats (const int fortran_comm, void(*print_func)(const char *, int, int), const int output_unit)
 Prints statistics gathered by the grid library.

Variables

static grid_library_globals ** per_thread_globals = NULL
static bool library_initialized = false
static int max_threads = 0
static grid_library_config config

Macro Definition Documentation

◆ GRID_LIBRARY_PRINT

#define GRID_LIBRARY_PRINT ( FN,
MSG,
OUTPUT_UNIT )
Value:
((FN)(MSG, (int)strlen(MSG), OUTPUT_UNIT))

Definition at line 21 of file grid_library.c.

◆ GRID_NBACKENDS

#define GRID_NBACKENDS   5

Definition at line 25 of file grid_library.c.

◆ GRID_NKERNELS

#define GRID_NKERNELS   4

Definition at line 26 of file grid_library.c.

◆ GRID_MAX_LP

#define GRID_MAX_LP   20

Definition at line 27 of file grid_library.c.

Function Documentation

◆ grid_library_init()

void grid_library_init ( void )

Initializes the grid library.

Author
Ole Schuett

Definition at line 53 of file grid_library.c.

Here is the caller graph for this function:

◆ grid_library_finalize()

void grid_library_finalize ( void )

Finalizes the grid library.

Author
Ole Schuett

Definition at line 89 of file grid_library.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ grid_library_get_sphere_cache()

grid_sphere_cache * grid_library_get_sphere_cache ( void )

Returns a pointer to the thread local sphere cache.

Author
Ole Schuett

Definition at line 108 of file grid_library.c.

Here is the caller graph for this function:

◆ grid_library_set_config()

void grid_library_set_config ( const enum grid_backend backend,
const bool validate,
const bool apply_cutoff )

Configures the grid library.

Author
Ole Schuett

Definition at line 118 of file grid_library.c.

Here is the call graph for this function:

◆ grid_library_get_config()

grid_library_config grid_library_get_config ( void )

Returns the library config.

Author
Ole Schuett

Definition at line 129 of file grid_library.c.

Here is the caller graph for this function:

◆ grid_library_counter_add()

void grid_library_counter_add ( const int lp,
const enum grid_backend backend,
const enum grid_library_kernel kernel,
const int increment )

Adds given increment to counter specified by lp, backend, and kernel.

Author
Ole Schuett

Definition at line 135 of file grid_library.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compare_counters()

int compare_counters ( const void * a,
const void * b )
static

Comperator passed to qsort to compare two counters.

Author
Ole Schuett

Definition at line 153 of file grid_library.c.

◆ grid_library_print_stats()

void grid_library_print_stats ( const int fortran_comm,
void(* print_func )(const char *, int, int),
const int output_unit )

Prints statistics gathered by the grid library.

Author
Ole Schuett

Definition at line 161 of file grid_library.c.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ per_thread_globals

grid_library_globals** per_thread_globals = NULL
static

Definition at line 34 of file grid_library.c.

◆ library_initialized

bool library_initialized = false
static

Definition at line 35 of file grid_library.c.

◆ max_threads

int max_threads = 0
static

Definition at line 36 of file grid_library.c.

◆ config

grid_library_config config
static
Initial value:
= {
.backend = GRID_BACKEND_AUTO, .validate = false, .apply_cutoff = false}
@ GRID_BACKEND_AUTO

Definition at line 37 of file grid_library.c.