Skip to content

Commit

Permalink
Add comments and avoid a temporary std::string
Browse files Browse the repository at this point in the history
  • Loading branch information
masterleinad committed Mar 10, 2023
1 parent 817395f commit 46e1740
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions source/base/mpi.cc
Original file line number Diff line number Diff line change
Expand Up @@ -777,6 +777,9 @@ namespace Utilities

// Initialize Kokkos
{
// argv has argc+1 elements and the last one is a nullptr. For appending
// one element we thus create a new argv by copying the first argc
// elements, append the new option, and then a nullptr.
std::vector<char *> argv_new(argc + 2);
for (int i = 0; i < argc; ++i)
argv_new[i] = argv[i];
Expand All @@ -786,9 +789,13 @@ namespace Utilities
#else
threads_flag << "--kokkos-threads=" << MultithreadInfo::n_threads();
#endif
argv_new[argc] = const_cast<char *>(threads_flag.str().c_str());
std::string threads_flag_string = threads_flag.str();
argv_new[argc] = const_cast<char *>(threads_flag_string.c_str());
argv_new[argc + 1] = nullptr;
int argc_new = argc + 1;
// The first argument in Kokkos::initialzie is of type int&. Hence, we
// need to define a new variable to pass to it (insted of using argc+1
// inline).
int argc_new = argc + 1;
Kokkos::initialize(argc_new, argv_new.data());
}

Expand Down

0 comments on commit 46e1740

Please sign in to comment.