Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion benchmarks/linear_programming/cuopt/run_mip.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
#include <cuopt/linear_programming/mip/solver_solution.hpp>
#include <cuopt/linear_programming/optimization_problem.hpp>
#include <cuopt/linear_programming/solve.hpp>
#include <cuopt/logger.hpp>
#include <mps_parser/parser.hpp>
#include <utilities/logger.hpp>

#include <raft/core/handle.hpp>

Expand Down
38 changes: 33 additions & 5 deletions cpp/cuopt_cli.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
#include <cuopt/linear_programming/mip/solver_settings.hpp>
#include <cuopt/linear_programming/optimization_problem.hpp>
#include <cuopt/linear_programming/solve.hpp>
#include <cuopt/logger.hpp>
#include <mps_parser/parser.hpp>
#include <utilities/logger.hpp>

#include <raft/core/handle.hpp>

Expand Down Expand Up @@ -75,6 +75,18 @@ static char cuda_module_loading_env[] = "CUDA_MODULE_LOADING=EAGER";
*/
inline auto make_async() { return std::make_shared<rmm::mr::cuda_async_memory_resource>(); }

/**
* @brief Handle logger when error happens before logger is initialized
* @param settings Solver settings
* @return cuopt::init_logger_t
*/
inline cuopt::init_logger_t dummy_logger(
const cuopt::linear_programming::solver_settings_t<int, double>& settings)
{
return cuopt::init_logger_t(settings.get_parameter<std::string>(CUOPT_LOG_FILE),
settings.get_parameter<bool>(CUOPT_LOG_TO_CONSOLE));
}

/**
* @brief Run a single file
* @param file_path Path to the MPS format input file containing the optimization problem
Expand All @@ -94,6 +106,7 @@ int run_single_file(const std::string& file_path,
settings.set_parameter_from_string(key, val);
}
} catch (const std::exception& e) {
auto log = dummy_logger(settings);
CUOPT_LOG_ERROR("Error: %s", e.what());
return -1;
}
Expand All @@ -113,6 +126,7 @@ int run_single_file(const std::string& file_path,
}
}
if (parsing_failed) {
auto log = dummy_logger(settings);
CUOPT_LOG_ERROR("Parsing MPS failed. Exiting!");
return -1;
}
Expand All @@ -122,7 +136,8 @@ int run_single_file(const std::string& file_path,

const bool is_mip =
(op_problem.get_problem_category() == cuopt::linear_programming::problem_category_t::MIP ||
op_problem.get_problem_category() == cuopt::linear_programming::problem_category_t::IP);
op_problem.get_problem_category() == cuopt::linear_programming::problem_category_t::IP) &&
!solve_relaxation;

try {
auto initial_solution =
Expand All @@ -131,23 +146,36 @@ int run_single_file(const std::string& file_path,
: cuopt::linear_programming::solution_reader_t::get_variable_values_from_sol_file(
initial_solution_file, mps_data_model.get_variable_names());

if (is_mip && !solve_relaxation) {
if (is_mip) {
auto& mip_settings = settings.get_mip_settings();
if (initial_solution.size() > 0) {
mip_settings.add_initial_solution(initial_solution.data(), initial_solution.size());
}
auto solution = cuopt::linear_programming::solve_mip(op_problem, mip_settings);
} else {
auto& lp_settings = settings.get_pdlp_settings();
if (initial_solution.size() > 0) {
lp_settings.set_initial_primal_solution(initial_solution.data(), initial_solution.size());
}
auto solution = cuopt::linear_programming::solve_lp(op_problem, lp_settings);
}
} catch (const std::exception& e) {
auto log = dummy_logger(settings);
CUOPT_LOG_ERROR("Error: %s", e.what());
return -1;
}

try {
if (is_mip) {
auto& mip_settings = settings.get_mip_settings();
auto solution = cuopt::linear_programming::solve_mip(op_problem, mip_settings);
} else {
auto& lp_settings = settings.get_pdlp_settings();
auto solution = cuopt::linear_programming::solve_lp(op_problem, lp_settings);
}
} catch (const std::exception& e) {
CUOPT_LOG_ERROR("Error: %s", e.what());
return -1;
}

return 0;
}

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# limitations under the License.

set(UTIL_SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/utilities/seed_generator.cu
${CMAKE_CURRENT_SOURCE_DIR}/utilities/logger_helper.cpp
${CMAKE_CURRENT_SOURCE_DIR}/utilities/logger.cpp
${CMAKE_CURRENT_SOURCE_DIR}/utilities/version_info.cpp
${CMAKE_CURRENT_SOURCE_DIR}/utilities/timestamp_utils.cpp)

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/dual_simplex/logger.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#pragma once

#ifdef CUOPT_LOG_ACTIVE_LEVEL
#include <cuopt/logger.hpp>
#include <utilities/logger.hpp>
#endif

#include <string>
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/linear_programming/cuopt_c.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
#include <cuopt/linear_programming/optimization_problem.hpp>
#include <cuopt/linear_programming/solve.hpp>
#include <cuopt/linear_programming/solver_settings.hpp>
#include <cuopt/logger.hpp>
#include <cuopt/utilities/timestamp_utils.hpp>
#include <utilities/logger.hpp>

#include <mps_parser/parser.hpp>

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/linear_programming/optimization_problem.cu
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
*/

#include <cuopt/error.hpp>
#include <cuopt/logger.hpp>
#include <mps_parser/writer.hpp>
#include <utilities/logger.hpp>

#include <cuopt/linear_programming/optimization_problem.hpp>
#include <mip/mip_constants.hpp>
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/linear_programming/solve.cu
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
#include <linear_programming/restart_strategy/pdlp_restart_strategy.cuh>
#include <linear_programming/step_size_strategy/adaptive_step_size_strategy.hpp>
#include <linear_programming/translate.hpp>
#include <linear_programming/utilities/logger_init.hpp>
#include <linear_programming/utilities/problem_checking.cuh>
#include <linear_programming/utils.cuh>
#include <utilities/logger.hpp>

#include <mip/mip_constants.hpp>
#include <mip/presolve/third_party_presolve.hpp>
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/linear_programming/solver_settings.cu
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@
#include <cuopt/error.hpp>
#include <cuopt/linear_programming/pdlp/pdlp_warm_start_data.hpp>
#include <cuopt/linear_programming/pdlp/solver_settings.hpp>
#include <cuopt/logger.hpp>
#include <math_optimization/solution_writer.hpp>
#include <mip/mip_constants.hpp>
#include <mps_parser/utilities/span.hpp>
#include <utilities/logger.hpp>

#include <raft/util/cudart_utils.hpp>

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/linear_programming/solver_solution.cu
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
*/

#include <cuopt/linear_programming/pdlp/solver_solution.hpp>
#include <cuopt/logger.hpp>
#include <math_optimization/solution_writer.hpp>
#include <mip/mip_constants.hpp>
#include <utilities/logger.hpp>

#include <raft/common/nvtx.hpp>
#include <raft/util/cudart_utils.hpp>
Expand Down
54 changes: 0 additions & 54 deletions cpp/src/linear_programming/utilities/logger_init.hpp

This file was deleted.

2 changes: 1 addition & 1 deletion cpp/src/math_optimization/solution_writer.cu
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
* limitations under the License.
*/

#include <cuopt/logger.hpp>
#include <raft/common/nvtx.hpp>
#include <utilities/logger.hpp>
#include "solution_writer.hpp"

#include <fstream>
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/math_optimization/solver_settings.cu
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
*/

#include <cuopt/linear_programming/solver_settings.hpp>
#include <cuopt/logger.hpp>
#include <mip/mip_constants.hpp>
#include <utilities/logger.hpp>

namespace cuopt::linear_programming {

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/mip/logger.cuh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

#pragma once

#include <cuopt/logger.hpp>
#include <utilities/logger.hpp>

namespace cuopt::linear_programming::detail {

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/mip/logger.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@

#pragma once

#include <cuopt/logger.hpp>
#include <utilities/logger.hpp>
2 changes: 1 addition & 1 deletion cpp/src/mip/presolve/third_party_presolve.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
*/

#include <cuopt/error.hpp>
#include <cuopt/logger.hpp>
#include <mip/mip_constants.hpp>
#include <mip/presolve/gf2_presolve.hpp>
#include <mip/presolve/third_party_presolve.hpp>
#include <utilities/logger.hpp>
#include <utilities/timer.hpp>

#include <raft/common/nvtx.hpp>
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/mip/solve.cu
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
#include <linear_programming/pdlp.cuh>
#include <linear_programming/restart_strategy/pdlp_restart_strategy.cuh>
#include <linear_programming/step_size_strategy/adaptive_step_size_strategy.hpp>
#include <linear_programming/utilities/logger_init.hpp>
#include <linear_programming/utilities/problem_checking.cuh>
#include <linear_programming/utils.cuh>
#include <utilities/logger.hpp>
#include <utilities/timer.hpp>
#include <utilities/version_info.hpp>

Expand Down
2 changes: 1 addition & 1 deletion cpp/src/mip/solver_solution.cu
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
*/

#include <cuopt/linear_programming/mip/solver_solution.hpp>
#include <cuopt/logger.hpp>
#include <mip/mip_constants.hpp>
#include <utilities/logger.hpp>

#include <limits>
#include <math_optimization/solution_writer.hpp>
Expand Down
2 changes: 1 addition & 1 deletion cpp/src/routing/solve.cu
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
* limitations under the License.
*/

#include <cuopt/logger.hpp>
#include <cuopt/routing/solve.hpp>
#include <routing/solver.hpp>
#include <utilities/logger.hpp>

namespace cuopt {
namespace routing {
Expand Down
Loading