source: XMLIO_V2/dev/dev_rv/src/fortran/impi_interface.hpp @ 141

Last change on this file since 141 was 141, checked in by hozdoba, 13 years ago

Mise à jour depuis un autre dépôt

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