22#ifdef CompilerHasUTSName
23#include <sys/utsname.h>
27 static bool wrote =
false;
30 std::cout <<
"Peano 4 (C) www.peano-framework.org" << std::endl;
31 std::string buildInfo =
"build: ";
33 buildInfo += std::to_string(Dimensions);
37 buildInfo +=
", with mpi (";
39 buildInfo +=
" ranks)";
41 buildInfo +=
", no mpi";
44 #if defined(SharedOMP)
46 #elif defined(SharedTBB)
48 #elif defined(SharedSYCL)
49 buildInfo +=
", sycl threading";
50 #elif defined(SharedCPP)
51 buildInfo +=
", C++ threading";
53 buildInfo +=
", no threading";
59 buildInfo +=
" threads)";
62 #if defined(GPUOffloadingOMP)
63 buildInfo +=
", omp offloading";
64 #elif defined(GPUOffloadingSYCL)
65 buildInfo +=
", sycl";
66 #elif defined(GPUOffloadingCPP)
67 buildInfo +=
", C++ offloading";
69 buildInfo +=
", no gpu support";
75 buildInfo +=
" gpus)";
79 buildInfo +=
", debug level=" + std::to_string(PeanoDebug);
82 std::cout << buildInfo << std::endl;
107 clock_t timeout = 60;
115 #ifdef SharedMemoryParallelisation
std::bitset< Dimensions > periodicBC
static void shutdownMPIDatatypes()
void shutdown()
The shutdown is invoked by peano4::shutdownSingletons()
static void initMPIDatatypes()
I originally wanted to embed these guys into the singleton's constructor.
static Node & getInstance()
This operation returns the singleton instance.
void init(const tarch::la::Vector< Dimensions, double > &offset, const tarch::la::Vector< Dimensions, double > &width, const std::bitset< Dimensions > &periodicBC=0)
static SpacetreeSet & getInstance()
virtual void shutdown() override
static Device & getInstance()
static BooleanSemaphoreService & getInstance()
Don't use this routine.
virtual void shutdown() override
void setDeadlockTimeOut(int valueInSeconds)
Set deadlock time out.
static int getGlobalMasterRank()
Get the global master.
static Rank & getInstance()
This operation returns the singleton instance.
void setTimeOutWarning(int valueInSeconds)
Set time out warning.
void shutdown()
Shuts down the application.
static Core & getInstance()
void shutdown()
Shutdown parallel environment.
static ServiceRepository & getInstance()
void init()
Maybe the only service that you don't have to init and shutdown.
virtual void shutdown() override
void setupLookupTableForDLinearised()
void setupLookupTableForDDelinearised()
void shutdownSingletons()
The very first thing I have to do is to shut down Node.
void writeCopyrightMessage()
You can invoke this operation manually, but it will also implicitly be triggered by the init routines...
void fillLookupTables()
Fill Lookup Tables.
int initParallelEnvironment(int *argc, char ***argv)
Init Parallel Environment.
void initSingletons(const tarch::la::Vector< Dimensions, double > &offset, const tarch::la::Vector< Dimensions, double > &width, const std::bitset< Dimensions > &periodicBC=0)
Fire up all the singletons.
void shutdownParallelEnvironment()
Shutdown all the parallel environment, i.e.