slimgroup / JUDI.jl

Julia Devito inversion.
https://slimgroup.github.io/JUDI.jl
MIT License
96 stars 29 forks source link

LoadError: MethodError: no method matching Model(::Tuple{Int64, Int64}, ::Tuple{Float64, Float64}, ::Tuple{Int64, Int64} #119

Closed WYJLCYWHZ closed 2 years ago

WYJLCYWHZ commented 2 years ago

Hi, I am getting an error while running the example program in examples/compressive_splsrtm/Sigsbee2A/rtm_sigsbee.jl

ERROR: LoadError: MethodError: no method matching Model(::Tuple{Int64, Int64}, ::Tuple{Float64, Float64}, ::Tuple{Int64, Int64}, ::Matr Closest candidates are: Model(::Any, ::Any, ::Any, ::Any, ::Any) at ~/.julia/packages/JUDI/Xrqx6/src/TimeModeling/Types/ModelStructure.jl:267 Model(::Union{Vector{Int32}, Vector{Int64}, Tuple{Integer, Integer}, Tuple{Integer, Integer, Integer}}, ::Union{Tuple{AbstractFloat, ctor{AbstractFloat}}, ::Union{Tuple{AbstractFloat, AbstractFloat}, Tuple{AbstractFloat, AbstractFloat, AbstractFloat}, Vector{AbstractFckages/JUDI/Xrqx6/src/TimeModeling/Types/ModelStructure.jl:277 Model(::Union{Vector{Int32}, Vector{Int64}, Tuple{Integer, Integer}, Tuple{Integer, Integer, Integer}}, ::Union{Tuple{AbstractFloat, ctor{AbstractFloat}}, ::Union{Tuple{AbstractFloat, AbstractFloat}, Tuple{AbstractFloat, AbstractFloat, AbstractFloat}, Vector{AbstractFling/Types/ModelStructure.jl:289

.. Stacktrace: [1] top-level scope @ ~/.julia/environments/v1.7/rtm_sigsbee.jl:13 in expression starting at /public/home/user/.julia/environments/v1.7/rtm_sigsbee.jl:13

It looks like the error is caused by a version update. Because there was no error in the previous version.

The current version is julia1.7+JUDI3.0.2, the previous version is julia1.4+JUDI3.0.0.

Do you have any suggestion for me. thank you.(^▽^)

mloubout commented 2 years ago

looks like some type constraint (expecxt float for origin) gives me ~1h will open PR for fix. In the mean time Float32.(M["o"]) should fix it

WYJLCYWHZ commented 2 years ago

looks like some type constraint (expecxt float for origin) gives me ~1h will open PR for fix. In the mean time Float32.(M["o"]) should fix it

Wow, this does work. By the way, I would like to ask one more question.

I'm looking for a way to run simple parallel processes across multiple nodes in a PBS cluster.

Currently, I can run it on a single node, using an environment variable in the PBS script to set the number of threads.

I found a reference to clustermanager.jl, but no clear working example of how to use it on PBS. For example: is addprocs_pbs in the file also responsible for the script part or do I still need to run the pbs script as usual and this function is called in the julia file? Do you have an example please?(^▽^)

mloubout commented 2 years ago

I haven't used PBS to run parallel julia so I am afraid I won't be of much help. There seem to be a small explanation here

https://github.com/juliohm/julia-distributed-computing

which seems to says that you need a standard PBS machine file and call julia with it. Then you can use addprocs_pbs in your code..

WYJLCYWHZ commented 2 years ago

I haven't used PBS to run parallel julia so I am afraid I won't be of much help. There seem to be a small explanation here

https://github.com/juliohm/julia-distributed-computing

which seems to says that you need a standard PBS machine file and call julia with it. Then you can use addprocs_pbs in your code..

Thanks for your answer. These work great for me.(^▽^)