OpenMPI  0.1.1
grpcomm_types.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
3  * University Research and Technology
4  * Corporation. All rights reserved.
5  * Copyright (c) 2004-2005 The University of Tennessee and The University
6  * of Tennessee Research Foundation. All rights
7  * reserved.
8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9  * University of Stuttgart. All rights reserved.
10  * Copyright (c) 2004-2005 The Regents of the University of California.
11  * All rights reserved.
12  * $COPYRIGHT$
13  *
14  * Additional copyrights may follow
15  *
16  * $HEADER$
17  */
18 /** @file:
19  *
20  * The OpenRTE Group Communications
21  *
22  * The OpenRTE Group Comm framework provides communication services that
23  * span entire jobs or collections of processes. It is not intended to be
24  * used for point-to-point communications (the RML does that), nor should
25  * it be viewed as a high-performance communication channel for large-scale
26  * data transfers.
27  */
28 
29 #ifndef MCA_GRPCOMM_TYPES_H
30 #define MCA_GRPCOMM_TYPES_H
31 
32 /*
33  * includes
34  */
35 
36 #include "orte_config.h"
37 
38 #ifdef HAVE_SYS_TYPES_H
39 #include <sys/types.h>
40 #endif
41 
42 BEGIN_C_DECLS
43 
44 /*
45  * Define routing modes
46  */
47 typedef uint8_t orte_grpcomm_mode_t;
48 #define ORTE_GRPCOMM_MODE_T OPAL_UINT8
49 
50 /* daemon N relays message to daemon N+1 */
51 #define ORTE_GRPCOMM_CHAIN (orte_grpcomm_mode_t) 1
52 /* binomial tree */
53 #define ORTE_GRPCOMM_BINOMIAL (orte_grpcomm_mode_t) 2
54 /* linear - HNP sends direct to all daemons */
55 #define ORTE_GRPCOMM_LINEAR (orte_grpcomm_mode_t) 3
56 
57 /*
58  * Define collective types
59  */
60 typedef uint8_t orte_grpcomm_coll_t;
61 #define ORTE_GRPCOMM_COLL_T OPAL_UINT8
62 
63 #define ORTE_GRPCOMM_COLL_NONE 0x00
64 #define ORTE_GRPCOMM_BARRIER 0x01
65 #define ORTE_GRPCOMM_ALLGATHER 0x02
66 
67 END_C_DECLS
68 
69 #endif