NcmFuncEval

NcmFuncEval — A general purpose multi-threaded function evaluator.

Functions

Description

Thread pool based function evaluator. This module is used by the different objects in NumCosmo that need to evaluate functions in parallel.

Functions

NcmFuncEvalLoop ()

void
(*NcmFuncEvalLoop) (glong i,
                    glong f,
                    gpointer data);

ncm_func_eval_set_max_threads ()

void
ncm_func_eval_set_max_threads (gint mt);

Set the new maximun number of threads to be used by the pool. Note that this function is global changing this will affect every place which uses these functions.

Parameters

mt

new max threads to be used in the pool, -1 means unlimited

 

ncm_func_eval_threaded_loop_nw ()

void
ncm_func_eval_threaded_loop_nw (NcmFuncEvalLoop lfunc,
                                glong i,
                                glong f,
                                gpointer data,
                                guint nworkers);

Using the thread pool, evaluate fl in each value of (f -i )/nwork .

Parameters

lfunc

NcmFuncEvalLoop to be evaluated in threads.

[scope notified]

i

initial index

 

f

final index

 

data

pointer to be passed to fl

 

nworkers

number of workers.

 

ncm_func_eval_threaded_loop ()

void
ncm_func_eval_threaded_loop (NcmFuncEvalLoop lfunc,
                             glong i,
                             glong f,
                             gpointer data);

Using the thread pool, evaluate fl in each value of (f -i )/nthreads

Parameters

lfunc

NcmFuncEvalLoop to be evaluated in threads.

[scope notified]

i

initial index

 

f

final index

 

data

pointer to be passed to fl

 

ncm_func_eval_threaded_loop_full ()

void
ncm_func_eval_threaded_loop_full (NcmFuncEvalLoop lfunc,
                                  glong i,
                                  glong f,
                                  gpointer data);

Using the thread pool, evaluate fl sending one worker per index.

Parameters

lfunc

NcmFuncEvalLoop to be evaluated in threads.

[scope notified]

i

initial index

 

f

final index

 

data

pointer to be passed to fl

 

ncm_func_eval_log_pool_stats ()

void
ncm_func_eval_log_pool_stats (void);