OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Tags.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /***************************************************************************
3  *
4  * The IPPL Framework
5  *
6  *
7  * Visit http://people.web.psi.ch/adelmann/ for more details
8  *
9  ***************************************************************************/
10 
11 #ifndef TAGS_H
12 #define TAGS_H
13 
14 /*
15  * Tags.h - list of special tags used by each major component in the ippl
16  * library. When a new general communication cycle (i.e. swapping
17  * boundaries) is added, a new item should be added to this list.
18  * BH, 6/19/95
19  *
20  * Updated for beta, JVWR, 7/27/96
21  */
22 
23 // special tag used to indicate the program should quit. The values are
24 // arbitrary, but non-zero.
25 #define IPPL_ABORT_TAG 5 // program should abort()
26 #define IPPL_EXIT_TAG 6 // program should exit()
27 #define IPPL_RETRANSMIT_TAG 7 // node should resend a message
28 #define IPPL_MSG_OK_TAG 8 // some messages were sent correctly
29 
30 
31 // tags for reduction
32 #define COMM_REDUCE_SEND_TAG 10000
33 #define COMM_REDUCE_RECV_TAG 11000
34 #define COMM_REDUCE_SCATTER_TAG 12000
35 #define COMM_REDUCE_CYCLE 1000
36 
37 
38 // tag for applying parallel periodic boundary condition.
39 
40 #define BC_PARALLEL_PERIODIC_TAG 15000
41 #define BC_TAG_CYCLE 1000
42 
43 // Field<T,Dim> tags
44 #define F_GUARD_CELLS_TAG 20000 // Field::fillGuardCells()
45 #define F_WRITE_TAG 21000 // Field::write()
46 #define F_READ_TAG 22000 // Field::read()
47 #define F_GEN_ASSIGN_TAG 23000 // assign(BareField,BareField)
48 #define F_REPARTITION_BCAST_TAG 24000 // broadcast in FieldLayout::repartion.
49 #define F_REDUCE_PERP_TAG 25000 // reduction in binary load balance.
50 #define F_GETSINGLE_TAG 26000 // IndexedBareField::getsingle()
51 #define F_REDUCE_TAG 27000 // Reduction in minloc/maxloc
52 #define F_LAYOUT_IO_TAG 28000 // Reduction in minloc/maxloc
53 #define F_TAG_CYCLE 1000
54 
55 // Tags for FieldView and FieldBlock
56 #define FV_2D_TAG 30000 // FieldView::update_2D_data()
57 #define FV_3D_TAG 31000 // FieldView::update_2D_data()
58 #define FV_TAG_CYCLE 1000
59 
60 #define FB_WRITE_TAG 32000 // FieldBlock::write()
61 #define FB_READ_TAG 33000 // FieldBlock::read()
62 #define FB_TAG_CYCLE 1000
63 
64 #define FP_GATHER_TAG 34000 // FieldPrint::print()
65 #define FP_TAG_CYCLE 1000
66 
67 // Tags for DiskField
68 #define DF_MAKE_HOST_MAP_TAG 35000
69 #define DF_FIND_RECV_NODES_TAG 36000
70 #define DF_QUERY_TAG 37000
71 #define DF_READ_TAG 38000
72 #define DF_OFFSET_TAG 39000
73 #define DF_READ_META_TAG 40000
74 #define DF_TAG_CYCLE 1000
75 
76 // Special tags used by Particle classes for communication.
77 #define P_WEIGHTED_LAYOUT_TAG 50000
78 #define P_WEIGHTED_RETURN_TAG 51000
79 #define P_WEIGHTED_TRANSFER_TAG 52000
80 #define P_SPATIAL_LAYOUT_TAG 53000
81 #define P_SPATIAL_RETURN_TAG 54000
82 #define P_SPATIAL_TRANSFER_TAG 55000
83 #define P_SPATIAL_GHOST_TAG 56000
84 #define P_SPATIAL_RANGE_TAG 57000
85 #define P_RESET_ID_TAG 58000
86 #define P_LAYOUT_CYCLE 1000
87 
88 // Tags for Ippl setup
89 #define IPPL_MAKE_HOST_MAP_TAG 60000
90 #define IPPL_TAG_CYCLE 1000
91 
92 // Tags for Conejo load balancer
93 #define F_CONEJO_BALANCER_TAG 70000
94 #define F_CB_BCAST_TAG 71000
95 #define F_CB_DOMAIN_TAG 72000
96 
97 // Tags for VnodeMultiBalancer
98 #define VNMB_PARTIAL_TAG 80000
99 #define VNMB_COMPLETE_TAG 81000
100 #define VNMB_TAG_CYCLE 1000
101 
102 // Tags for Ippl application codes
103 #define IPPL_APP_TAG0 90000
104 #define IPPL_APP_TAG1 91000
105 #define IPPL_APP_TAG2 92000
106 #define IPPL_APP_TAG3 93000
107 #define IPPL_APP_TAG4 94000
108 #define IPPL_APP_TAG5 95000
109 #define IPPL_APP_TAG6 96000
110 #define IPPL_APP_TAG7 97000
111 #define IPPL_APP_TAG8 98000
112 #define IPPL_APP_TAG9 99000
113 #define IPPL_APP_CYCLE 1000
114 
115 #endif // TAGS_H