phil
phil

Reputation: 33

Parallel processing in Julia throws errors

My understanding is that parallelization is included by default in a base Julia installation.

However, when I try to use it, I am getting errors that the functions and macros are not defined. For example:

nprocs()

Throws an error:

ERROR: UndefVarError: nprocs not defined
Stacktrace:
 [1] top-level scope at none:0

Nowhere in any Julia documentation can I find mention of any packages that need to be included in order to use these functions. Am I missing something here?

I am using Julia version 1.0.5 inside the JuliaPro/Atom IDE

Upvotes: 1

Views: 341

Answers (2)

Once you know that nproc needs to be used, there exist a couple of options to find where it is defined.

A search through the documentation can help: https://docs.julialang.org/en/v1/search/?q=nprocs

Without leaving the Julia REPL, and even before nprocs gets imported in your session, you can use apropos in order to find more about it and determine that it is needed to import the Distributed package:

julia> apropos("nprocs")
Distributed.nprocs
Distributed.addprocs
Distributed.nworkers

An other way of using apropos is via the help REPL mode:

julia> # type `?` when the cursor is right after the prompt to enter help REPL mode

# note the use of double quotes to trigger "apropos" instead of a regular help query
help?> "nprocs"
Distributed.nprocs
Distributed.addprocs
Distributed.nworkers

Previous options work well in the case of nprocs because it is part of the standard library. JuliaHub is another option which allows looking for things more broadly, in the entire Julia ecosystem. As an example, looking for nprocs in JuliaHub's "Doc Search" tool also returns relevant results: https://juliahub.com/ui/Documentation?q=nprocs

Upvotes: 1

phil
phil

Reputation: 33

I figured it out. I'll leave this up for anyone else who is having this problem.

The solution is to import the Distributed package using:

using Distributed

Why this is not included in the documentation I do not know.

Upvotes: 2

Related Questions