17 #ifndef __DRIVER_MPI_SOURCE_H__
18 #define __DRIVER_MPI_SOURCE_H__
23 #include <starpu_mpi_ms.h>
26 #ifdef STARPU_USE_MPI_MASTER_SLAVE
32 extern struct _starpu_mp_node *_starpu_mpi_ms_nodes[STARPU_MAXMPIDEVS];
33 struct _starpu_mp_node *_starpu_mpi_src_get_mp_node_from_memory_node(
int memory_node);
34 struct _starpu_mp_node *_starpu_mpi_ms_src_get_actual_thread_mp_node();
36 unsigned _starpu_mpi_src_get_device_count();
37 void *_starpu_mpi_src_worker(
void *arg);
39 void _starpu_mpi_source_init(
struct _starpu_mp_node *node);
40 void _starpu_mpi_source_deinit(
struct _starpu_mp_node *node);
42 int _starpu_mpi_src_allocate_memory(
void ** addr,
size_t size,
unsigned memory_node);
43 void _starpu_mpi_source_free_memory(
void *addr,
unsigned memory_node);
45 int _starpu_mpi_copy_mpi_to_ram_sync(
void *src,
unsigned src_node,
void *dst,
unsigned dst_node STARPU_ATTRIBUTE_UNUSED,
size_t size);
46 int _starpu_mpi_copy_ram_to_mpi_sync(
void *src,
unsigned src_node STARPU_ATTRIBUTE_UNUSED,
void *dst,
unsigned dst_node,
size_t size);
47 int _starpu_mpi_copy_sink_to_sink_sync(
void *src,
unsigned src_node,
void *dst,
unsigned dst_node,
size_t size);
49 int _starpu_mpi_copy_mpi_to_ram_async(
void *src,
unsigned src_node,
void *dst,
unsigned dst_node STARPU_ATTRIBUTE_UNUSED,
size_t size,
void * event);
50 int _starpu_mpi_copy_ram_to_mpi_async(
void *src,
unsigned src_node STARPU_ATTRIBUTE_UNUSED,
void *dst,
unsigned dst_node,
size_t size,
void * event);
51 int _starpu_mpi_copy_sink_to_sink_async(
void *src,
unsigned src_node,
void *dst,
unsigned dst_node,
size_t size,
void * event);
53 int _starpu_mpi_copy_interface_from_mpi_to_cpu(starpu_data_handle_t handle,
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node,
struct _starpu_data_request *req);
54 int _starpu_mpi_copy_interface_from_mpi_to_mpi(starpu_data_handle_t handle,
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node,
struct _starpu_data_request *req);
55 int _starpu_mpi_copy_interface_from_cpu_to_mpi(starpu_data_handle_t handle,
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node,
struct _starpu_data_request *req);
57 int _starpu_mpi_copy_data_from_mpi_to_cpu(uintptr_t src,
size_t src_offset,
unsigned src_node, uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
size_t size,
struct _starpu_async_channel *async_channel);
58 int _starpu_mpi_copy_data_from_mpi_to_mpi(uintptr_t src,
size_t src_offset,
unsigned src_node, uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
size_t size,
struct _starpu_async_channel *async_channel);
59 int _starpu_mpi_copy_data_from_cpu_to_mpi(uintptr_t src,
size_t src_offset,
unsigned src_node, uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
size_t size,
struct _starpu_async_channel *async_channel);
61 int _starpu_mpi_is_direct_access_supported(
unsigned node,
unsigned handling_node);
62 uintptr_t _starpu_mpi_malloc_on_node(
unsigned dst_node,
size_t size,
int flags);
63 void _starpu_mpi_free_on_node(
unsigned dst_node, uintptr_t addr,
size_t size,
int flags);
65 starpu_mpi_ms_kernel_t _starpu_mpi_ms_src_get_kernel_from_codelet(
struct starpu_codelet *cl,
unsigned nimpl);
66 void(* _starpu_mpi_ms_src_get_kernel_from_job(
const struct _starpu_mp_node *node STARPU_ATTRIBUTE_UNUSED,
struct _starpu_job *j))(void);
Definition: copy_driver.h:127
Definition: node_ops.h:48