-
Notifications
You must be signed in to change notification settings - Fork 348
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
inconsistent multithread (-x
option) behavior
#8520
Comments
👋 Thanks for opening your first issue here! Please make sure you filled out the template with as much detail as possible. We appreciate that you took the time to contribute! Please make sure you read our Contributing Guide and abide by our Code of Conduct. |
-x
option) behavior-x
option) behavior
OK, I've worked a bit on this and ended up with #8523 One of the reasons for the inconsistency is that while most parallelized codes use OpenMP, The issue with Also clarified the -x in Let's hope that the PR is good. For the moment Mac seems to be still resisting. |
Addressed bu #8523 |
Hi, all. Thanks for your hard work with GMT, and apologies in advance if this issue is improperly tagged, etc.! (I'm filing this as a bug because a more realistic label like "non-urgent improvement" isn't available.)
Description of the problem
GMT6 (compiled with OpenMP/GLIB support) appears to exhibit inconsistent multi-thread behavior. Specifically, when interpolating via
surface
with flag-Vi
, GMT reports:surface [INFORMATION]: Enable all available threads (up to <MY_CPU's_MAX_THREADS>)
,even when the
-x
option is not set. However, when following a call tosurface
with one togrdfilter
(also with flag-Vi
) in the same script, GMT does not report the number of enabled threads, and lists output sequentially, i.e.,That said, when explicitly passing the
-x
option togrdfilter
, output lines are reported to be processed non-sequentially, and Task Manager shows greater CPU utilization by GMT. This would suggest thatsurface
is parallelized by default, butgrdfilter
is not.The documentation added to my confusion:
surface
: the 6.5.0 web documentation makes no mention of parallelization or-x
, but the-x
option is included when callinggmt surface --help
from the command line.grdfilter
: the 6.5.0 web docs andhelp
both include a brief description of the-x
flag.In all cases where present, the
-x
docstring is fromgmt/doc/rst/source/explain_core.rst
-x
must be set explicitly to enable multi-threadinggmt.conf
thread count settings, specifically to lower the number of threads used.Other notes:
-x
(e.g., #8300) to possibly be mindful of."Fix" ideas
grdfilter
(and any other affected modules) by default when supported?explain_core
documentation?System information
gmt --version
): GMT 6.5.0 (installed via miniconda and run in VSCode via Git Bash)The text was updated successfully, but these errors were encountered: