Управление расчётами
При решении задач с использованием сервиса ArhiCloud предоставляются дополнительные возможности для управления расчётами. Каждый расчёт на облачной инфраструктуре характеризуется идентификатором, по которому в любой момент можно получить статус решения и решение задачи.
После запуска расчёта с использованием методов model.solve_remote()
или model.solve_remote_async()
метод model.get_calc_uid()
позволяет получить и сохранить идентификатор расчёта и использовать его для дальнейшего повторного обращения к сервису.
Пример
Рассмотрим следующий пример. В данном примере осуществляется загрузка задачи из файла и запуск расчёта. При этом получение результата осуществляется уже после решения задачи по её идентификатору.
import arhiplexpy
if __name__ == "__main__":
model = arhiplexpy.Model()
model.read("blp-ic98.mps")
model.set_dbl_param("mip_rel_gap", 0.1)
model.set_dbl_param("time_limit", 70)
model.set_log_file("arhi_cloud.log")
result = model.solve_remote("name_mapping.txt")
uid = model.get_calc_uid()
result.write_solution("blp-ic98.mps")
result_by_uid = arhiplexpy.SolveResult(uid, "name_mapping.txt")
print("Objective:", result_by_uid.get_objective_value())
print("Solve time:", result_by_uid.get_solve_time())
Данные возможности позволяют Пользователям оставить решение задачи в фоне и параллельно выполнять другие команды без риска потерять результат.