Skip to content
Snippets Groups Projects
Commit e1dee840 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Add checkpoint/resume mechanism for partitioner library

parent 1e461806
Branches
No related tags found
1 merge request!202Prepare PTScotch integration
......@@ -4,8 +4,6 @@
#ifdef PUGS_HAS_HDF5
#include <algebra/EigenvalueSolverOptions.hpp>
#include <algebra/LinearSolverOptions.hpp>
#include <dev/ParallelChecker.hpp>
#include <language/ast/ASTExecutionStack.hpp>
#include <language/utils/ASTCheckpointsInfo.hpp>
......@@ -25,6 +23,7 @@
#include <utils/checkpointing/EigenvalueSolverOptionsHFType.hpp>
#include <utils/checkpointing/LinearSolverOptionsHFType.hpp>
#include <utils/checkpointing/ParallelCheckerHFType.hpp>
#include <utils/checkpointing/PartitionerOptionsHFType.hpp>
#include <utils/checkpointing/ResumingManager.hpp>
#include <iostream>
......@@ -131,6 +130,14 @@ checkpoint()
eigenvalue_solver_options_default_group.createAttribute("library", default_options.library());
}
{
HighFive::Group partitioner_options_default_group =
checkpoint.createGroup("singleton/partitioner_options_default");
const PartitionerOptions& default_options = PartitionerOptions::default_options;
partitioner_options_default_group.createAttribute("library", default_options.library());
}
{
const auto& primal_to_dual_connectivity_info_map =
DualConnectivityManager::instance().primalToDualConnectivityInfoMap();
......
#ifndef PARTITIONER_OPTIONS_HF_TYPE_HPP
#define PARTITIONER_OPTIONS_HF_TYPE_HPP
#include <utils/HighFivePugsUtils.hpp>
#include <utils/PartitionerOptions.hpp>
#include <utils/PugsMacros.hpp>
HighFive::EnumType<PartitionerLibrary> PUGS_INLINE
create_enum_PTOptions_library_type()
{
return {{"ParMETIS", PartitionerLibrary::parmetis}, {"PTScotch", PartitionerLibrary::ptscotch}};
}
HIGHFIVE_REGISTER_TYPE(PartitionerLibrary, create_enum_PTOptions_library_type)
#endif // PARTITIONER_OPTIONS_HF_TYPE_HPP
......@@ -18,6 +18,7 @@
#include <utils/checkpointing/EigenvalueSolverOptionsHFType.hpp>
#include <utils/checkpointing/LinearSolverOptionsHFType.hpp>
#include <utils/checkpointing/ParallelCheckerHFType.hpp>
#include <utils/checkpointing/PartitionerOptionsHFType.hpp>
#include <utils/checkpointing/ResumingData.hpp>
#include <utils/checkpointing/ResumingManager.hpp>
......@@ -91,6 +92,13 @@ resume()
default_options.library() = eigenvalue_solver_options_default_group.getAttribute("library").read<ESLibrary>();
}
{
HighFive::Group partitioner_options_default_group = checkpoint.getGroup("singleton/partitioner_options_default");
PartitionerOptions& default_options = PartitionerOptions::default_options;
default_options.library() = partitioner_options_default_group.getAttribute("library").read<PartitionerLibrary>();
}
checkpointing::ResumingData::instance().readData(checkpoint, p_symbol_table);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment