PIPS
step_api.h
Go to the documentation of this file.
1 #ifndef __STEP_API_H__
2 #define __STEP_API_H__
3 
4 #include <stdarg.h>
5 #include <stdint.h>
6 #include <stddef.h>
7 #include "step_common.h"
8 
9 #ifndef STEP_ARG
10 #define STEP_ARG int32_t // INTEGER*4
11 #endif
12 
13 #define STEP_API(name) name##_
14 
15 extern void STEP_API(step_init_fortran_order)(void);
16 #define STEP_INIT_FORTRAN_ORDER STEP_API(step_init_fortran_order)
17 extern void STEP_API(step_init_c_order)(void);
18 #define STEP_INIT_C_ORDER STEP_API(step_init_c_order)
19 extern void STEP_API(step_finalize)(void);
20 #define STEP_FINALIZE STEP_API(step_finalize)
21 
22 extern void STEP_API(step_get_commsize)(STEP_ARG *size);
23 #define STEP_GET_COMMSIZE STEP_API(step_get_commsize)
25 #define STEP_GET_RANK STEP_API(step_get_rank)
26 
27 extern void STEP_API(step_construct_begin)(const STEP_ARG *construction);
28 extern void STEP_CONSTRUCT_BEGIN(const STEP_ARG construction);
29 extern void STEP_API(step_construct_end)(const STEP_ARG *construction);
30 extern void STEP_CONSTRUCT_END(const STEP_ARG construction);
31 
32 extern void STEP_API(step_compute_loopslices)(STEP_ARG *begin, STEP_ARG *end, STEP_ARG *incr, STEP_ARG *nb_workchunk);
33 extern void STEP_COMPUTE_LOOPSLICES(STEP_ARG begin, STEP_ARG end, STEP_ARG incr, STEP_ARG nb_workchunk);
34 extern void STEP_API(step_get_loopbounds)(STEP_ARG *id_workchunk, STEP_ARG *begin, STEP_ARG *end);
35 extern void STEP_GET_LOOPBOUNDS(STEP_ARG id_workchunk, STEP_ARG *begin, STEP_ARG *end);
36 
37 extern void STEP_API(step_init_arrayregions)(void *array, STEP_ARG *type, STEP_ARG *dim, ...);
38 extern void STEP_INIT_ARRAYREGIONS(void *array, STEP_ARG type, STEP_ARG dim, ...);
39 extern void STEP_API(step_set_sendregions)(void *array, STEP_ARG *nb_workchunk, STEP_ARG *regions);
40 extern void STEP_SET_SENDREGIONS(void *array, STEP_ARG nb_workchunk, STEP_ARG *regions);
41 extern void STEP_API(step_set_interlaced_sendregions)(void *array, STEP_ARG *nb_workchunk, STEP_ARG *regions);
42 extern void STEP_SET_INTERLACED_SENDREGIONS(void *array, STEP_ARG nb_workchunk, STEP_ARG *regions);
43 extern void STEP_API(step_set_reduction_sendregions)(void *array, STEP_ARG *nb_workchunk, STEP_ARG *regions);
44 extern void STEP_SET_REDUCTION_SENDREGIONS(void *array, STEP_ARG nb_workchunk, STEP_ARG *regions);
45 extern void STEP_API(step_set_recvregions)(void *array, STEP_ARG *nb_workchunk, STEP_ARG *regions);
46 extern void STEP_SET_RECVREGIONS(void *array, STEP_ARG nb_workchunk, STEP_ARG *regions);
47 
48 extern void STEP_API(step_register_alltoall_partial)(void *userArray, STEP_ARG *algorithm, STEP_ARG *tag);
49 extern void STEP_REGISTER_ALLTOALL_PARTIAL(void *userArray, STEP_ARG algorithm, STEP_ARG tag);
50 extern void STEP_API(step_alltoall_full)(void *array, STEP_ARG *algorithm, STEP_ARG *tag);
51 extern void STEP_ALLTOALL_FULL(void *array, STEP_ARG algorithm, STEP_ARG tag);
53 extern void STEP_ALLTOALL_FULL_INTERLACED(void *array, STEP_ARG algorithm, STEP_ARG tag);
54 extern void STEP_API(step_alltoall_partial)(void *array, STEP_ARG *algorithm, STEP_ARG *tag);
55 extern void STEP_ALLTOALL_PARTIAL(void *array, STEP_ARG algorithm, STEP_ARG tag);
58 extern void STEP_API(step_alltoall)(STEP_ARG *algorithm, STEP_ARG *tag);
59 extern void STEP_ALLTOALL(STEP_ARG algorithm, STEP_ARG tag);
60 
61 /* Semble ne plus être utilisé lors de la génération du code par STEP */
62 //extern void STEP_API(step_mastertoallscalar)(void *scalar, STEP_ARG *algorithm, STEP_ARG *type);
63 //extern void STEP_API(step_mastertoallregion)(void *array, STEP_ARG *algorithm);
64 //extern void STEP_API(step_alltomasterregion)(void *array, STEP_ARG *algorithm);
65 
66 extern void STEP_API(step_flush)(void);
67 #define STEP_FLUSH STEP_API(step_flush)
68 extern void STEP_API(step_barrier)(void);
69 /* Conflit de nommage avec la marco specifiant le type de construction */
70 //#define STEP_BARRIER STEP_API(step_barrier)
71 
74 extern void STEP_API(step_reduction)(void *variable);
75 #define STEP_REDUCTION STEP_API(step_reduction)
76 
77 
78 extern void STEP_API(step_timer_init)(size_t *timer_);
79 extern void STEP_API(step_timer_event)(size_t *timer_);
80 extern void STEP_API(step_timer_dump)(size_t *timer_, char *filename, STEP_ARG *id_file, STEP_ARG filename_len);
81 extern void STEP_API(step_timer_reset)(size_t *timer_);
82 extern void STEP_API(step_timer_finalize)(size_t *timer_);
83 
84 #endif //__STEP_API_H__
struct _newgen_struct_type_ * type
char end
Definition: gtk_status.c:82
static entity rank
int tag
TAG.
Definition: newgen_types.h:92
struct _newgen_struct_variable_ * variable
Definition: ri.h:463
static entity array
void STEP_API() step_compute_loopslices(STEP_ARG *begin, STEP_ARG *end, STEP_ARG *incr, STEP_ARG *nb_workchunk)
void STEP_GET_LOOPBOUNDS(STEP_ARG id_workchunk, STEP_ARG *begin, STEP_ARG *end)
void STEP_ALLTOALL_PARTIAL_INTERLACED(void *array, STEP_ARG algorithm, STEP_ARG tag)
void STEP_INIT_ARRAYREGIONS(void *array, STEP_ARG type, STEP_ARG dim,...)
void STEP_API() step_init_fortran_order(void)
void STEP_API() step_alltoall_partial(void *array, STEP_ARG *algorithm, STEP_ARG *tag)
void STEP_API() step_alltoall_full(void *array, STEP_ARG *algorithm, STEP_ARG *tag)
void STEP_REGISTER_ALLTOALL_PARTIAL(void *userArray, STEP_ARG algorithm, STEP_ARG tag)
void STEP_API() step_flush(void)
Semble ne plus être utilisé lors de la génération du code par STEP.
void STEP_CONSTRUCT_BEGIN(const STEP_ARG construction)
void STEP_API() step_timer_event(size_t *timer_)
#define STEP_API(name)
Definition: step_api.h:13
void STEP_API() step_timer_reset(size_t *timer_)
#define STEP_ARG
Definition: step_api.h:10
void STEP_SET_SENDREGIONS(void *array, STEP_ARG nb_workchunk, STEP_ARG *regions)
void STEP_API() step_get_commsize(STEP_ARG *size)
void STEP_API() step_alltoall_partial_interlaced(void *array, STEP_ARG *algorithm, STEP_ARG *tag)
void STEP_ALLTOALL_FULL_INTERLACED(void *array, STEP_ARG algorithm, STEP_ARG tag)
void STEP_API() step_set_interlaced_sendregions(void *array, STEP_ARG *nb_workchunk, STEP_ARG *regions)
void STEP_API() step_construct_end(const STEP_ARG *construction)
void STEP_API() step_set_reduction_sendregions(void *array, STEP_ARG *nb_workchunk, STEP_ARG *regions)
void STEP_API() step_get_loopbounds(STEP_ARG *id_workchunk, STEP_ARG *begin, STEP_ARG *end)
void STEP_SET_REDUCTION_SENDREGIONS(void *array, STEP_ARG nb_workchunk, STEP_ARG *regions)
void STEP_API() step_set_recvregions(void *array, STEP_ARG *nb_workchunk, STEP_ARG *regions)
void STEP_SET_INTERLACED_SENDREGIONS(void *array, STEP_ARG nb_workchunk, STEP_ARG *regions)
void STEP_API() step_set_sendregions(void *array, STEP_ARG *nb_workchunk, STEP_ARG *regions)
void STEP_ALLTOALL(STEP_ARG algorithm, STEP_ARG tag)
void STEP_CONSTRUCT_END(const STEP_ARG construction)
void STEP_API() step_finalize(void)
void STEP_API() step_timer_dump(size_t *timer_, char *filename, STEP_ARG *id_file, STEP_ARG filename_len)
void STEP_ALLTOALL_FULL(void *array, STEP_ARG algorithm, STEP_ARG tag)
void STEP_API() step_timer_finalize(size_t *timer_)
void STEP_API() step_reduction(void *variable)
void STEP_API() step_register_alltoall_partial(void *userArray, STEP_ARG *algorithm, STEP_ARG *tag)
void STEP_API() step_timer_init(size_t *timer_)
void STEP_SET_RECVREGIONS(void *array, STEP_ARG nb_workchunk, STEP_ARG *regions)
void STEP_API() step_barrier(void)
void STEP_API() step_initreduction(void *variable, STEP_ARG *op, STEP_ARG *type)
Conflit de nommage avec la marco specifiant le type de construction.
void STEP_COMPUTE_LOOPSLICES(STEP_ARG begin, STEP_ARG end, STEP_ARG incr, STEP_ARG nb_workchunk)
void STEP_API() step_alltoall(STEP_ARG *algorithm, STEP_ARG *tag)
void STEP_API() step_init_c_order(void)
void STEP_API() step_init_arrayregions(void *array, STEP_ARG *type, STEP_ARG *dim,...)
void STEP_API() step_construct_begin(const STEP_ARG *construction)
void STEP_API() step_alltoall_full_interlaced(void *array, STEP_ARG *algorithm, STEP_ARG *tag)
void STEP_INITREDUCTION(void *variable, STEP_ARG op, STEP_ARG type)
void STEP_ALLTOALL_PARTIAL(void *array, STEP_ARG algorithm, STEP_ARG tag)
void STEP_API() step_get_rank(STEP_ARG *rank)
Some useful declarations and definitions.