StarPU Handbook

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
starpu_data_filters.h
Go to the documentation of this file.
1 /* StarPU --- Runtime system for heterogeneous multicore architectures.
2 *
3 * Copyright (C) 2010-2012 Université de Bordeaux 1
4 * Copyright (C) 2010 Mehdi Juhoor <mjuhoor@gmail.com>
5 * Copyright (C) 2010, 2011, 2012, 2013 Centre National de la Recherche Scientifique
6 *
7 * StarPU is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation; either version 2.1 of the License, or (at
10 * your option) any later version.
11 *
12 * StarPU is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 *
16 * See the GNU Lesser General Public License in COPYING.LGPL for more details.
17 */
18
19 #ifndef __STARPU_DATA_FILTERS_H__
20 #define __STARPU_DATA_FILTERS_H__
21
22 #include <starpu.h>
23 #include <stdarg.h>
24
25 #ifdef __cplusplus
26 extern "C"
27 {
28 #endif
29
30 struct starpu_data_interface_ops;
31
32 struct starpu_data_filter
33 {
34 void (*filter_func)(void *father_interface, void *child_interface, struct starpu_data_filter *, unsigned id, unsigned nparts);
35 unsigned nchildren;
36 unsigned (*get_nchildren)(struct starpu_data_filter *, starpu_data_handle_t initial_handle);
37 struct starpu_data_interface_ops *(*get_child_ops)(struct starpu_data_filter *, unsigned id);
38 unsigned filter_arg;
39 void *filter_arg_ptr;
40 };
41
42 void starpu_data_partition(starpu_data_handle_t initial_handle, struct starpu_data_filter *f);
43 void starpu_data_unpartition(starpu_data_handle_t root_data, unsigned gathering_node);
44
45 int starpu_data_get_nb_children(starpu_data_handle_t handle);
46 starpu_data_handle_t starpu_data_get_child(starpu_data_handle_t handle, unsigned i);
47
48 starpu_data_handle_t starpu_data_get_sub_data(starpu_data_handle_t root_data, unsigned depth, ... );
49 starpu_data_handle_t starpu_data_vget_sub_data(starpu_data_handle_t root_data, unsigned depth, va_list pa);
50
51 void starpu_data_map_filters(starpu_data_handle_t root_data, unsigned nfilters, ...);
52 void starpu_data_vmap_filters(starpu_data_handle_t root_data, unsigned nfilters, va_list pa);
53
54 void starpu_bcsr_filter_canonical_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
55 void starpu_csr_filter_vertical_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
56
57 void starpu_matrix_filter_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
58 void starpu_matrix_filter_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
59 void starpu_matrix_filter_vertical_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
60 void starpu_matrix_filter_vertical_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
61
62 void starpu_vector_filter_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
63 void starpu_vector_filter_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
64 void starpu_vector_filter_list(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
65 void starpu_vector_filter_divide_in_2(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
66
67 void starpu_block_filter_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
68 void starpu_block_filter_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
69 void starpu_block_filter_vertical_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
70 void starpu_block_filter_vertical_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
71 void starpu_block_filter_depth_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
72 void starpu_block_filter_depth_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts);
73
74 #ifdef __cplusplus
75 }
76 #endif
77
78 #endif
starpu_data_get_child
starpu_data_handle_t starpu_data_get_child(starpu_data_handle_t handle, unsigned i)
starpu_matrix_filter_vertical_block
void starpu_matrix_filter_vertical_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_matrix_filter_block_shadow
void starpu_matrix_filter_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_data_unpartition
void starpu_data_unpartition(starpu_data_handle_t root_data, unsigned gathering_node)
starpu_vector_filter_list
void starpu_vector_filter_list(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_data_vmap_filters
void starpu_data_vmap_filters(starpu_data_handle_t root_data, unsigned nfilters, va_list pa)
starpu_block_filter_depth_block_shadow
void starpu_block_filter_depth_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_data_filter
Definition: starpu_data_filters.h:32
starpu_block_filter_vertical_block
void starpu_block_filter_vertical_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_data_filter::get_nchildren
unsigned(* get_nchildren)(struct starpu_data_filter *, starpu_data_handle_t initial_handle)
Definition: starpu_data_filters.h:36
starpu_data_filter::filter_arg
unsigned filter_arg
Definition: starpu_data_filters.h:38
starpu_data_get_nb_children
int starpu_data_get_nb_children(starpu_data_handle_t handle)
starpu_data_map_filters
void starpu_data_map_filters(starpu_data_handle_t root_data, unsigned nfilters,...)
starpu_block_filter_block
void starpu_block_filter_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_data_filter::nchildren
unsigned nchildren
Definition: starpu_data_filters.h:35
starpu_bcsr_filter_canonical_block
void starpu_bcsr_filter_canonical_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_block_filter_block_shadow
void starpu_block_filter_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_data_filter::filter_func
void(* filter_func)(void *father_interface, void *child_interface, struct starpu_data_filter *, unsigned id, unsigned nparts)
Definition: starpu_data_filters.h:34
starpu_vector_filter_divide_in_2
void starpu_vector_filter_divide_in_2(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_csr_filter_vertical_block
void starpu_csr_filter_vertical_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_vector_filter_block_shadow
void starpu_vector_filter_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_block_filter_vertical_block_shadow
void starpu_block_filter_vertical_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_vector_filter_block
void starpu_vector_filter_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_data_filter::filter_arg_ptr
void * filter_arg_ptr
Definition: starpu_data_filters.h:39
starpu_data_interface_ops
Definition: starpu_data_interfaces.h:90
starpu_data_vget_sub_data
starpu_data_handle_t starpu_data_vget_sub_data(starpu_data_handle_t root_data, unsigned depth, va_list pa)
starpu_data_handle_t
struct _starpu_data_state * starpu_data_handle_t
Definition: starpu_data.h:29
starpu_matrix_filter_vertical_block_shadow
void starpu_matrix_filter_vertical_block_shadow(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_block_filter_depth_block
void starpu_block_filter_depth_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu_matrix_filter_block
void starpu_matrix_filter_block(void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nparts)
starpu.h
starpu_data_partition
void starpu_data_partition(starpu_data_handle_t initial_handle, struct starpu_data_filter *f)
starpu_data_get_sub_data
starpu_data_handle_t starpu_data_get_sub_data(starpu_data_handle_t root_data, unsigned depth,...)