Matthias Maier [Thu, 6 Jan 2022 14:35:14 +0000 (08:35 -0600)]
disable threading in task_info.cc for oneAPI
TBB with oneAPI API has deprecated and removed the
<code>tbb::tasks</code> backend. With this it is no longer possible to
compile the following code that builds a directed acyclic graph (DAG) of
(thread parallel) tasks without a major porting effort. It turned out
that such a dynamic handling of dependencies and structures is not as
competitive as initially assumed. Consequently, this part of the matrix
free infrastructure has seen less attention than the rest over the last
years and is (presumably) rarely used.
So in case of detected oneAPI backend we simply disable threading in the
matrix free backend for now.
David Wells [Tue, 4 Jan 2022 17:46:30 +0000 (12:46 -0500)]
Fix compilation with boost 1.78.
I bisected (fortunately Boost.Geometry a header-only library so adding the
include directory sufficed) and
https://github.com/boostorg/geometry/commit/6eb9e238bcb37e26dc31d16acf826784a2ba30f4
is where this problem starts for us. See also
https://github.com/boostorg/geometry/issues/792 - the easiest fix for all such
issues is to just include the project header `boost/geometry/geometry.hpp`.
In this particular case, if you look at the commit which causes grid_tools.cc
fails to compile, its because we were relying on some implicit includes. In
particular, we need the distance header to find the distance between points and
boxes, but that was previously included in another file.
Boost 1.77 compatibility: change order of includes
Otherwise, including both header files in reverse order leads to a
compilation failure:
```
In file included from /usr/include/boost/geometry/index/detail/rtree/rstar/choose_next_node.hpp:25,
from /usr/include/boost/geometry/index/detail/rtree/rstar/rstar.hpp:15,
from /usr/include/boost/geometry/index/rtree.hpp:80,
from ../include/deal.II/numerics/rtree.h:29,
from ../include/deal.II/grid/grid_tools.h:49,
from ../include/deal.II/numerics/vector_tools_point_gradient.templates.h:22,
from ../source/numerics/vector_tools_point_gradient.cc:17:
/usr/include/boost/geometry/index/detail/algorithms/intersection_content.hpp: In function ‘bool boost::geometry::index::detail::disjoint_box_box(const Box&, const Box&, const boost::geometry::default_strategy&)’:
/usr/include/boost/geometry/index/detail/algorithms/intersection_content.hpp:35:32: error: ‘boost::geometry::strategy::disjoint’ has not been declared
35 | typedef typename strategy::disjoint::services::default_strategy<Box, Box>::type strategy_type;
| ^~~~~~~~
/usr/include/boost/geometry/index/detail/algorithms/intersection_content.hpp:35:68: error: expected unqualified-id before ‘<’ token
35 | typedef typename strategy::disjoint::services::default_strategy<Box, Box>::type strategy_type;
| ^
/usr/include/boost/geometry/index/detail/algorithms/intersection_content.hpp:36:83: error: class template argument deduction failed:
36 | return geometry::detail::disjoint::disjoint_box_box(box1, box2, strategy_type());
```
Timo Heister [Fri, 15 Oct 2021 03:05:53 +0000 (23:05 -0400)]
fix checkpointing for >4GB files
We incorrectly compute MPI_Offset for MPI IO for checkpointing using
SolutionTransfer using 32 bit indices, which means that files larger
than 4GB end up being corrupted.
This manifests in errors like
n error occurred in line <749> of file
<../source/distributed/tria_base.cc> in function
void dealii::parallel::DistributedTriangulationBase<dim,
spacedim>::load_attached_data(unsigned int, unsigned int, unsigned int,
const string&, unsigned int, unsigned int) [with int dim = 3; int
spacedim = 3; std::string = std::__cxx11::basic_string<char>]
The violated condition was:
(cell_rel.second == parallel::DistributedTriangulationBase<dim,
spacedim>::CELL_PERSIST)
Matthias Maier [Tue, 29 Jun 2021 15:18:41 +0000 (10:18 -0500)]
Tensor: refactor constructor and assignment operator guards
* This commit guards some constructors and copy/move assignment
operators that are necessary to work around a gcc 11 regression with
DEAL_II_DELETED_MOVE_CONSTRUCTOR_BUG.
* Add back explicitly guarded constructor working around a code
generation issue with intel compilers
David Wells [Thu, 17 Jun 2021 14:10:33 +0000 (10:10 -0400)]
Fix a segmentation fault at high optimization levels.
I don't completely understand this but accessing these pointers causes
segmentation faults. It's not due to type aliasing - converting both to 'const
auto *' does not fix the problem.
Timo Heister [Sat, 26 Jun 2021 21:33:43 +0000 (17:33 -0400)]
fix umfpack cmake 3.20 warning
Fix the following warnings produced by CMake 3.20:
CMake Warning (dev) at cmake/macros/macro_deal_ii_add_library.cmake:35
(ADD_LIBRARY):
Policy CMP0115 is not set: Source file extensions must be explicit.
File:
Timo Heister [Sat, 19 Jun 2021 18:15:38 +0000 (14:15 -0400)]
fix cmake underlinkage error
The underlinkage MPI check under Ubuntu fails if MPI_CXX_LIBRARIES is
empty, which happens if you configure with CXX=mpicxx (even though you
should not).
In this situation, just disable this hack. Errors look like this:
CMake Error at cmake/modules/FindMPI.cmake:143 (LIST):
LIST GET given empty list
Call Stack (most recent call first):
cmake/macros/macro_find_package.cmake:27 (_FIND_PACKAGE)
cmake/configure/configure_1_mpi.cmake:28 (FIND_PACKAGE)
/a/CMakeFiles/CMakeTmp/evaluate_expression.tmp:1
(FEATURE_MPI_FIND_EXTERNAL)
cmake/macros/macro_evaluate_expression.cmake:30 (INCLUDE)
cmake/macros/macro_configure_feature.cmake:237 (EVALUATE_EXPRESSION)
cmake/configure/configure_1_mpi.cmake:81 (CONFIGURE_FEATURE)
cmake/macros/macro_verbose_include.cmake:19 (INCLUDE)
CMakeLists.txt:121 (VERBOSE_INCLUDE)
CMake Error at cmake/modules/FindMPI.cmake:144 (GET_FILENAME_COMPONENT):
GET_FILENAME_COMPONENT called with incorrect number of arguments
Call Stack (most recent call first):
cmake/macros/macro_find_package.cmake:27 (_FIND_PACKAGE)
cmake/configure/configure_1_mpi.cmake:28 (FIND_PACKAGE)
/a/CMakeFiles/CMakeTmp/evaluate_expression.tmp:1
(FEATURE_MPI_FIND_EXTERNAL)
cmake/macros/macro_evaluate_expression.cmake:30 (INCLUDE)
cmake/macros/macro_configure_feature.cmake:237 (EVALUATE_EXPRESSION)
cmake/configure/configure_1_mpi.cmake:81 (CONFIGURE_FEATURE)
cmake/macros/macro_verbose_include.cmake:19 (INCLUDE)
CMakeLists.txt:121 (VERBOSE_INCLUDE)
-- _mpi_libopen_pal_library not found! The call was:
-- FIND_LIBRARY(_mpi_libopen_pal_library NAMES open-pal HINTS
NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH
NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH NO_CMAKE_FIND_ROOT_PATH)