OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
StaticIpplInfo.h
Go to the documentation of this file.
1 #ifndef STATIC_IPPL_INFO_H
2 #define STATIC_IPPL_INFO_H
3 
4 #include <mpi.h>
5 
6 class Communicate;
7 class IpplStats;
8 class Inform;
9 //DKS include
10 #ifdef IPPL_DKS
11 class DKSOPAL;
12 #endif
13 
15 public:
18 
19  // Inform *Info;
20  // Inform *Warn;
21  // Inform *Error;
22  // Inform *Debug;
23 
24  // the parallel communication object
26 
27  // the statistics collection object
29 
34 
35 #ifdef IPPL_DKS
36  DKSOPAL *DKS;
37 #endif
38 
39  // flag telling whether to use optimization for reducing
40  // communication by deferring guard cell fills.
42 
43  // flag telling whether to turn off compression in the Field classes.
45 
46  // flag telling whether to try to (pseudo-)randomly offset the
47  // LField blocks to try to avoid cache conflicts.
49 
50  // flag telling whether to try to do a TryCompress after each
51  // individual LField has been processed in an expression.
53 
54  // flag telling whether to try to use direct-io. This is only
55  // possible if the library is compiled with the IPPL_DIRECTIO option,
56  // and you are on a system that provides this capablity.
58 
59  MPI_Comm communicator_m;
60 
61  // counter indicating how many IpplInit objects have been created.
62  // When this gets back to zero, it's time to delete the Comm and quit.
64 
65  // flag indicating whether this class has been created with
66  // argc,argv specified ever. This should only be done once.
68 
69  // flag indicating whether we should print out stats info at the
70  // end of the program.
71  bool PrintStats;
72 
73  // flag indicating if we need to delete the comm object at the end.
75 
76  // flag indicating whether to use checksums on messages
78 
79  // flag indicating whether to retransmit messages when errors occur
80  bool Retransmit;
81 
82  // data with argc and argv
83  int MyArgc;
84  char **MyArgv;
85 
86  // data with my node number and total number of nodes. These are
87  // only changed when a new Communicate object is created.
88  int MyNode;
90 
91  // data with SMP information. These are changed after a new
92  // Communicate object is created.
93  int NumSMPs;
94  int *SMPIDList;
96 
97  // data about a limit to the number of nodes that should be used
98  // in FFT operations. If this is <= 0 or > number of nodes, it is ignored.
100 
101  // Maximum read chunk size
103 
104  // A boolean setting for whether we should attempt to use parallel
105  // I/O within a single SMP, for example by having multipple processors
106  // try to read from a single file (vs just having one node do it).
108 
109 #ifdef IPPL_COMM_ALARMS
110  // A timeout quantity, in seconds, to allow us to wait a certain number
111  // of seconds before we signal a timeout when we're trying to receive
112  // a message. By default, this will be zero; change it with the
113  // --msgtimeout <seconds> flag
114  unsigned int CommTimeoutSeconds;
115 #endif
116 
117 };
118 
119 #endif
Communicate * Comm
bool extraCompressChecks
bool deferGuardCellFills
MPI_Comm communicator_m
IpplStats * Stats
Definition: Inform.h:41