如何使用特定库通过 PyJulia 创建 Julia 的系统映像?
How to create an sysimage of Julia through PyJulia with a specific library?
python3 -m julia.sysimage sys_py.so
构建镜像。
但是当将此图像应用到文件时,我没有观察到任何加速。这很可能是因为我的图书馆不在图像中。如何解决?
例如我的主要 Julia 文件 main.jl
。
using DifferentialEquations
a = solve(
ODEProblem((x, p, t) -> 4.0, 1.0, (0.50 - 0.50, 0.50)),
BS3(),
abstol = 1e-8,
)(
0.50,
)
println(a)
在 12.5 秒内由 julia main.jl
执行。
我在 Julia 本人的帮助下为他创建了一个图像:
using PackageCompiler
create_sysimage(
["DifferentialEquations"],
sysimage_path = "sysimage.so",
precompile_execution_file = "main.jl",
)
在这种情况下,通过 julia --sysimage sysimage.so
命令的执行时间为 1.5 秒。也就是说,图像有效。
如果我用 PyJulia 编写 运行 它,那么它执行所有相同的 12.5 秒。
from julia import Main as jl
jl.eval("using DifferentialEquations")
result = jl.eval("""
a = solve(
ODEProblem((x, p, t) -> 4.0, 1.0, (0.50 - 0.50, 0.50)),
BS3(),
abstol = 1e-8,
)(
0.50,
)
"""
)
print(result)
如果我在 python3 -m julia.sysimage sys.so
命令的帮助下使用 PyJulia 生成图像,那么所有这些都被撕毁并且无济于事。代码在 12.5 秒内执行。我的代码:
from julia.api import LibJulia
api = LibJulia.load()
api.sysimage = "sys_py.so"
api.init_julia()
from julia import Main as jl
jl.eval("using DifferentialEquations")
result = jl.eval("""
a = solve(
ODEProblem((x, p, t) -> 4.0, 1.0, (0.50 - 0.50, 0.50)),
BS3(),
abstol = 1e-8,
)(
0.50,
)
"""
)
print(result)
我想快速导入 DifferentialEquations 库。我如何使用 PyJulia 实现此目的?
我无法启动 PyJulya。
但我发现了一个有趣的 JuliaCall 库。
还没有实现系统镜像的对接,不过这也没什么大不了的
我把PackageCompiler生成的系统镜像简单复制替换成了默认的系统镜像
我用的是docker,所以不用担心系统Julia的变化。
在这种情况下,python 库工作得很好。
但是,不要在此图像中放置 python调用库。
突然间它会帮助某人。
python3 -m julia.sysimage sys_py.so
构建镜像。
但是当将此图像应用到文件时,我没有观察到任何加速。这很可能是因为我的图书馆不在图像中。如何解决?
例如我的主要 Julia 文件 main.jl
。
using DifferentialEquations
a = solve(
ODEProblem((x, p, t) -> 4.0, 1.0, (0.50 - 0.50, 0.50)),
BS3(),
abstol = 1e-8,
)(
0.50,
)
println(a)
在 12.5 秒内由 julia main.jl
执行。
我在 Julia 本人的帮助下为他创建了一个图像:
using PackageCompiler
create_sysimage(
["DifferentialEquations"],
sysimage_path = "sysimage.so",
precompile_execution_file = "main.jl",
)
在这种情况下,通过 julia --sysimage sysimage.so
命令的执行时间为 1.5 秒。也就是说,图像有效。
如果我用 PyJulia 编写 运行 它,那么它执行所有相同的 12.5 秒。
from julia import Main as jl
jl.eval("using DifferentialEquations")
result = jl.eval("""
a = solve(
ODEProblem((x, p, t) -> 4.0, 1.0, (0.50 - 0.50, 0.50)),
BS3(),
abstol = 1e-8,
)(
0.50,
)
"""
)
print(result)
如果我在 python3 -m julia.sysimage sys.so
命令的帮助下使用 PyJulia 生成图像,那么所有这些都被撕毁并且无济于事。代码在 12.5 秒内执行。我的代码:
from julia.api import LibJulia
api = LibJulia.load()
api.sysimage = "sys_py.so"
api.init_julia()
from julia import Main as jl
jl.eval("using DifferentialEquations")
result = jl.eval("""
a = solve(
ODEProblem((x, p, t) -> 4.0, 1.0, (0.50 - 0.50, 0.50)),
BS3(),
abstol = 1e-8,
)(
0.50,
)
"""
)
print(result)
我想快速导入 DifferentialEquations 库。我如何使用 PyJulia 实现此目的?
我无法启动 PyJulya。
但我发现了一个有趣的 JuliaCall 库。
还没有实现系统镜像的对接,不过这也没什么大不了的
我把PackageCompiler生成的系统镜像简单复制替换成了默认的系统镜像
我用的是docker,所以不用担心系统Julia的变化。 在这种情况下,python 库工作得很好。
但是,不要在此图像中放置 python调用库。
突然间它会帮助某人。