cloudy trunk
|
#include <cpu.h>
Public Member Functions | |
t_cpu_i () | |
bool | big_endian () const |
bool | little_endian () const |
sys_float | min_float () const |
double | min_double () const |
void | set_signal_handlers () |
void | setAssertAbort (bool val) |
bool | lgAssertAbort () const |
void | set_nCPU (long n) |
long | nCPU () const |
bool | lgMPI () const |
void | set_MPISingleRankMode (bool mode) |
bool | lgMPISingleRankMode () const |
void | set_nRANK (long n) |
long | nRANK () const |
bool | lgMaster () const |
bool | lgMPI_talk () const |
const char * | host_name () const |
void | printDataPath () const |
char | chDirSeparator () const |
bool | firstOpen () const |
const string & | chExitStatus (exit_type s) const |
Private Member Functions | |
void | enable_traps () const |
void | getPathList (const char *fname, vector< string > &PathList, access_scheme scheme) const |
Static Private Member Functions | |
static void | signal_handler (int sig) |
Private Attributes | |
union { | |
char c [4] | |
int32 i | |
} | endian |
sys_float | test_float |
double | test_double |
int32 | Float_SNaN_Value |
int32 | Double_SNaN_Value [2] |
bool | p_lgAssertAbort |
long | n_avail_CPU |
bool | p_lgMPI |
bool | p_lgMPISingleRankMode |
long | n_rank |
char | HostName [STDLEN] |
vector< string > | chSearchPath |
char | p_chDirSeparator |
int | nFileDone |
vector< string > | p_exit_status |
Friends | |
FILE * | open_data (const char *fname, const char *mode, access_scheme scheme=AS_DATA_ONLY) |
void | open_data (fstream &stream, const char *fname, ios_base::openmode mode, access_scheme scheme=AS_DATA_ONLY) |
void | set_NaN (sys_float &x) |
void | set_NaN (sys_float x[], long n) |
void | set_NaN (double &x) |
void | set_NaN (double x[], long n) |
t_cpu_i::t_cpu_i | ( | ) |
Definition at line 72 of file cpu.cpp.
References big_endian(), chSearchPath, DEBUG_ENTRY, Double_SNaN_Value, enable_traps(), endian, ES_BAD_ALLOC, ES_BAD_ASSERT, ES_BOTCHES, ES_BUS_ERROR, ES_CLOUDY_ABORT, ES_FAILURE, ES_FP_EXCEPTION, ES_ILLEGAL_INSTRUCTION, ES_OUT_OF_RANGE, ES_SEGFAULT, ES_SUCCESS, ES_TERMINATION_REQUEST, ES_TOP, ES_UNKNOWN_EXCEPTION, ES_UNKNOWN_SIGNAL, ES_USER_INTERRUPT, ES_WARNINGS, Float_SNaN_Value, HostName, i, ioPrnErr, ioQQQ, ioStdin, lgPrnErr, little_endian(), n_avail_CPU, n_rank, nFileDone, p_chDirSeparator, p_exit_status, p_lgAssertAbort, p_lgMPI, p_lgMPISingleRankMode, set_signal_handlers(), Split(), SPM_RELAX, STDLEN, test_double, and test_float.
|
inline |
|
inline |
Definition at line 331 of file cpu.h.
References p_chDirSeparator.
|
inline |
Definition at line 333 of file cpu.h.
References p_exit_status.
|
private |
|
inline |
|
private |
Definition at line 532 of file cpu.cpp.
References AS_DATA_LOCAL, AS_DATA_LOCAL_TRY, AS_DATA_ONLY, AS_DATA_ONLY_TRY, AS_DATA_OPTIONAL, AS_LOCAL_DATA, AS_LOCAL_DATA_TRY, AS_LOCAL_ONLY, AS_LOCAL_ONLY_TRY, AS_SILENT_TRY, cpu, DEBUG_ENTRY, i, and TotalInsanity().
|
inline |
|
inline |
Definition at line 318 of file cpu.h.
References p_lgAssertAbort.
|
inline |
|
inline |
Definition at line 328 of file cpu.h.
References lgMaster(), and lgMPISingleRankMode().
|
inline |
|
inline |
|
inline |
Definition at line 291 of file cpu.h.
References test_double.
|
inline |
Definition at line 290 of file cpu.h.
References test_float.
|
inline |
Definition at line 321 of file cpu.h.
References n_avail_CPU.
void t_cpu_i::printDataPath | ( | ) | const |
Definition at line 524 of file cpu.cpp.
References chSearchPath, i, and ioQQQ.
|
inline |
Definition at line 323 of file cpu.h.
References p_lgMPISingleRankMode.
|
inline |
Definition at line 320 of file cpu.h.
References n_avail_CPU.
void t_cpu_i::set_signal_handlers | ( | ) |
Definition at line 477 of file cpu.cpp.
References DEBUG_ENTRY, and signal_handler().
Referenced by t_cpu_i().
|
inline |
Definition at line 300 of file cpu.h.
References p_lgAssertAbort, and signal_handler().
|
staticprivate |
Definition at line 512 of file cpu.cpp.
References cpu, and signal_handler().
Referenced by set_signal_handlers(), setAssertAbort(), and signal_handler().
|
friend |
Definition at line 625 of file cpu.cpp.
References AbortErrorMessage(), AS_DATA_LOCAL, AS_DATA_ONLY, AS_DATA_OPTIONAL, AS_LOCAL_DATA, AS_LOCAL_ONLY, AS_SILENT_TRY, cpu, DEBUG_ENTRY, ioQQQ, lgAbort, and trace.
|
friend |
Definition at line 652 of file cpu.cpp.
References AbortErrorMessage(), AS_DATA_LOCAL, AS_DATA_ONLY, AS_DATA_OPTIONAL, AS_LOCAL_DATA, AS_LOCAL_ONLY, AS_SILENT_TRY, ASSERT, cpu, DEBUG_ENTRY, ioQQQ, lgAbort, TorF(), and trace.
|
friend |
|
friend |
define routines for setting single and double precision signaling NaN The bit pattern for an SNaN is implementation defined, but this should work on most modern CPU's. The system definition is preferred, so in C++ this should be replaced by numeric_limits<TYPE>::signaling_NaN()
set_NaN - set variable or array to SNaN
Definition at line 682 of file cpu.cpp.
References cpu.
|
friend |
|
private |
the default search path to the data files
Definition at line 273 of file cpu.h.
Referenced by printDataPath(), and t_cpu_i().
|
private |
union { ... } t_cpu_i::endian |
alias an int32 to 4 chars to test if we are on a big-endian or little-endian CPU the array cpu.endian.c[] is initialized in cdInit()
Referenced by big_endian(), little_endian(), and t_cpu_i().
|
private |
|
private |
the name of the computer, not detected on all systems
Definition at line 271 of file cpu.h.
Referenced by host_name(), and t_cpu_i().
int32 t_cpu_i::i |
Definition at line 238 of file cpu.h.
Referenced by getPathList(), printDataPath(), set_NaN, set_NaN, and t_cpu_i().
|
private |
the number of available CPUs on the system, not detected on all systems
Definition at line 260 of file cpu.h.
Referenced by nCPU(), set_nCPU(), and t_cpu_i().
|
private |
the rank number in an MPI run, -1 otherwise
Definition at line 269 of file cpu.h.
Referenced by lgMaster(), nRANK(), set_nRANK(), and t_cpu_i().
|
private |
Definition at line 276 of file cpu.h.
Referenced by firstOpen(), and t_cpu_i().
|
private |
the directory separator character for this OS
Definition at line 275 of file cpu.h.
Referenced by chDirSeparator(), and t_cpu_i().
|
private |
Definition at line 281 of file cpu.h.
Referenced by chExitStatus(), and t_cpu_i().
|
private |
should a failed assert raise SIGABRT so that we can catch it in a debugger?
Definition at line 257 of file cpu.h.
Referenced by lgAssertAbort(), setAssertAbort(), and t_cpu_i().
|
private |
|
private |
flag indicating whether each rank runs its own model true means that each rank runs a different sim (e.g. in a grid) false means that all ranks cooperate on the same sim this flag is moot in a non-MPI run
Definition at line 267 of file cpu.h.
Referenced by lgMPISingleRankMode(), set_MPISingleRankMode(), and t_cpu_i().
|
private |
Definition at line 242 of file cpu.h.
Referenced by min_double(), and t_cpu_i().
|
private |
Definition at line 241 of file cpu.h.
Referenced by min_float(), and t_cpu_i().