source: XMLIO_V2/dev/common/src/xmlio/fortran/impi_interface.hpp @ 219

Last change on this file since 219 was 219, checked in by hozdoba, 10 years ago

Préparation nouvelle arborescence

File size: 2.9 KB
Line 
1#ifndef __MPI_INTERFACE__
2#define __MPI_INTERFACE
3
4#ifdef __cplusplus
5extern"C"
6{
7#endif //__cplusplus
8
9/// Groupe ///
10extern int mpi_comm_world;
11extern int mpi_success;
12extern int mpi_char;
13extern int mpi_status_size;
14extern int mpi_any_tag;
15extern int mpi_request_null;
16
17
18/// Initialisation / Finalisation ///
19void mpi_init(int * err);
20void mpi_finalize(int * err);
21
22/// Quitter brutalement MPI ///
23void mpi_abort(int * comm, int * errcode, int * err);
24
25/// Savoir si un processus à fait un MPI_INIT ///
26void mpi_initialized(bool * flag, int * err);
27
28/// Récupérer la chaine de caractÚres associée au code d'erreur err(non fonctionnelle) ///
29void mpi_error_string(int * errcode, char chaine[], int * taille_chaine, int * err);
30
31/// Envoyer un message à un processus ///
32void mpi_send(char buf[], int * count, int * datatype, int * dest, int * tag, int * comm, int * err);
33
34/// Recevoir un message d'un processus ///
35void mpi_recv(char buf[], int * count, int * datatype, int * source,  int * tag, int * comm, int status[], int * err);
36
37/// Envoyer et recevoir un message ///
38void mpi_sendrecv(char sendbuf[], int * sendcount, int * sendtype, int * dest, int * sendtag, int recvbuf[], int * recvcount,
39                  int * recvtype, char source[], int * recvtag, int * comm, int status[], int * err) ;
40
41/// Compter le nombre d'éléments reçus ///
42void mpi_get_count(int status[], int * datatype, int * count, int * err);
43
44/// Tester l'arrivée d'un message ///
45void mpi_iprobe(int * source, int * tag, int * comm, bool * flag, int status[], int * err);
46
47/// Nombre de processus dans un intracommunicateur ///
48void mpi_comm_size(int * comm, int * nbre, int * err);
49
50/// Rang d'un processus dans un intracommunicateur ///
51void mpi_comm_rank(int * comm, int * rang, int * err);
52
53/// Partage d'un communicateur ///
54void mpi_comm_split(int * comm, int * couleur, int * cle, int * newcomm, int * err);
55
56/// Commencer à envoyer un message ///
57void mpi_issend(char * buf, int * count, int * datatype, int * dest,
58                int * tag, int * comm, int * request, int * err);
59
60/// Commencer à recevoir un message ///
61void mpi_irecv(char buf[], int * count, int * datatype, int * source,
62                            int * tag, int * comm, int * request, int * err);
63
64/// Compléter une opération non bloquante ///
65void mpi_wait(int * request, int status[], int * err);
66
67/// Tester une opération non bloquante ///
68void mpi_test(int * request, bool * flag, int status[], int * err);
69
70/// Création d'un communicateur à partir d'un groupe ///
71void mpi_comm_create(int * comm, int * group, int * newcomm, int * err);
72
73/// Obtention d'un groupe à partir d'un communicateur ///
74void mpi_comm_group(int * comm, int * group, int * err);
75
76/// Création de sous-groupe ///
77void mpi_group_incl(int * group, int * n, const int rank[], int * newgroup, int * err);
78
79/// BarriÚre ///
80void mpi_barrier(int * comm, int * err);
81
82#ifdef __cplusplus
83}
84#endif //__cplusplus
85
86#endif //__MPI_INTERFACE__
Note: See TracBrowser for help on using the repository browser.