如何利用Julia的实时预编译?启动函数两次?



假设我通过bash脚本启动Julia:

for i in {1..10}; do for j in 0.1 0.5 1 2 5 10; do j7 src/some_script.jl $i $j; done ; done

目前,我在some_script.jl中做以下操作,以便编译时间更快:

# some_script.jl
main(i, j)
some_fct(time_limit=20, i, j) # time_limit is 20s
some_fct(time_limit=3600, i, j) # time limit is one hour
end
main(parse(Int, ARGS[1]), parse(Int, ARGS[2]))

我这样做对吗?由于第一次发射,some_fct的第二次执行会更快吗?

编辑:作为对Ashlin Harris的回答的澄清。我的for循环没有预编译是正常的,因为我希望每个启动都是独立的。然而,对于给定的ij,我希望我的脚本利用实时预编译。这就是为什么我启动了我的函数两次,希望它的第二次启动会更快。最后,我在想,这是否:
# some_script.jl
main(i, j)
some_fct(time_limit=20, i, j) # time_limit is 20s
some_fct(time_limit=3600, i, j) # time limit is one hour
end
main(1,2)

对于some_fct来说比这个更好:

# some_script.jl
main(i, j)
some_fct(time_limit=3600, i, j) # time limit is one hour
end
main(1,2)

?

Bash脚本在每次循环迭代时启动Julia脚本。这不会保留任何预编译,可能会超过脚本内部的任何优化。相反,您应该完全用Julia编写循环,以利用任何预编译。

相关内容

  • 没有找到相关文章

最新更新