initialize¶
Defined in header <Kokkos_Core.hpp>
Usage¶
Kokkos::initialize(argc, argv);
Kokkos::initialize(Kokkos::InitializationSettings()
.set_disable_warnings(true)
.set_num_threads(8)
.set_map_device_id_by("random"));
Kokkos::initialize();
Initializes the Kokkos execution environment.
This function must be called before any other Kokkos API functions or
constructors. There are a small number of exceptions, such as
is_initialized() or is_finalized().
Kokkos can be initialized at most once; subsequent calls are erroneous.
The function has two overloads.
The first one takes the same two parameters as main() corresponding to
the command line arguments passed to the program from the environment in which
the program is run. Kokkos parses the arguments for the flags that it
recognizes. Whenever a Kokkos flag is seen, it is removed from argv, and
argc is decremented.
The second one takes a InitializationSettings class object
which allows for programmatic control of arguments.
Interface¶
-
void initialize(int &argc, char *argv[]);¶
-
void initialize(const InitializationSettings &settings = {});¶
- Parameters:
argc – Non-negative value, representing the number of command line arguments passed to the program.
argv – Pointer to the first element of an array of
argc + 1pointers, of which the last one is null and the previous, if any, point to null-terminated multibyte strings that represent the arguments passed to the program.settings –
classobject that contains settings to control the initialization of Kokkos.
- Preconditions:
is_initialized()returnsfalseis_finalized()returnsfalse
Note¶
Important
Kokkos::initialize generally should be called after MPI_Init when
Kokkos is initialized within an MPI context.
Example¶
#include <Kokkos_Core.hpp>
int main(int argc, char* argv[]) {
Kokkos::initialize(argc, argv);
{ // scope to ensure that my_view destructor is called before Kokkos::finalize
Kokkos::View<double*> my_view("my_view", 10);
} // scope of my_view ends here
Kokkos::finalize();
}
See also¶
See also
- finalize
Terminate the Kokkos execution environment.
- ScopeGuard
A RAII-based approach to ensure initialization and finalization are handled correctly.
- is_initialized and is_finalized
Query the current state of the Kokkos execution environment.