Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nbc rebase #602

Open
wants to merge 104 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
bc112a6
Add basic wrapping of asynchronous MPI calls
Apr 18, 2014
314fee8
Add a helper function MapAllToAll that takes a std::map keyed on rank…
Apr 18, 2014
483cd77
Factor the NeighbouringDataManager to use the MapAllToAll and fix a b…
Apr 18, 2014
cb881bb
Remove AllToAll from the net class hierarchy (as it's unused)
Apr 18, 2014
0240e8c
Remove a load of random extra parentheses in the code
Apr 18, 2014
f0ef956
Reimplement the StabilityTester with a non-blocking collective
Apr 21, 2014
d057876
Move the stability tester implementation into an .hpp file
Apr 21, 2014
6446e55
MAke the StabilityTester use the wrapped MPI async interface
Apr 21, 2014
a3b63db
Remove the unphysical Mazzeo collisions used in his BCs
Apr 21, 2014
9b963a9
Remove some unneeded specialisations of PhasedBroadcast from the vis:…
Apr 21, 2014
b07157c
remove the DensityTracker class from IncompressibilityChecker
Apr 21, 2014
9ea2cbd
Create a CollectiveAction base class and make the IncompressibiltyChe…
Apr 21, 2014
17f369f
Make the IncompressibiltyCHecker unittests pass.
Apr 21, 2014
f7cb9cc
Actually register the IncompressibilityChecker to do it's communication
Apr 28, 2014
b558efa
Make the StabilityTester a CollectiveAction
Apr 28, 2014
679dbc8
Make the EntropyTester a CollectiveAction instead of a PhasedBroadcast
Apr 28, 2014
9c0a7b8
Make the steering data distribution object (SteeringComponent) a Coll…
Apr 28, 2014
cac78c8
Remove the PhasedBroadcastRegular class template as it's unused.
Apr 28, 2014
305cc19
Organise the timers used by the CollectiveActions in the monitoring.
Apr 28, 2014
0f09679
Avoid the use of C++11 extensions to the standard library vectors (cb…
Jul 2, 2014
63d7f8e
Record Archer configuration options in fabric
Aug 28, 2014
075df29
Ensure that the MPI_Wait calls of the CollectiveActions are timed by …
Sep 6, 2014
384bedb
Fix the debugger start up on OSX Yosemite
Oct 29, 2015
0772dec
Merge branch 'master' into nbc_rebase
Nov 16, 2015
030a951
Make the collective actions test rather than wait
Dec 3, 2015
544cd0f
First pass at removing visualisation - unit tests pass
Dec 3, 2015
876cab3
Remove the DoRayTracing template parameter from the LB
Dec 3, 2015
e2fbbd4
tidy doc strings
Dec 3, 2015
4e9d6d4
remove vis section from xml
Dec 3, 2015
cc8655b
Remove images from Fabric et al
Dec 4, 2015
6a934cc
Remove visim and python image reader
Dec 4, 2015
16409a6
remove dangling .project file
Dec 4, 2015
e9bd7b0
Remove the min and max density and pressure members from iolets etc
Dec 4, 2015
ee9820a
Remove phased broadcast
Dec 4, 2015
b6cbeef
remove some missed references to streaklines
Dec 4, 2015
dbc08ee
Remove redundant all-to-all from mixins
Dec 4, 2015
948e4d9
merge master into nbc_rebase branch
Apr 4, 2016
3e0d62a
Add CMake to check MPI standard version
Apr 5, 2016
4f4ad37
fix capitalisation - stupid case insensitive OS
Apr 5, 2016
11c6d6e
merge master in again
Apr 11, 2016
0549aec
minor MPI cmake edits
Apr 11, 2016
da47fbd
tidy up ARCHER section of machines.yml #649
Apr 13, 2016
8d7a04d
sort out the cmake and c++11
Apr 13, 2016
7b85ddb
have the cmake use the source dir to look for the git repo
Apr 13, 2016
6383203
Dependencies cmake: tweak boost install and update ctemplate to 2.3 f…
Apr 13, 2016
58a79f7
cmake: ensure boost install copies correctly
Apr 13, 2016
67bb525
cmake: remove quoting of boost INSTALL_COMMAND
Apr 13, 2016
8c9e590
cmake: revert move of CMAKE_MODULE_PATH addition that wasn't meant to…
Apr 13, 2016
9f5a2a9
merge master into nbc
Sep 26, 2016
8470814
implement MPI GatherV
Oct 4, 2016
7e28e85
deal with NBC synchronisation issues
Oct 14, 2016
a8cdd69
revise debug resume script for new OS X
Oct 14, 2016
9074b54
fix mis-renamed variable
Oct 14, 2016
579ba09
Replace HEMELB_STATIC_ASSERT with c++11 static_assert
Oct 14, 2016
2347e75
replace boost::shared_ptr with std::shared_ptr
Oct 14, 2016
7e7a6ae
replace net-based gathers with communicator gathers
Oct 17, 2016
8acfa4a
remove gathering from the net object
Oct 17, 2016
b6a7b3f
move debug over to new style comms
Oct 18, 2016
28ae19d
move extraction to new style comms
Oct 18, 2016
9250bda
move log to new style comms
Oct 18, 2016
12f8ded
move reporting to new style comms
Oct 18, 2016
1bf5515
move util to new style comms
Oct 18, 2016
8338e77
move colloids to new style comms
Oct 19, 2016
03b1bef
most of the actual new comms stuff
Oct 19, 2016
950cf89
move comms to using std::shared_ptr
Oct 19, 2016
ff9a920
minor fixes and move geometry to new comms
Oct 19, 2016
709affb
tweaks the colloids
Oct 19, 2016
a5b599c
move net to the new comms - involves temp friend access for p2p mixins
Oct 19, 2016
d3cc2a8
move remaining non-test stuff over
Oct 20, 2016
536e215
sort out lists of requests
Oct 20, 2016
860d705
sort the build cmake
Oct 20, 2016
fc6d5a5
fix debugger
Oct 20, 2016
34e3484
update the multiscale sim master and add AllGatherV to comms
Oct 20, 2016
6d9648d
fix allocation bug in net
Oct 20, 2016
93ba9ff
make comm::RequestList accept shared pointers
Oct 21, 2016
357ae7b
update the unit tests
Oct 23, 2016
ef5d20b
move colloids and some geometry away from the net
Oct 23, 2016
d4fda7b
move more away from net
Oct 24, 2016
03f78a4
remove the net from most of the rest
Oct 27, 2016
91e460c
remove the steering!
Oct 27, 2016
830a7fa
remove the net object of horror
Oct 27, 2016
3d515bf
remove ProcComms and StoredRequest as redundant
Oct 27, 2016
3613104
get most unittests passing
Oct 28, 2016
e732501
fix final unittests
Oct 28, 2016
12a5e96
minor tweaks to the communicator for sanity check and speed of Rank()…
Oct 31, 2016
e2265eb
start on replacing the net::phased stuff with new timestep ns
Nov 1, 2016
1e00030
remove most traces of net; new stuff only part-functioning
Feb 7, 2017
9935c88
fix ordering bug in step manager
Feb 21, 2017
8e38972
add missing include
Feb 21, 2017
4216145
missing include
Feb 21, 2017
618f01f
move linux debugger to new comms
Feb 21, 2017
2775de6
tidy the debugger instantiation
Feb 21, 2017
b6a1f8b
missing include
Feb 21, 2017
2801a6d
missing include
Feb 21, 2017
b5402fc
Merge pull request #672 from UCL-CCS/nbc_no_net
rupertnash Feb 22, 2017
ffbc38f
remove empty StabiltiyTester.cc
Feb 23, 2017
072e2ac
ARCHER/fabric tweaks
Feb 28, 2017
938fd04
further tidy the cmake/fabric and ensure correct MPI is found on ARCHER
Mar 14, 2017
ca9fe04
MPI versions functions know about MPI and CXX flags
Apr 4, 2017
6bff83c
revise mpi CMake in light of Mayeul's comments
Apr 28, 2017
27a3c6f
Py3: move from file() to open()
Apr 28, 2017
927db5d
Py3: replace a few __builtins__.xrange calls
Apr 28, 2017
cea72ef
Py3: deal with str/bytes/unicode issues between versions for xdr enco…
May 1, 2017
080bf3f
remove final traces of net namespace
May 1, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 0 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,9 @@ set(HEMELB_READING_GROUP_SIZE 5
CACHE INTEGER "Number of cores to use to read geometry file.")
set(HEMELB_LOG_LEVEL Info
CACHE STRING "Log level, choose 'Critical', 'Error', 'Warning', 'Info', 'Debug' or 'Trace'" )
set(HEMELB_STEERING_LIB basic
CACHE STRING "Steering library, choose 'basic' or 'none'" )
option(HEMELB_USE_MULTIMACHINE "Use multi-level parallelism support" OFF)
option(HEMELB_BUILD_UNITTESTS "Build the unit-tests" ON)
option(HEMELB_USE_STREAKLINES "Calculate streakline images" OFF)
option(HEMELB_USE_ALL_WARNINGS_GNU "Show all compiler warnings on development builds (gnu-style-compilers)" ON)
option(HEMELB_STATIC_ASSERT "Use simple compile-time assertions" ON)
set(HEMELB_OPTIMISATION "-O4" CACHE STRING "Optimisation level (can be blank or -O1 to -O4)")
option(HEMELB_BUILD_MULTISCALE "Build HemeLB Multiscale functionality" OFF)
set(HEMELB_LATTICE "D3Q15"
Expand All @@ -35,10 +31,8 @@ set(HEMELB_KERNEL "LBGK"
CACHE STRING "Select the kernel to use (LBGK,EntropicAnsumali,EntropicChik,MRT,NNCY,NNC,NNTPL)")
set(HEMELB_WALL_BOUNDARY "SIMPLEBOUNCEBACK"
CACHE STRING "Select the boundary conditions to be used at the walls (FINTERPOLATION,GZS,SIMPLEBOUNCEBACK,JUNKYANG)")
set(HEMELB_STEERING_HOST "CCS" CACHE STRING "Use a default host suffix for steering? (CCS, NGS2Leeds, NGS2Manchester, LONI, NCSA or blank)")
option(HEMELB_DEPENDENCIES_SET_RPATH "Set runtime RPATH" ON)
set(HEMELB_SUBPROJECT_MAKE_JOBS 1 CACHE INTEGER "Number of jobs to use for subproject build steps")
option(HEMELB_WAIT_ON_CONNECT "Wait for steering client" OFF)
option(HEMELB_IMAGES_TO_NULL "Write images to null" OFF)
option(HEMELB_USE_SSE3 "Use SSE3 intrinsics" OFF)
set(HEMELB_COMPUTE_ARCHITECTURE "AMDBULLDOZER"
Expand All @@ -62,10 +56,8 @@ ExternalProject_Add(
-DHEMELB_USE_DEBUGGER=${HEMELB_USE_DEBUGGER}
-DHEMELB_VALIDATE_GEOMETRY=${HEMELB_VALIDATE_GEOMETRY}
-DHEMELB_LOG_LEVEL=${HEMELB_LOG_LEVEL}
-DHEMELB_STEERING_LIB=${HEMELB_STEERING_LIB}
-DHEMELB_USE_MULTIMACHINE=${HEMELB_USE_MULTIMACHINE}
-DHEMELB_BUILD_UNITTESTS=${HEMELB_BUILD_UNITTESTS}
-DHEMELB_USE_STREAKLINES=${HEMELB_USE_STREAKLINES}
-DHEMELB_OPTIMISATION=${HEMELB_OPTIMISATION}
-DHEMELB_READING_GROUP_SIZE=${HEMELB_READING_GROUP_SIZE}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
Expand All @@ -75,11 +67,9 @@ ExternalProject_Add(
-DMPI_C_NO_INTERROGATE=${MPI_C_NO_INTERROGATE}
-DMPI_CXX_NO_INTERROGATE=${MPI_CXX_NO_INTERROGATE}
-DHEMELB_USE_ALL_WARNINGS_GNU=${HEMELB_USE_ALL_WARNINGS_GNU}
-DHEMELB_STEERING_HOST=${HEMELB_STEERING_HOST}
-DCTEMPLATE_USE_STATIC=${CTEMPLATE_USE_STATIC}
-DCPPUNIT_USE_STATIC=${CPPUNIT_USE_STATIC}
-DHEMELB_DEPENDENCIES_SET_RPATH=${HEMELB_DEPENDENCIES_SET_RPATH}
-DHEMELB_STATIC_ASSERT=${HEMELB_STATIC_ASSERT}
-DHEMELB_LATTICE=${HEMELB_LATTICE}
-DHEMELB_KERNEL=${HEMELB_KERNEL}
-DHEMELB_WALL_BOUNDARY=${HEMELB_WALL_BOUNDARY}
Expand Down
36 changes: 10 additions & 26 deletions Code/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ cmake_minimum_required (VERSION 3.2)

project(HemeLB)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

#---- OPTION switches accepted by the build -------

option(HEMELB_BUILD_DEBUGGER "Build the built in debugger" ON)
Expand All @@ -21,10 +18,7 @@ option(HEMELB_BUILD_TESTS_ALL "Build all the tests" ON)
option(HEMELB_BUILD_TESTS_UNIT "Build the unit-tests (HEMELB_BUILD_TESTS_ALL takes precedence)" ON)
option(HEMELB_BUILD_TESTS_FUNCTIONAL "Build the functional tests (HEMELB_BUILD_TESTS_ALL takes precedence)" ON)
option(HEMELB_USE_ALL_WARNINGS_GNU "Show all compiler warnings on development builds (gnu-style-compilers)" ON)
option(HEMELB_USE_STREAKLINES "Calculate streakline images" OFF)
option(HEMELB_DEPENDENCIES_SET_RPATH "Set runtime RPATH" ON)
option(HEMELB_STATIC_ASSERT "Use simple compile-time assertions" ON)
option(HEMELB_WAIT_ON_CONNECT "Wait for steering client" OFF)
option(HEMELB_BUILD_MULTISCALE "Build HemeLB Multiscale functionality" OFF)
option(HEMELB_IMAGES_TO_NULL "Write images to null" OFF)
option(HEMELB_USE_SSE3 "Use SSE3 intrinsics" OFF)
Expand All @@ -36,8 +30,6 @@ set(HEMELB_READING_GROUP_SIZE 5
CACHE INTEGER "Number of cores to use to read geometry file.")
set(HEMELB_LOG_LEVEL Info
CACHE STRING "Log level, choose 'Critical', 'Error', 'Warning', 'Info', 'Debug' or 'Trace'" )
set(HEMELB_STEERING_LIB basic
CACHE STRING "Steering library, choose 'basic' or 'none'" )
set(HEMELB_DEPENDENCIES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../dependencies"
CACHE FILEPATH "Path to find dependency find modules")
set(HEMELB_DEPENDENCIES_INSTALL_PATH ${HEMELB_DEPENDENCIES_PATH}
Expand All @@ -61,10 +53,6 @@ set(HEMELB_WALL_OUTLET_BOUNDARY "NASHZEROTHORDERPRESSURESBB"
CACHE STRING "Select the boundary conditions to be used at corners between walls and outlets (NASHZEROTHORDERPRESSURESBB,NASHZEROTHORDERPRESSUREBFL,LADDIOLETSBB,LADDIOLETBFL)")
set(HEMELB_POINTPOINT_IMPLEMENTATION Coalesce
CACHE STRING "Point to point comms implementation, choose 'Coalesce', 'Separated', or 'Immediate'" )
set(HEMELB_GATHERS_IMPLEMENTATION Separated
CACHE STRING "Gather comms implementation, choose 'Separated', or 'ViaPointPoint'" )
set(HEMELB_ALLTOALL_IMPLEMENTATION Separated
CACHE STRING "Alltoall comms implementation, choose 'Separated', or 'ViaPointPoint'" )
option(HEMELB_SEPARATE_CONCERNS "Communicate for each concern separately" OFF)

# Add warnings flags to development build types
Expand Down Expand Up @@ -94,18 +82,10 @@ if(HEMELB_VALIDATE_GEOMETRY)
add_definitions(-DHEMELB_VALIDATE_GEOMETRY)
endif()

if (NOT HEMELB_USE_STREAKLINES)
add_definitions(-DNO_STREAKLINES)
endif()

if (HEMELB_WAIT_ON_CONNECT)
add_definitions(-DHEMELB_WAIT_ON_CONNECT)
endif()

if (NOT HEMELB_STATIC_ASSERT)
add_definitions(-DHEMELB_NO_STATIC_ASSERT)
endif()

if (HEMELB_IMAGES_TO_NULL)
add_definitions(-DHEMELB_IMAGES_TO_NULL)
endif()
Expand All @@ -121,6 +101,7 @@ if (HEMELB_USE_VELOCITY_WEIGHTS_FILE)
add_definitions(-DHEMELB_USE_VELOCITY_WEIGHTS_FILE)
endif()


list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" "${HEMELB_DEPENDENCIES_PATH}/Modules/")
list(APPEND CMAKE_INCLUDE_PATH ${HEMELB_DEPENDENCIES_INSTALL_PATH}/include)
list(APPEND CMAKE_LIBRARY_PATH ${HEMELB_DEPENDENCIES_INSTALL_PATH}/lib)
Expand All @@ -131,6 +112,7 @@ if(HEMELB_DEPENDENCIES_SET_RPATH)
SET(CMAKE_INSTALL_RPATH "${HEMELB_DEPENDENCIES_INSTALL_PATH}/lib")
endif()

include(cxx11)
include(build_environment)
include(platform_checks)

Expand Down Expand Up @@ -158,6 +140,10 @@ if(NOT HAVE_XDRUINTXX_T)
endif()

include(mpi)
if(MPI_STANDARD_VERSION VERSION_LESS 3)
message(FATAL_ERROR "Must have MPI 3.0 or greater")
endif()

include(dependencies)

#-------------Resources -----------------------
Expand Down Expand Up @@ -190,13 +176,12 @@ add_executable(${HEMELB_EXECUTABLE} main.cc ${root_sources})
include_directories(${PROJECT_SOURCE_DIR})
set(package_subdirs
configuration
comm
extraction
reporting
steering
vis
lb
geometry
net
timestep
debug
util
io
Expand Down Expand Up @@ -236,14 +221,13 @@ if (HEMELB_BUILD_MULTISCALE)
add_executable(multiscale_hemelb mainMultiscale.cc ${root_sources})
include_directories(${PROJECT_SOURCE_DIR})
set(package_subdirs
comm
configuration
extraction
reporting
steering
vis
lb
geometry
net
timestep
debug
util
io
Expand Down
Loading