Commit b5359e92 authored by Sebastian Eibl's avatar Sebastian Eibl
Browse files

Merge branch '84-add-clang-8-0-to-ci' into 'master'

Resolve "Add clang 8.0 to ci"

Closes #84

See merge request walberla/walberla!179
parents d100c13b 90c1d512
......@@ -1121,9 +1121,9 @@ clang_7.0_hybrid:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
......@@ -1134,9 +1134,9 @@ clang_7.0_serial_dbg:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
......@@ -1147,9 +1147,9 @@ clang_7.0_mpionly_dbg:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
......@@ -1160,15 +1160,106 @@ clang_7.0_hybrid_dbg:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_7.0_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:7.0
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_8.0_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_8.0_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_8.0_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
tags:
- docker
clang_8.0_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
tags:
- docker
clang_8.0_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
tags:
- docker
clang_8.0_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
tags:
- docker
clang_8.0_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
stage: pretest
variables:
<<: *build_hybrid_dbg_sp_variables
......@@ -1320,7 +1411,7 @@ msvc-14.1_Hybrid_Dbg:
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
msvc-14.1_Hybrid_SP_Dbg:
<<: *win_build_definition
variables:
......@@ -1333,7 +1424,7 @@ msvc-14.1_Hybrid_SP_Dbg:
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
msvc-14.1_Hybrid:
<<: *win_build_definition
variables:
......@@ -1346,7 +1437,7 @@ msvc-14.1_Hybrid:
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
msvc-14.1_Serial_Dbg:
<<: *win_build_definition
variables:
......@@ -1359,7 +1450,7 @@ msvc-14.1_Serial_Dbg:
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
msvc-14.1_Serial:
<<: *win_build_definition
variables:
......@@ -1372,7 +1463,7 @@ msvc-14.1_Serial:
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
msvc-14.1_MpiOnly_Dbg:
<<: *win_build_definition
variables:
......@@ -1385,7 +1476,7 @@ msvc-14.1_MpiOnly_Dbg:
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
msvc-14.1_MpiOnly:
<<: *win_build_definition
variables:
......
......@@ -643,7 +643,7 @@ else()
endif()
if ( WALBERLA_BUILD_WITH_PYTHON AND WALBERLA_CXX_COMPILER_IS_MSVC )
list( APPEND waLBerla_REQUIRED_BOOST_COMPONENTS python3 )
list( APPEND waLBerla_REQUIRED_BOOST_COMPONENTS python36 )
endif()
# This variable is necessary, if the CMAKE version used is not aware of a more recent boost version (keep this up to date!)
......@@ -729,6 +729,7 @@ if ( WALBERLA_BUILD_WITH_PYTHON AND NOT WALBERLA_CXX_COMPILER_IS_MSVC)
endif()
if( PYTHON_LIBRARY MATCHES "python3" )
find_library( BOOST_PYTHON_LIBRARY NAMES
boost_python36${_boost_MULTITHREADED}
boost_python-py36${_boost_MULTITHREADED} boost_python-py35${_boost_MULTITHREADED}
boost_python-py34${_boost_MULTITHREADED} boost_python-py33${_boost_MULTITHREADED}
boost_python-py32${_boost_MULTITHREADED} boost_python3${_boost_MULTITHREADED}
......
......@@ -890,7 +890,7 @@ uint_t evaluateEdgeCut(BlockForest & forest)
void evaluateTotalSimulationTimePassed(WcTimingPool & timeloopTimingPool, real_t & totalSimTime, real_t & totalLBTime)
{
shared_ptr< WcTimingPool> reduced = timeloopTimingPool.getReduced(WcTimingPool::REDUCE_TOTAL, 0);
shared_ptr< WcTimingPool> reduced = timeloopTimingPool.getReduced(timing::REDUCE_TOTAL, 0);
std::string simulationString("LBM refinement time step");
auto totalTime = real_t(0);
......
......@@ -289,7 +289,7 @@ int main( int argc, char * argv[] )
timeloop.run( timingPool );
WALBERLA_LOG_INFO_ON_ROOT( "Timeloop done" );
timingPool.unifyRegisteredTimersAcrossProcesses();
timingPool.logResultOnRoot( WcTimingPool::REDUCE_TOTAL, true );
timingPool.logResultOnRoot( timing::REDUCE_TOTAL, true );
return EXIT_SUCCESS;
}
......@@ -300,4 +300,4 @@ int main( int argc, char * argv[] )
int main( int argc, char * argv[] )
{
return walberla::main( argc, argv );
}
\ No newline at end of file
}
This diff is collapsed.
//======================================================================================================================
//
// This file is part of waLBerla. waLBerla is free software: you can
// redistribute it and/or modify it under the terms of the GNU General Public
// License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// waLBerla is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
// for more details.
//
// You should have received a copy of the GNU General Public License along
// with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
//
//! \file ReduceType.h
//! \author Sebastian Eibl <sebastian.eibl@fau.de>
//
//======================================================================================================================
#pragma once
namespace walberla {
namespace timing {
/// The reduce type describes which values are reduced from each process
enum ReduceType
{
/// Treats each process as one timing sample. For the timing sample the min value is used.
REDUCE_MIN,
/// Treats each process as one timing sample. For the timing sample the average value is used.
REDUCE_AVG,
/// Treats each process as one timing sample. For the timing sample the max value is used.
REDUCE_MAX,
/// Collects all timing samples from all processes and accumulates the data.
/// The number of measurements afterwards are: nrOfProcesses*measurementsPerProcess
REDUCE_TOTAL
};
} //namespace timing
} //namespace walberla
......@@ -23,6 +23,7 @@
#pragma once
#include "Timer.h"
#include "ReduceType.h"
#include "core/debug/Debug.h"
#include "core/logging/Logging.h"
......@@ -197,20 +198,6 @@ size_t getHierarchyDepth(const TimingNode<TP>& tn)
return depth + maxDepth;
}
/// The reduce type describes which values are reduced from each process
enum ReduceType
{
/// Treats each process as one timing sample. For the timing sample the min value is used.
REDUCE_MIN,
/// Treats each process as one timing sample. For the timing sample the average value is used.
REDUCE_AVG,
/// Treats each process as one timing sample. For the timing sample the max value is used.
REDUCE_MAX,
/// Collects all timing samples from all processes and accumulates the data.
/// The number of measurements afterwards are: nrOfProcesses*measurementsPerProcess
REDUCE_TOTAL
};
/// Collects all the timing data from different processes
/// \attention Will overwrite the current timer data! Multiple calls will accumulate!
/// \relates TimingNode
......
......@@ -22,6 +22,7 @@
#pragma once
#include "Timer.h"
#include "ReduceType.h"
#include <iostream>
#include <map>
......@@ -77,21 +78,6 @@ public:
//** Reduction ******************************************************************************************************
/*! \name Reduction */
//@{
/// The reduce type describes which values are reduced from each process
enum ReduceType
{
/// Treats each process as one timing sample. For the timing sample the min value is used.
REDUCE_MIN,
/// Treats each process as one timing sample. For the timing sample the average value is used.
REDUCE_AVG,
/// Treats each process as one timing sample. For the timing sample the max value is used.
REDUCE_MAX,
/// Collects all timing samples from all processes and accumulates the data.
/// The number of measurements afterwards are: nrOfProcesses*measurementsPerProcess
REDUCE_TOTAL
};
shared_ptr<TimingPool<TP> > getReduced ( ReduceType rt = REDUCE_TOTAL, int targetWorldRank = 0 ) const;
//@}
//*******************************************************************************************************************
......
......@@ -33,6 +33,7 @@
#include "core/cell/CellInterval.h"
#include "core/math/AABB.h"
#include "core/mpi/MPIIO.h"
#include "core/timing/ReduceType.h"
#include "core/timing/TimingPool.h"
#include "core/timing/TimingTree.h"
#include "communication/UniformPackInfo.h"
......@@ -634,11 +635,11 @@ void exportTiming()
.def( self_ns::str(self) )
;
enum_<WcTimingPool::ReduceType>("ReduceType")
.value("min" , WcTimingPool::REDUCE_MIN)
.value("avg" , WcTimingPool::REDUCE_AVG)
.value("max" , WcTimingPool::REDUCE_MAX)
.value("total", WcTimingPool::REDUCE_TOTAL)
enum_<timing::ReduceType>("ReduceType")
.value("min" , timing::REDUCE_MIN)
.value("avg" , timing::REDUCE_AVG)
.value("max" , timing::REDUCE_MAX)
.value("total", timing::REDUCE_TOTAL)
.export_values()
;
}
......
......@@ -103,7 +103,7 @@ void reduction()
WcTimer timerBackup = pool["test"];
// Test minimum reduction
auto red = pool.getReduced( WcTimingPool::REDUCE_MIN, 0 );
auto red = pool.getReduced( timing::REDUCE_MIN, 0 );
WALBERLA_ROOT_SECTION() {
WcTimer & t = (*red)["test"];
WALBERLA_CHECK_FLOAT_EQUAL( t.min(), 1.0 );
......@@ -115,7 +115,7 @@ void reduction()
}
// Test maximum reduction
red = pool.getReduced( WcTimingPool::REDUCE_MAX, 0 );
red = pool.getReduced( timing::REDUCE_MAX, 0 );
WALBERLA_ROOT_SECTION() {
WcTimer & t = (*red)["test"];
WALBERLA_CHECK_FLOAT_EQUAL( t.min(), 4.0 );
......@@ -127,7 +127,7 @@ void reduction()
}
// Test complete reduction
red = pool.getReduced( WcTimingPool::REDUCE_TOTAL, 0 );
red = pool.getReduced( timing::REDUCE_TOTAL, 0 );
WALBERLA_ROOT_SECTION() {
WcTimer & t = (*red)["test"];
WALBERLA_CHECK_FLOAT_EQUAL( t.min(), 1.0 );
......@@ -138,7 +138,7 @@ void reduction()
red.reset();
red = pool.getReduced( WcTimingPool::REDUCE_TOTAL, -1 );
red = pool.getReduced( timing::REDUCE_TOTAL, -1 );
WALBERLA_CHECK_NOT_NULLPTR( red );
WALBERLA_CRITICAL_SECTION_START
cout << *red << endl;
......@@ -154,7 +154,7 @@ void reduction()
cout << pool << endl;
WALBERLA_CRITICAL_SECTION_END
red = pool.getReduced( WcTimingPool::REDUCE_TOTAL, 0 );
red = pool.getReduced( timing::REDUCE_TOTAL, 0 );
WALBERLA_ROOT_SECTION() {
cout << "Reduced System" << endl << *red << endl;
}
......
......@@ -50,7 +50,7 @@ void runTests( const uint_t numAABBs )
TriangleDistance<MeshType> triDist( mesh );
WALBERLA_CHECK( isIntersecting( triDist, meshAABB, real_t(0) ) );
WALBERLA_CHECK( isIntersecting( triDist, meshAABB, real_t(0) ).value, boost::logic::tribool::true_value );
std::mt19937 rng( uint32_t(42) );
......@@ -103,4 +103,4 @@ int main( int argc, char * argv[] )
int main( int argc, char * argv[] )
{
return walberla::mesh::main( argc, argv );
}
\ No newline at end of file
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment