Molssi Driver Interface Library: /repo/build/MDI_Library/MDI_Library/mdi_mpi.h Source File

|  | Molssi Driver Interface Library

mdi_mpi.h
Go to the documentation of this file.
1
6 #ifndef MDI_MPI_IMPL
7 #define MDI_MPI_IMPL
8
9 #include <mpi.h>
10 #include "mdi.h"
11
12 typedef struct mpi_data_struct {
14 MPI_Comm mpi_comm;
16 int mpi_rank;
18 int use_mpi4py;
19 } mpi_method_data;
20
21 int set_world_size(int world_size_in);
22 int set_world_rank(int world_rank_in);
23
24 int enable_mpi_support(int code_id);
25 int mpi_on_selection();
26 int mpi_on_accept_communicator();
27 int mpi_on_send_command(const char* command, MDI_Comm comm, int* skip_flag);
28 int mpi_after_send_command(const char* command, MDI_Comm comm);
29 int mpi_on_recv_command(MDI_Comm comm);
30
31 int mpi_identify_codes(const char* code_name, int use_mpi4py, MPI_Comm world_comm);
32 int mpi_update_world_comm(void* world_comm);
33 int mpi_send_msg(const void* buf, int count, MDI_Datatype datatype, MDI_Comm comm);
34 int mpi_recv_msg(void* buf, int count, MDI_Datatype datatype, MDI_Comm comm);
35 int mpi_send(const void* buf, int count, MDI_Datatype datatype, MDI_Comm comm, int msg_flag);
36 int mpi_recv(void* buf, int count, MDI_Datatype datatype, MDI_Comm comm, int msg_flag);
37
38 int communicator_delete_mpi(void* comm);
39
40 #endif
set_world_size
int set_world_size(int world_size_in)
Set the size of MPI_COMM_WORLD.
Definition: mdi_mpi.c:21
mpi_on_send_command
int mpi_on_send_command(const char *command, MDI_Comm comm, int *skip_flag)
Callback when the MPI method must send a command.
Definition: mdi_mpi.c:213
mpi_send
int mpi_send(const void *buf, int count, MDI_Datatype datatype, MDI_Comm comm, int msg_flag)
Send data through an MDI connection, using MPI.
Definition: mdi_mpi.c:552
mpi_data_struct
Definition: mdi_mpi.h:12
mpi_data_struct::mpi_rank
int mpi_rank
The rank of this process within the inter-code MPI communicator.
Definition: mdi_mpi.h:16
communicator_delete_mpi
int communicator_delete_mpi(void *comm)
Function for MPI-specific deletion operations for communicator deletion.
Definition: mdi_mpi.c:650
mpi_on_selection
int mpi_on_selection()
Callback when the end-user selects MPI as the method.
Definition: mdi_mpi.c:82
mpi_data_struct::mpi_comm
MPI_Comm mpi_comm
Inter-code MPI communicator.
Definition: mdi_mpi.h:14
mpi_update_world_comm
int mpi_update_world_comm(void *world_comm)
Update a pointer to MPI_COMM_WORLD to instead point to the intra-code MPI communicator.
Definition: mdi_mpi.c:520
mpi_after_send_command
int mpi_after_send_command(const char *command, MDI_Comm comm)
Callback after the MPI method has received a command.
Definition: mdi_mpi.c:220
mpi_on_accept_communicator
int mpi_on_accept_communicator()
Callback when the MPI method must accept a communicator.
Definition: mdi_mpi.c:183
enable_mpi_support
int enable_mpi_support(int code_id)
Enable support for the TCP method.
Definition: mdi_mpi.c:58
set_world_rank
int set_world_rank(int world_rank_in)
Set the rank of this process in MPI_COMM_WORLD.
Definition: mdi_mpi.c:41
mpi_recv
int mpi_recv(void *buf, int count, MDI_Datatype datatype, MDI_Comm comm, int msg_flag)
Receive data through an MDI connection, using MPI.
Definition: mdi_mpi.c:608
mpi_identify_codes
int mpi_identify_codes(const char *code_name, int use_mpi4py, MPI_Comm world_comm)
Identify groups of processes belonging to the same codes.
Definition: mdi_mpi.c:268
mpi_on_recv_command
int mpi_on_recv_command(MDI_Comm comm)
Callback when the MPI method must receive a command.
Definition: mdi_mpi.c:248
mpi_data_struct::use_mpi4py
int use_mpi4py
Flag whether to use mpi4py instead of the linked MPI library.
Definition: mdi_mpi.h:18