-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Race-conditions with scratchspaces #381
Comments
I guess we either need some kinda of locking (but race free! which can is tricky, esp. if scratch is stored in
Alas, that won't work if the data in the scratch space hardcodes paths (which I have a nagging suspicion happens here??) |
I think this will affect other package using scratch spaces, so I also filed JuliaPackaging/Scratch.jl#26 |
I have also seen a few issues for julia regarding similar problems in the .julia folder with some Pkg operations.
One way to make that atomic is to make that insert operation just a symlink, but then we will end up with many unneeded such trees (and that extra indirection might cause other problems). Or we can probably generate the same tree in parallel (with
This scratchspace contains symlinks to files and directories in a few |
This should be fixed in Polymake 0.7, in my experiments with up to 24 parallel processes I did not see any errors running this script: using Distributed
@everywhere begin
using Pkg; Pkg.activate(@__DIR__)
Pkg.instantiate();
end
@everywhere begin
using Polymake
println(polytope.cube(3).F_VECTOR);
end |
I want to run some oscar code in parallel (e.g. on 12 cores).
When stating
@everywhere using Oscar
at the start of my script, this fails most times with slightly different errors. I have collected a few of them below:I guess that this arises from the scratchspace being regenerated multiple times at once and thus some race conditions there.
Minimal working example (probability for occurrence of the error is higher on machines with more cores):
My only workaround for now is a downgrade to v0.6.1.
Version information:
julia: 1.6.1 and 1.7.0
Oscar: 0.7.1
Polymake.jl: 0.6.2
Edit: added version information
The text was updated successfully, but these errors were encountered: