问题标签 [spack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
65 浏览

linux - ld:致命错误:无法使用--plugin:ld 是在没有插件支持的情况下编译的

我需要使用 x86_64 GNU/Linux 集群来分析一些软件包,例如带有 tau 的 superlu-dist。我正在使用 spack 安装 tau 版本 2.30.1。我应该使用的编译器是 gcc@7.1.0。安装给出了 tau 构建阶段的错误:

我尝试将 -fno-use-linker-plugin 添加到 cflags 中,但这没有帮助。编译器设置如下所示:

任何想法都受到高度赞赏。

0 投票
0 回答
19 浏览

spack - 如何根据包版本更改变体的默认值

我正在为新版本的软件包更新一个 spack package.py。在这个新版本中,构建选项的默认值已更改。以前,包默认使用 32 位整数,但当前(和未来)版本将默认使用 64 位整数。

这个包在 spack 中,并且有一个int64默认为False.

处理此问题的最佳方法是什么。安装没有指定变体的当前版本的用户会假设构建将使用 64 位整数,但安装先前版本的用户会假设构建将使用 32 位整数。

是否可以确定用户是否明确指定了变体?如果是这样,那么我可以根据用户是明确指定+int64还是~int64基于版本来更改行为。

是否可以根据版本设置变体的默认值?

有没有我忽略的更好的选择?谢谢。

0 投票
0 回答
74 浏览

environment-modules - 为 spack 的默认环境设置 MODULE_PATH 变量

最近,Spack 用于管理模块的机制(我指的是环境模块和 LMod)发生了一些变化,以允许更好地与 spack 环境集成(参见拉取请求 #23703)。

不幸的是,这也影响了 Spack 默认不再更新 MODULE_PATH 变量的事实;事实上,文档仍然报告说

如果您已经安装了支持的模块系统,您应该能够运行 moduleavail 或使用 -l spack 来查看已安装的模块文件。

但是,至少在我的机器上,在安装了几个包之后,moduleavail 命令没有显示任何新模块(我使用的是提交 9936182)。我想这是因为现在 Spack 想知道应该加载哪个环境。

当然,可以通过在 MODULE_PATH 环境变量中添加包含模块的目录来轻松解决问题,但我不确定这是最佳实践。有没有办法对spack说:“请加载默认环境的模块?”

谢谢

0 投票
1 回答
314 浏览

c++ - 更改不支持使用 compilers.yaml 文件编译 C++ 程序的 gcc 版本

我正在尝试hpctoolkit使用spack. 为了做到这一点,我执行了:

我无法执行最后一个命令,因为我收到以下错误:

它建议我通过显示以下消息来查看构建日志:

之前的文件包含:

在阅读一点 Spack 符号时,我了解到“@”指定了包版本,所以我猜我使用的 gcc 版本不支持编译 C++ 程序。

我应该如何使它支持编译 C++ 程序?请问有什么帮助吗?

0 投票
1 回答
550 浏览

c++ - 如何为 STL 制作 C++ 编译器支持模板?

我正在尝试hpctoolkit使用Spack. 为了做到这一点,我执行了:

我无法执行最后一个命令,因为我收到以下错误:

它建议我通过显示以下消息来查看构建日志:

之前的文件包含:

为了显示编译器,我使用了以下命令:

结果是:

为了摆脱“gcc@9.3.0”版本,我修改了 compilers.yaml,它是一个单独的文件,用于存储有关可用编译器的信息。

就我而言,我做了:

并找到(我只显示与 gcc 编译器相关的部分):

为了摆脱gcc@9.3.0,我只是删除了它的一部分。我现在验证编译器列表,我应该找到:

现在,当我执行命令时:

错误是不同的。我得到:

我认为 gcc@7.5.0 编译器安装错误,因为他告诉我它的可执行文件丢失或不可执行。

我尝试使用 gcc@7.5.0、gcc@9.3.0 和 gcc@10.2.0 但徒劳无功..(我想提一下所有编译器都安装在/usr/bin

请问有什么帮助吗?

0 投票
0 回答
73 浏览

python - 有没有办法告诉 `spack env activate` 只通过文件系统带来 python 包?

假设我有一个my_env包含大量二进制和 python 包的环境。

然后我这样做:

然后我LD_LIBRARY_PATH将包含

并将PYTHONPATH包含

这意味着我可以通过其文件系统视图访问环境的包。到目前为止,一切都很好。

问题是PYTHONPATH它还包含包的显式路径,例如

在我看来,这些路径是多余的,因为 python 解释器已经可以通过

小路。那么为什么它会被所有这些路径超载呢?加载环境时有没有办法删除它们?

注意:我想知道这是否是由于这对于RPATH是可能的LD_LIBRARY_PATH,但在我看来,RPATH这里没有必要,因为文件系统视图中也存在依赖项......

0 投票
0 回答
20 浏览

spack - 为什么 spack 不向环境文件系统视图添加外部包?

假设我在my_env

还假设我有外部包,例如系统安装的openmpi. 然后我生成文件系统视图:

然后我得到这个警告:

事实上,二进制文件openmpi并没有符号链接到我的文件系统视图中。我的问题是:这样做有什么特别的原因吗?有没有办法告诉 spack 它也应该将外部包放在文件系统视图中?

[注意,与文件系统视图相反,通过 生成模块时包含外部包spack env loads]

0 投票
0 回答
11 浏览

spack - 如何更改spack安装包的位置?

有没有办法让 spack 在我选择的位置安装软件?

例如,如果我这样做:

然后 spack 会将 netcdf-c 安装在如下目录中:

是否可以让 spack 在 /usr/local 上安装 netcdf-c ?

0 投票
0 回答
30 浏览

spack - 如何在没有互联网访问的机器上具体化 spack 环境?

我想使用 spack 安装各种软件包并在一台超级计算机上进行编译,出于所有意图和目的,该计算机无法直接访问互联网。我可以将文件发送到这台机器,比如 spack 存储库或包存档,但是从这台机器上,我无法访问互联网,因此不能只是spack install.

我最初的想法是在目标机器上创建一个 spack 环境并使用它spack concretize来冻结我的依赖项,然后使用这个具体化环境来下载适当的档案,spack fetch然后将它们发送到机器上进行编译,但spack需要下载并安装clingo到工作,因为无法访问互联网而无法工作。

我尝试使用相同的方法,clingo但遗憾的是我正在使用的两台机器不共享相同的架构,因此我无法将 clgo 与我的笔记本电脑上的超级计算机的架构具体化。

我不知道什么可以解决这个问题。

0 投票
1 回答
18 浏览

linux - Spack - 错误:内核配置无效

我正在尝试按照有关如何安装 OpenMPI 的说明使用 Spack 安装软件包。

当我安装像 xpmem 这样的软件包时,我收到第一个错误,说ERROR: Kernel configuration is invalid. 稍后在输出中我得到编译错误,如error: passing argument 4 of ‘proc_create_data’ from incompatible pointer type.

我已经尝试按照此处完成的方式重新安装 linux-headers 。此外,我尝试使用不同版本的 GCC 编译器以及 xpmem 包,并使用 Spack 推荐的干净 PATH 变量。但似乎没有什么可以解决它。同样在另一台机器上它产生了同样的错误(两者都是 Ubuntu 20.04.3)。

有谁知道可能出了什么问题?