Перейти к содержанию

Управление расчётами

При решении задач с использованием сервиса 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())

Данные возможности позволяют Пользователям оставить решение задачи в фоне и параллельно выполнять другие команды без риска потерять результат.