fupermod: Functional Performance Models of heterogeneous processors

fupermod_kernel Struct Reference
[Computational kernel of a routine]

List of all members.

Public Attributes

int(* load )(MPI_Comm comm, fupermod_process_conf *conf)
int(* unload )(MPI_Comm comm)
fupermod_complexity complexity
int(* initialize )(long long int d, void **params)
int(* execute )(pthread_mutex_t *mutex, void *params)
int(* finalize )(void *params)

Detailed Description

Computational kernel of a routine


Member Data Documentation

int(* fupermod_kernel::load)(MPI_Comm comm, fupermod_process_conf *conf)

Loads the library. Parses suboptions at root and broadcasts the routines settings in communicator. Some tools are non-MPI, therefore MPI_COMM_NULL should be handled.

Parameters:
comm MPI communicator
conf process configuration
Returns:
return code
int(* fupermod_kernel::unload)(MPI_Comm comm)

Unloads the library. Some tools are non-MPI, therefore MPI_COMM_NULL should be handled.

Parameters:
comm MPI communicator
Returns:
return code
int(* fupermod_kernel::initialize)(long long int d, void **params)

Initializes the kernel. Allocates data for benchmarking, which should be stored in global variables.

Parameters:
d problem size
params kernel parameters (if used, should be allocated here)
Returns:
return code
int(* fupermod_kernel::execute)(pthread_mutex_t *mutex, void *params)

Executes the kernel. Uses the global variables of the kernel. Kernel can be executed in a separate thread to enable termination in case of long run.

Parameters:
mutex a mutex to protect some resources:

 pthread_mutex_lock(mutex);
 // use of resources
 pthread_mutex_unlock(mutex);
params kernel parameters
Returns:
return code
int(* fupermod_kernel::finalize)(void *params)

Finalizes the kernel. Free the memory for the kernel.

Parameters:
params kernel parameters (if used, should be deallocated here)
Returns:
return code

The documentation for this struct was generated from the following file: