/[escript]/trunk/escript/src/Utils.h
ViewVC logotype

Contents of /trunk/escript/src/Utils.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2881 - (show annotations)
Thu Jan 28 02:03:15 2010 UTC (9 years, 8 months ago) by jfenwick
File MIME type: text/plain
File size: 2600 byte(s)
Don't panic.
Updating copyright stamps

1
2 /*******************************************************
3 *
4 * Copyright (c) 2003-2010 by University of Queensland
5 * Earth Systems Science Computational Center (ESSCC)
6 * http://www.uq.edu.au/esscc
7 *
8 * Primary Business: Queensland, Australia
9 * Licensed under the Open Software License version 3.0
10 * http://www.opensource.org/licenses/osl-3.0.php
11 *
12 *******************************************************/
13
14
15 #if !defined escript_Utils_H
16 #define escript_Utils_H
17 #include "system_dep.h"
18
19 namespace escript {
20
21 /**
22 \brief
23 some functions
24
25 */
26
27 /**
28 \brief
29 return the SVN version number used to build this version.
30 \warning Only gives accurate answers for clean checkouts
31 */
32 ESCRIPT_DLL_API int getSvnVersion();
33
34 /**
35 \brief
36 print a message about how many MPI CPUs and OpenMP threads we're using
37 */
38 ESCRIPT_DLL_API void printParallelThreadCnt();
39
40 /**
41 \brief
42 set the number of threads
43 \warning Use of this method is strongly discouraged. It may be deprecated in future.
44 */
45 ESCRIPT_DLL_API void setNumberOfThreads(const int num_threads);
46
47 /**
48 \brief
49 returns the number of threads
50 */
51 ESCRIPT_DLL_API int getNumberOfThreads();
52
53 /**
54 \brief
55 returns the total number of available MPI processes for MPI_COMM_WORLD
56 */
57 ESCRIPT_DLL_API int getMPISizeWorld();
58
59 /**
60 \brief
61 returns the MPI processor number within MPI_COMM_WORLD
62 */
63 ESCRIPT_DLL_API int getMPIRankWorld();
64 /**
65 \brief
66 returns the maximum value of an integer over all processors within MPI_COMM_WORLD
67 */
68 ESCRIPT_DLL_API int getMPIWorldMax(const int val);
69
70 /**
71 \brief returns sum of an integer over all processors with MPI_COMM_WORLD
72 */
73 ESCRIPT_DLL_API int getMPIWorldSum(const int val);
74
75 /**
76 \brief performs a barrier synchronization across all processors.
77 */
78
79 ESCRIPT_DLL_API void MPIBarrierWorld();
80
81 /**
82 \brief
83 returns machine precision
84 */
85 ESCRIPT_DLL_API double getMachinePrecision();
86 /*
87 \brief
88 return largest positive float
89 */
90 ESCRIPT_DLL_API double getMaxFloat();
91
92 ESCRIPT_DLL_API
93 void
94 saveDataCSV(const std::string& filename, boost::python::dict arg, const std::string& sep, const std::string& csep,
95 bool append=false);
96
97
98 /**
99 Resolve a collection of Data objects together now.
100 To get performance improvements, the objects will need to have the same function space and share Dag components.
101 \param obj A python list or tuple of Data objects to be resolved together.
102
103 */
104 ESCRIPT_DLL_API
105 void
106 resolveGroup(boost::python::object obj);
107
108 } // end of namespace
109 #endif

  ViewVC Help
Powered by ViewVC 1.1.26