Reference documentation for deal.II version GIT 982a52a150 2023-04-01 20:45:01+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
kokkos.cc
Go to the documentation of this file.
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2022 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE.md at
12 // the top level directory of deal.II.
13 //
14 // ---------------------------------------------------------------------
15 
16 #include <deal.II/base/kokkos.h>
18 
21 
22 #include <Kokkos_Core.hpp>
23 
25 
26 namespace internal
27 {
29 
30  void
32  {
33  if (!Kokkos::is_initialized())
34  {
35  // only execute once
36  static bool dummy = [] {
38 #if KOKKOS_VERSION >= 30700
39  const auto settings =
40  Kokkos::InitializationSettings().set_num_threads(
42 #else
43  const Kokkos::InitArguments settings(MultithreadInfo::n_threads());
44 #endif
45  Kokkos::initialize(settings);
46  std::atexit(Kokkos::finalize);
47  return true;
48  }();
49  (void)dummy;
50  }
51  }
52 } // namespace internal
static unsigned int n_threads()
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:474
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:475
void ensure_kokkos_initialized()
Definition: kokkos.cc:31
bool dealii_initialized_kokkos
Definition: kokkos.cc:28
const TriangulationDescription::Settings settings