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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3911 - (show annotations)
Thu Jun 14 01:01:03 2012 UTC (7 years, 4 months ago) by jfenwick
File MIME type: text/plain
File size: 2752 byte(s)
Copyright changes
1
2 /*******************************************************
3 *
4 * Copyright (c) 2003-2012 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 ESCRIPT_DLL_API void MPIBarrierWorld();
79
80 /**
81 \brief uses MPI_Comm_spawn to run an external MPI program safely.
82 */
83 ESCRIPT_DLL_API int runMPIProgram(const boost::python::list args);
84
85 /**
86 \brief
87 returns machine precision
88 */
89 ESCRIPT_DLL_API double getMachinePrecision();
90 /*
91 \brief
92 return largest positive float
93 */
94 ESCRIPT_DLL_API double getMaxFloat();
95
96 ESCRIPT_DLL_API
97 void
98 saveDataCSV(const std::string& filename, boost::python::dict arg, const std::string& sep, const std::string& csep,
99 bool append=false);
100
101
102 /**
103 Resolve a collection of Data objects together now.
104 To get performance improvements, the objects will need to have the same function space and share Dag components.
105 \param obj A python list or tuple of Data objects to be resolved together.
106
107 */
108 ESCRIPT_DLL_API
109 void
110 resolveGroup(boost::python::object obj);
111
112 } // end of namespace
113 #endif

  ViewVC Help
Powered by ViewVC 1.1.26