GenericMappingTools / GenericMappingTools/GMT.jl

GMT.jl is not thread capable

Open
#564 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
221
Forks
36
Avg merge
1h 36m
Merged PRs (30d)
17

Description

Made this experiment
```
julia> Threads.nthreads()
6

julia> G = GMT.peaks(N=2000);

julia> @time for k=1:20 grdgradient(G, A=0); end
9.382858 seconds (160.01 M allocations: 2.683 GiB, 4.60% gc time)

julia> @time Threads.@threads for k=1:20 grdgradient(G, A=0); end
grdgradient [ERROR]: Option -n given more than once
grdgradient [ERROR]: Option -n parsing failure. Correct syntax:
...
```
The problem is very likely that all threads are using the same ``API`` session and mess follows as it has to be.
The solution seems to be to create a mechanism where each new thread launches a new ``gmt()`` process with its own ``API`` session.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.