FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
hecmw_comm.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2019 FrontISTR Commons
3  * This software is released under the MIT License, see LICENSE.txt
4  *****************************************************************************/
5 
6 #ifndef HECMW_COMM_INCLUDED
7 #define HECMW_COMM_INCLUDED
8 
9 #include "hecmw_config.h"
10 
11 extern int HECMW_Comm_rank(HECMW_Comm comm, int *rank);
12 extern int HECMW_Comm_size(HECMW_Comm comm, int *size);
13 extern int HECMW_Comm_dup(HECMW_Comm comm, HECMW_Comm *new_comm);
14 extern int HECMW_Comm_free(HECMW_Comm *comm);
15 
16 extern int HECMW_Barrier(HECMW_Comm comm);
17 extern int HECMW_Wait(HECMW_Request *request, HECMW_Status *statuse);
18 extern int HECMW_Waitall(int count, HECMW_Request *array_of_requests,
19  HECMW_Status *array_of_statuses);
20 extern int HECMW_Bcast(void *buffer, int count, HECMW_Datatype datatype,
21  int root, HECMW_Comm comm);
22 extern int HECMW_Send(void *buffer, int count, HECMW_Datatype datatype,
23  int dest, int tag, HECMW_Comm comm);
24 extern int HECMW_Recv(void *buffer, int count, HECMW_Datatype datatype,
25  int source, int tag, HECMW_Comm comm,
26  HECMW_Status *status);
27 extern int HECMW_Isend(void *buffer, int count, HECMW_Datatype datatype,
28  int dest, int tag, HECMW_Comm comm,
29  HECMW_Request *request);
30 extern int HECMW_Irecv(void *buffer, int count, HECMW_Datatype datatype,
31  int source, int tag, HECMW_Comm comm,
32  HECMW_Request *request);
33 extern int HECMW_Allreduce(void *sendbuf, void *recvbuf, int count,
34  HECMW_Datatype datatype, HECMW_Op op,
35  HECMW_Comm comm);
36 extern int HECMW_Allgather(void *sendbuf, int sendcount,
37  HECMW_Datatype sendtype, void *recvbuf,
38  int recvcount, HECMW_Datatype recvtype,
39  HECMW_Comm comm);
40 extern int HECMW_Group_incl(HECMW_Group group, int n, int *ranks,
41  HECMW_Group *newgroup);
42 extern int HECMW_Group_excl(HECMW_Group group, int n, int *ranks,
43  HECMW_Group *newgroup);
44 extern int HECMW_Comm_create(HECMW_Comm comm, HECMW_Group group,
45  HECMW_Comm *comm_out);
46 extern int HECMW_Group_rank(HECMW_Group group, int *rank);
47 extern int HECMW_Group_size(HECMW_Group group, int *size);
48 extern int HECMW_Comm_group(HECMW_Comm comm, HECMW_Group *group);
49 
50 extern int HECMW_comm_init(int *argc, char ***argv);
51 extern int HECMW_comm_is_initialized(void);
52 extern HECMW_Comm HECMW_comm_get_comm(void);
53 extern int HECMW_comm_get_size(void);
54 extern int HECMW_comm_get_rank(void);
58 extern int HECMW_comm_is_initialized(void);
59 
60 extern void hecmw_comm_init_if(HECMW_Fint *comm, int *size, int *rank,
61  HECMW_Fint *group);
62 #endif
HECMW_comm_init
int HECMW_comm_init(int *argc, char ***argv)
Definition: hecmw_comm.c:666
HECMW_Fint
MPI_Fint HECMW_Fint
Definition: hecmw_config.h:42
HECMW_Group_rank
int HECMW_Group_rank(HECMW_Group group, int *rank)
Definition: hecmw_comm.c:541
HECMW_Datatype
MPI_Datatype HECMW_Datatype
Definition: hecmw_config.h:38
HECMW_Op
MPI_Op HECMW_Op
Definition: hecmw_config.h:40
hecmw_comm_init_if
void hecmw_comm_init_if(HECMW_Fint *comm, int *size, int *rank, HECMW_Fint *group)
Definition: hecmw_comm.c:741
HECMW_Comm_group
int HECMW_Comm_group(HECMW_Comm comm, HECMW_Group *group)
Definition: hecmw_comm.c:579
HECMW_Isend
int HECMW_Isend(void *buffer, int count, HECMW_Datatype datatype, int dest, int tag, HECMW_Comm comm, HECMW_Request *request)
Definition: hecmw_comm.c:278
HECMW_Bcast
int HECMW_Bcast(void *buffer, int count, HECMW_Datatype datatype, int root, HECMW_Comm comm)
Definition: hecmw_comm.c:151
HECMW_Comm_size
int HECMW_Comm_size(HECMW_Comm comm, int *size)
Definition: hecmw_comm.c:37
HECMW_Allreduce
int HECMW_Allreduce(void *sendbuf, void *recvbuf, int count, HECMW_Datatype datatype, HECMW_Op op, HECMW_Comm comm)
Definition: hecmw_comm.c:364
HECMW_Group_excl
int HECMW_Group_excl(HECMW_Group group, int n, int *ranks, HECMW_Group *newgroup)
Definition: hecmw_comm.c:503
HECMW_Comm_c2f
HECMW_Fint HECMW_Comm_c2f(HECMW_Comm comm)
Definition: hecmw_comm.c:715
HECMW_Comm_rank
int HECMW_Comm_rank(HECMW_Comm comm, int *rank)
Definition: hecmw_comm.c:18
HECMW_comm_get_comm
HECMW_Comm HECMW_comm_get_comm(void)
Definition: hecmw_comm.c:699
HECMW_comm_get_rank
int HECMW_comm_get_rank(void)
Definition: hecmw_comm.c:707
HECMW_Status
MPI_Status HECMW_Status
Definition: hecmw_config.h:36
HECMW_Group_size
int HECMW_Group_size(HECMW_Group group, int *size)
Definition: hecmw_comm.c:560
HECMW_Irecv
int HECMW_Irecv(void *buffer, int count, HECMW_Datatype datatype, int source, int tag, HECMW_Comm comm, HECMW_Request *request)
Definition: hecmw_comm.c:321
HECMW_Recv
int HECMW_Recv(void *buffer, int count, HECMW_Datatype datatype, int source, int tag, HECMW_Comm comm, HECMW_Status *status)
Definition: hecmw_comm.c:235
HECMW_Comm_dup
int HECMW_Comm_dup(HECMW_Comm comm, HECMW_Comm *new_comm)
Definition: hecmw_comm.c:56
hecmw_config.h
HECMW_Comm_create
int HECMW_Comm_create(HECMW_Comm comm, HECMW_Group group, HECMW_Comm *comm_out)
Definition: hecmw_comm.c:522
HECMW_Barrier
int HECMW_Barrier(HECMW_Comm comm)
Definition: hecmw_comm.c:95
HECMW_Comm_f2c
HECMW_Comm HECMW_Comm_f2c(HECMW_Fint comm)
Definition: hecmw_comm.c:723
HECMW_comm_get_group
HECMW_Group HECMW_comm_get_group(void)
Definition: hecmw_comm.c:711
HECMW_Request
MPI_Request HECMW_Request
Definition: hecmw_config.h:34
HECMW_Allgather
int HECMW_Allgather(void *sendbuf, int sendcount, HECMW_Datatype sendtype, void *recvbuf, int recvcount, HECMW_Datatype recvtype, HECMW_Comm comm)
Definition: hecmw_comm.c:432
HECMW_Send
int HECMW_Send(void *buffer, int count, HECMW_Datatype datatype, int dest, int tag, HECMW_Comm comm)
Definition: hecmw_comm.c:193
HECMW_comm_get_size
int HECMW_comm_get_size(void)
Definition: hecmw_comm.c:703
HECMW_Comm
MPI_Comm HECMW_Comm
Definition: hecmw_config.h:30
HECMW_Group_incl
int HECMW_Group_incl(HECMW_Group group, int n, int *ranks, HECMW_Group *newgroup)
Definition: hecmw_comm.c:484
HECMW_Group
MPI_Group HECMW_Group
Definition: hecmw_config.h:32
HECMW_Wait
int HECMW_Wait(HECMW_Request *request, HECMW_Status *statuse)
Definition: hecmw_comm.c:113
HECMW_Waitall
int HECMW_Waitall(int count, HECMW_Request *array_of_requests, HECMW_Status *array_of_statuses)
Definition: hecmw_comm.c:132
HECMW_Comm_free
int HECMW_Comm_free(HECMW_Comm *comm)
Definition: hecmw_comm.c:75
HECMW_comm_is_initialized
int HECMW_comm_is_initialized(void)
Definition: hecmw_comm.c:697