1db6cd5d16
* Make -j flag less exceptional The -j flag in spack behaves differently from make, ctest, ninja, etc, because it caps the number of jobs to an arbitrary number 16. Spack will behave like other tools if `spack install` uses a reasonable default, and `spack install -j <num>` *overrides* that default. This will be particularly useful for Spack usage outside of a traditional HPC context and for HPC centers that encourage users to compile on login nodes with many cores instead of on compute nodes, which has become increasingly common as individual nodes have more cores. This maintains the existing default value of min(num_cpus, 16). However, as it is right now, Spack does a poor job at determining the number of cpus on linux, since it doesn't take cgroups into account. This is particularly problematic when using distributed builds with slurm. This PR also introduces `spack.util.cpus.cpus_available()` to consolidate knowledge on determining the number of available cores, and improves core detection for linux. This should also improve core detection for Docker/ Kubernetes, which also use cgroups. |
||
---|---|---|
.. | ||
_gh_pages_redirect | ||
_static | ||
build_systems | ||
example_files | ||
images | ||
.gitignore | ||
_spack_root | ||
basic_usage.rst | ||
binary_caches.rst | ||
build_settings.rst | ||
build_systems.rst | ||
chain.rst | ||
command_index.in | ||
conf.py | ||
config_yaml.rst | ||
configuration.rst | ||
containers.rst | ||
contribution_guide.rst | ||
developer_guide.rst | ||
dockerhub_spack.png | ||
environments.rst | ||
extensions.rst | ||
features.rst | ||
getting_started.rst | ||
index.rst | ||
known_issues.rst | ||
Makefile | ||
mirrors.rst | ||
module_file_generation.svg | ||
module_file_support.rst | ||
package_list.rst | ||
packaging_guide.rst | ||
pipelines.rst | ||
repositories.rst | ||
requirements.txt | ||
spack.yaml | ||
workflows.rst |