繁体   English   中英

如何解决 hwloc 标头和库之间的不匹配问题,在 Collab 上使用 v1 标头和 v2 库?

[英]How to solve Mismatch between hwloc headers and library, using v1 headers with v2 library on Collab?

提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文

我在 Google Colab 上使用 Gromacs 已经一年多了。 我已经使用https://colab.research.google.com/github/pb3lab/ibm3202/blob/master/tutorials/lab07_MDsims.ipynb这种方法安装了 Gromacs,它工作得非常顺利,但昨晚当我运行单元时它,它显示了一些我不习惯看到的有线错误在此处输入图像描述

然后我试图在网上找到解决方案我遇到了这段代码

!sudo  ln  -s /usr/lib/x86_64-linux-gnu/libhwloc.so /usr/lib/x86_64-linux-gnu/libhwloc.so.5

然后它起作用了,但是当我想运行最后一个单元时,它是实际的 MD 模拟,它需要计算能力和 gpu 我得到了另一个错误。

Assertion failed: Condition: (hwloc_get_api_version() < 0x20000) Mismatch between hwloc headers and library, using v1 headers with v2 library

我真的不知道如何解决这个问题,我真的需要它来工作。 如果你能帮助我,那就太好了。

这似乎不是 Python 的特定问题,而是 Gromacs 的问题以及您如何安装它(除非您发布的最后一个错误来自 python 代码,但基于您发布的第一个链接我不相信应该是这样)。 您运行的软件(大概是gmx )来获取最后一个错误是使用hwloc的 v1 标头构建的,它似乎是一个硬件位置库,但是您已符号链接到/usr/lib/x86_64-linux-gnu/libhwloc.so.5的共享 object /usr/lib/x86_64-linux-gnu/libhwloc.so.5似乎是库的 v2 版本,它与 v1 标头不兼容。 可能有一些 function 调用根本无法处理这种不匹配,开发人员确保版本匹配是正确的。

我认为最简单的解决方案是让您尝试找到 v1 shared object 并像您之前对ln所做的那样链接它。 在理想情况下,您可以使用ls /usr/lib/x86_64-linux-gnu | grep hwloc找到它。 ls /usr/lib/x86_64-linux-gnu | grep hwloc这是一个命令,用于显示该目录中包含字符串hwloc的所有库。

如果有几个选项,请尝试将其中几个链接到正确的路径,看看它们是否有效; 我怀疑你会破坏任何东西。 如果只有您已经向我们展示的两个选项,那么您必须安装旧版本的hwloc 这可能会通过安装 Gromacs 来完成,但您必须查看使用wget下载的 tarball 的内容。 如果它不存在,那么您可能必须通过您的系统 package 经理降级hwloc 我不熟悉 Google Colab 中的这个过程,但我敢肯定网上有很多教程。

希望有所帮助,

--K

我像这样安装了 package,它起作用了,谢谢你们。

!wget https://download.open-mpi.org/release/hwloc/v1.11/hwloc-1.11.13.tar.gz

!tar xzf hwloc-1.11.13.tar.gz
!cd /content/hwloc-1.11.13
! /content/hwloc-1.11.13/configure
!make
!sudo make install
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM