PLASMA
2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
|
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include "common.h"
#include "auxiliary.h"
#include "allocate.h"
Go to the source code of this file.
Functions | |
void | plasma_barrier_init (plasma_context_t *plasma) |
void | plasma_barrier_finalize (plasma_context_t *plasma) |
void | plasma_barrier (plasma_context_t *plasma) |
void * | plasma_parallel_section (void *plasma_ptr) |
int | PLASMA_Init (int cores) |
int | PLASMA_Init_Affinity (int cores, int *coresbind) |
int | PLASMA_Finalize () |
PLASMA auxiliary routines PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver
Definition in file control.c.
void plasma_barrier | ( | plasma_context_t * | plasma | ) |
Busy-waiting barrier
Definition at line 59 of file control.c.
References plasma_context_struct::barrier_id, plasma_context_struct::barrier_nblocked_thrds, plasma_context_struct::barrier_synccond, plasma_context_struct::barrier_synclock, PLASMA_RANK, PLASMA_SIZE, pthread_cond_broadcast(), pthread_cond_wait(), pthread_mutex_lock(), and pthread_mutex_unlock().
void plasma_barrier_finalize | ( | plasma_context_t * | plasma | ) |
Busy-waiting barrier finalize
Definition at line 48 of file control.c.
References plasma_context_struct::barrier_synccond, plasma_context_struct::barrier_synclock, pthread_cond_destroy(), and pthread_mutex_destroy().
void plasma_barrier_init | ( | plasma_context_t * | plasma | ) |
Busy-waiting barrier initialization
Definition at line 28 of file control.c.
References plasma_context_struct::barrier_id, plasma_context_struct::barrier_nblocked_thrds, plasma_context_struct::barrier_synccond, plasma_context_struct::barrier_synclock, CONTEXT_THREADS_MAX, pthread_cond_init(), and pthread_mutex_init().
int PLASMA_Finalize | ( | ) |
PLASMA_Finalize - Finalize PLASMA.
PLASMA_SUCCESS | successful exit |
Definition at line 293 of file control.c.
References plasma_context_struct::action, plasma_context_struct::action_condt, plasma_context_struct::action_mutex, PLASMA_ACT_FINALIZE, PLASMA_ACT_STAND_BY, plasma_barrier(), plasma_barrier_finalize(), plasma_context_remove(), plasma_context_self(), plasma_dynamic_sync, PLASMA_ERR_NOT_INITIALIZED, plasma_fatal_error(), PLASMA_SUCCESS, plasma_topology_finalize(), pthread_attr_destroy(), pthread_cond_broadcast(), pthread_join(), pthread_mutex_lock(), pthread_mutex_unlock(), pthread_self(), pthread_setconcurrency(), plasma_context_struct::quark, QUARK_Free(), plasma_context_struct::thread_attr, plasma_context_struct::thread_id, and plasma_context_struct::world_size.
int PLASMA_Init | ( | int | cores | ) |
PLASMA_Init - Initialize PLASMA.
[in] | cores | Number of cores to use (threads to launch). If cores = 0, cores = PLASMA_NUM_THREADS if it is set, the system number of core otherwise. |
PLASMA_SUCCESS | successful exit |
Definition at line 153 of file control.c.
References PLASMA_Init_Affinity().
int PLASMA_Init_Affinity | ( | int | cores, |
int * | coresbind | ||
) |
PLASMA_Init_Affinity - Initialize PLASMA.
[in] | cores | Number of cores to use (threads to launch). If cores = 0, cores = PLASMA_NUM_THREADS if it is set, the system number of core otherwise. |
[in] | coresbind | Array to specify where to bind each thread. Each thread i is binded to coresbind[hwloc(i)] if hwloc is provided, or to coresbind[i] otherwise. If coresbind = NULL, coresbind = PLASMA_AFF_THREADS if it is set, the identity function otherwise. |
PLASMA_SUCCESS | successful exit |
Definition at line 184 of file control.c.
References CONTEXT_THREADS_MAX, plasma_context_struct::group_size, plasma_barrier(), plasma_barrier_init(), plasma_context_create(), plasma_context_insert(), PLASMA_ERR_INTERNAL_LIMIT, PLASMA_ERR_NOT_FOUND, PLASMA_ERR_OUT_OF_RESOURCES, plasma_fatal_error(), plasma_get_affthreads(), plasma_get_numthreads(), plasma_get_numthreads_numa(), plasma_parallel_section(), plasma_setaffinity(), PLASMA_SUCCESS, plasma_topology_init(), plasma_warning(), pthread_attr_init(), pthread_attr_setscope(), pthread_create(), PTHREAD_SCOPE_SYSTEM, pthread_self(), pthread_setconcurrency(), plasma_context_struct::quark, QUARK_Setup(), plasma_context_struct::thread_attr, plasma_context_struct::thread_bind, plasma_context_struct::thread_id, plasma_context_struct::thread_rank, and plasma_context_struct::world_size.
void* plasma_parallel_section | ( | void * | plasma_ptr | ) |
Main thread control
Definition at line 100 of file control.c.
References plasma_context_struct::action, plasma_context_struct::action_condt, plasma_context_struct::action_mutex, plasma_context_struct::parallel_func_ptr, PLASMA_ACT_DYNAMIC, PLASMA_ACT_FINALIZE, PLASMA_ACT_PARALLEL, PLASMA_ACT_STAND_BY, plasma_barrier(), plasma_fatal_error(), plasma_rank(), plasma_setaffinity(), pthread_cond_wait(), pthread_mutex_lock(), pthread_mutex_unlock(), plasma_context_struct::quark, QUARK_Worker_Loop(), and plasma_context_struct::thread_bind.