Julia:ctrl+c 不打断
Julia: ctrl+c does not interrupt
我在 VScode 中使用 REPL 并试图修复卡在某个包中的代码。我想通过查看堆栈跟踪找出哪个进程正在占用时间,但不能中断,因为 REPL 不响应 ctrl+c。我不小心按了 ctrl+x,屏幕上显示了 ^X。
我正在使用 JuMP 和 GLPK,所以它可能会卡在那里。但是,我没有看到任何输出。
我也很感激任何有关找出导致它卡住的进程的提示。
中断未在 GLPK.jl 中实现。我已经打开了一个问题:https://github.com/jump-dev/GLPK.jl/issues/171(但它不太可能很快得到修复)。
如果您有兴趣为 JuMP 做贡献,这是一个很好的入门问题。您可以查看 Gurobi.jl 代码,了解我们如何在那里处理中断作为灵感。
我开始使用 GLPK.jl 并且我还发现它会在大问题上“挂起”。但是,我建议尝试使用 Cbc.jl 求解器。它有一个时间限制参数,该参数将在设定的秒数内中断求解器。我发现它可以产生高质量的结果。 (或者您可以使用 Cbc 进行 Dev/QA 测试以确定可能导致挂起的原因并切换到 GLPK 以进行生产运行。)
您可以使用 seconds 参数设置时间限制,如下所示。
对于较新的软件包版本:
model = Model(optimizer_with_attributes(Cbc.Optimizer
,"seconds" => 60
,"threads" => 4
,"loglevel" => 0
,"ratioGap" => 0.0001))
或者对于旧的软件包版本是这样的:
model = Model(with_optimizer(Cbc.Optimizer
,seconds=60
,threads=4
,loglevel=0
,ratioGap=0.0001))
我在 VScode 中使用 REPL 并试图修复卡在某个包中的代码。我想通过查看堆栈跟踪找出哪个进程正在占用时间,但不能中断,因为 REPL 不响应 ctrl+c。我不小心按了 ctrl+x,屏幕上显示了 ^X。
我正在使用 JuMP 和 GLPK,所以它可能会卡在那里。但是,我没有看到任何输出。
我也很感激任何有关找出导致它卡住的进程的提示。
中断未在 GLPK.jl 中实现。我已经打开了一个问题:https://github.com/jump-dev/GLPK.jl/issues/171(但它不太可能很快得到修复)。
如果您有兴趣为 JuMP 做贡献,这是一个很好的入门问题。您可以查看 Gurobi.jl 代码,了解我们如何在那里处理中断作为灵感。
我开始使用 GLPK.jl 并且我还发现它会在大问题上“挂起”。但是,我建议尝试使用 Cbc.jl 求解器。它有一个时间限制参数,该参数将在设定的秒数内中断求解器。我发现它可以产生高质量的结果。 (或者您可以使用 Cbc 进行 Dev/QA 测试以确定可能导致挂起的原因并切换到 GLPK 以进行生产运行。)
您可以使用 seconds 参数设置时间限制,如下所示。
对于较新的软件包版本:
model = Model(optimizer_with_attributes(Cbc.Optimizer
,"seconds" => 60
,"threads" => 4
,"loglevel" => 0
,"ratioGap" => 0.0001))
或者对于旧的软件包版本是这样的:
model = Model(with_optimizer(Cbc.Optimizer
,seconds=60
,threads=4
,loglevel=0
,ratioGap=0.0001))