fupermod: Functional Performance Models of heterogeneous processors

Computational kernel of a routine

Classes

struct  fupermod_kernel
struct  fupermod_library

Defines

#define FUPERMOD_SUCCESS   0
#define FUPERMOD_FAIL   -1
#define FUPERMOD_ALLOC_FAIL   -2
#define FUPERMOD_KERNEL_INSTANCE   "fupermod_kernel_instance"

Typedefs

typedef double(* fupermod_complexity )(long long int d, void *params)

Functions

int fupermod_library_load (MPI_Comm comm, char *path, fupermod_process_conf *conf, fupermod_library *library)
int fupermod_library_unload (MPI_Comm comm, fupermod_library *library)

Detailed Description

A routine is a standalone parallel application supplied with a shared library implementing its computational kernel, fupermod_kernel. The fupermod tools load the shared library and search for the FUPERMOD_KERNEL_INSTANCE symbol, the instance of the fupermod_kernel data structure.

See also:
Template for computational kernels

Define Documentation

#define FUPERMOD_SUCCESS   0

Success return value for kernel

#define FUPERMOD_FAIL   -1

Failure return value for kernel

#define FUPERMOD_ALLOC_FAIL   -2

Memory failure return value for kernel. Sometimes this may be considered as normal behaviour.

#define FUPERMOD_KERNEL_INSTANCE   "fupermod_kernel_instance"

Kernel kernel instance


Typedef Documentation

typedef double(* fupermod_complexity)(long long int d, void *params)

Computational complexity of the kernel. In general, linearly dependent on the problem size.

Parameters:
d problem size
Returns:
complexity

Function Documentation

int fupermod_library_load ( MPI_Comm  comm,
char *  path,
fupermod_process_conf conf,
fupermod_library library 
)

Loads a library implementing the computation kernel of a routine

Parameters:
comm MPI communicator, can be MPI_COMM_NULL
path path to the shared library
conf process configuration
library the shared library data structure
Returns:
error code
int fupermod_library_unload ( MPI_Comm  comm,
fupermod_library library 
)

Unloads a library implementing the computation kernel of a routine

Parameters:
comm MPI communicator, can be MPI_COMM_NULL
library the shared library data structure
Returns:
error code