FLASH_Queue_main_prototypes.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef FLASH_QUEUE_MAIN_PROTOTYPES_H
00034 #define FLASH_QUEUE_MAIN_PROTOTYPES_H
00035
00036
00037 void FLASH_Queue_begin( void );
00038 void FLASH_Queue_end( void );
00039
00040 FLA_Error FLASH_Queue_enable( void );
00041 FLA_Error FLASH_Queue_disable( void );
00042 FLA_Bool FLASH_Queue_get_enabled( void );
00043
00044 void FLASH_Queue_set_num_threads( unsigned int n_threads );
00045 unsigned int FLASH_Queue_get_num_threads( void );
00046
00047
00048 #ifdef FLA_ENABLE_SUPERMATRIX
00049
00050
00051 void FLASH_Queue_init( void );
00052 void FLASH_Queue_finalize( void );
00053
00054 int FLASH_Queue_get_num_tasks( void );
00055
00056 void FLASH_Queue_set_verbose_output( FLA_Bool verbose );
00057 FLA_Bool FLASH_Queue_get_verbose_output( void );
00058 void FLASH_Queue_set_sorting( FLA_Bool sorting );
00059 FLA_Bool FLASH_Queue_get_sorting( void );
00060 void FLASH_Queue_set_caching( FLA_Bool caching );
00061 FLA_Bool FLASH_Queue_get_caching( void );
00062 void FLASH_Queue_set_work_stealing( FLA_Bool work_stealing );
00063 FLA_Bool FLASH_Queue_get_work_stealing( void );
00064 void FLASH_Queue_set_data_affinity( FLASH_Data_aff data_affinity );
00065 FLASH_Data_aff FLASH_Queue_get_data_affinity( void );
00066 double FLASH_Queue_get_total_time( void );
00067 double FLASH_Queue_get_parallel_time( void );
00068
00069 void FLASH_Queue_exec( void );
00070
00071
00072
00073
00074 void FLASH_Queue_set_parallel_time( double dtime );
00075 int FLASH_Queue_get_num_blocks( void );
00076 void FLASH_Queue_set_block_size( int size );
00077 int FLASH_Queue_get_block_size( void );
00078 void FLASH_Queue_set_cache_size( int size );
00079 int FLASH_Queue_get_cache_size( void );
00080 void FLASH_Queue_set_cache_line_size( int size );
00081 int FLASH_Queue_get_cache_line_size( void );
00082 void FLASH_Queue_set_cores_per_cache( int cores );
00083 int FLASH_Queue_get_cores_per_cache( void );
00084 void FLASH_Queue_reset( void );
00085 FLASH_Task* FLASH_Queue_get_head_task( void );
00086 FLASH_Task* FLASH_Queue_get_tail_task( void );
00087 void FLASH_Queue_push( void *func, void *cntl, char *name,
00088 int n_int_args, int n_fla_args,
00089 int n_input_args, int n_output_args, ... );
00090 FLASH_Task* FLASH_Task_alloc( void *func, void *cntl, char *name,
00091 int n_int_args, int n_fla_args,
00092 int n_input_args, int n_output_args );
00093 void FLASH_Task_free( FLASH_Task *t );
00094 void FLASH_Queue_exec_task( FLASH_Task *t );
00095 void FLASH_Queue_verbose_output( void );
00096 void FLASH_Queue_visualization( void );
00097
00098 void FLASH_Queue_init_tasks( void *arg );
00099 void FLASH_Queue_wait_enqueue( FLASH_Task *t, void *arg );
00100 FLASH_Task* FLASH_Queue_wait_dequeue( int queue, int thread, void *arg );
00101 void FLASH_Queue_exec_parallel( void *arg );
00102 void* FLASH_Queue_exec_parallel_function( void *arg );
00103 FLASH_Task* FLASH_Task_update_dependencies( FLASH_Task *t, void *arg );
00104 void FLASH_Task_free_parallel( FLASH_Task *t, void *arg );
00105 void FLASH_Queue_exec_simulation( void *arg );
00106
00107
00108 #endif // FLA_ENABLE_SUPERMATRIX
00109
00110
00111 #endif // FLASH_QUEUE_MAIN_PROTOTYPES_H