У меня есть модуль Julia, с которым мне нужно взаимодействовать с моей кодовой базой python. Для этого я использую pyjulia
так.
import julia
j = julia.Julia()
j.include('./simulation/n-dof/dynamics.jl')
j.using("Dynamics")
print(j.sim([1,2,3],[1,2,3]))
Однако это замедляет все, поскольку Julia необходимо скомпилировать модуль, который я использую.
Модуль использует функцию экспорта 1 и внутренне использует ForwardDiff
для некоторых вычислений. Он вычисляет производные от динамической системы. Модуль, скорее всего, не изменится в обозримом будущем. Я читал о __precompile()__
и PackageCompiler.jl
но я не совсем понимаю внутреннюю работу и как ее использовать.
Таким образом, есть способ либо кэшировать модуль в изображении системы Julia (из чего я понимаю, почему чистый запуск Julia выполняется быстро)? Или лучше скомпилировать его в двоичный файл, а потом как-то назвать его через python? Мне нужно передать аргументы экспортируемой функции.
Пример модуля динамики, который я использую для тестирования:
module Dynamics
function sim(a,b)
return 1
end
export sim
end