【问题标题】:What is -lnuma and what program uses it for compilation?什么是 -lnuma 以及什么程序使用它进行编译?
【发布时间】:2012-02-22 09:03:36
【问题描述】:

我正在 Linux 桌面上使用 openmpi 和 mpicxx 编译消息传递程序。我的 makefile 执行以下操作:

mpicxx -c readinp.cpp
mpicxx -o exp_fit driver.cpp readinp.o 

此时我收到以下错误:

/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld: cannot find -lnuma

我的问题是:

什么是-lnuma?它在用什么?我应该如何链接到它?

【问题讨论】:

    标签: linux compilation linker mpi


    【解决方案1】:

    感谢乔纳森·杜尔西!

    在 Ubuntu 上,软件包名称为 libnuma-dev。
    apt-get install libnuma-dev

    【讨论】:

      【解决方案2】:

      构建脚本找不到 numa 库 - NUMA(非统一内存访问)。 -l 选项告诉链接器链接库,但您的系统以太没有安装正确的,或者您的链接器搜索路径不完整/错误。

      尝试在您的包管理器(apt 或 rpm)中查询包 libnuma。

      【讨论】:

      • 我知道其他人在这个系统上使用 OpenMPI 进行编译。我的用户帐户是否可能根本没有访问权限?我需要添加库所在的路径吗?如果是这样,我如何找到所说的路径?
      • 这可能取决于您的发行版在哪里可以找到这些东西。大多数发行版将二进制文件和头文件分离到像“libnuma”和“libnuma-devel”这样的包中。尝试搜索两者。如果已安装,您应该能够查询路径(例如 rpm -ql libnuma 或 dpkg -L libnuma)。
      【解决方案3】:

      OpenMPI,我认为是 mpich2,使用libnuma(“Linux 内核支持的 NUMA(非统一内存访问)策略的简单编程接口”)来实现内存关联——以确保特定MPI 任务靠近运行任务的核心,而不是完全保存在另一个套接字上的缓存中。这对于多核节点的性能很重要。

      如果您的链接器找不到库,您可能需要使用 YaST 安装 libnuma-devel。

      【讨论】:

        【解决方案4】:

        我在安装了 NUMA 库的远程服务器上工作时遇到了同样的错误。特别是,文件/usr/lib64/libnuma.so.1 存在。链接器似乎只查找名称为libnuma.so 的文件。创建符号链接

        ln -s /usr/lib64/libnuma.so.1 /usr/lib64/libnuma.so
        

        here 所述,可能有效,但就我而言,我无权在/usr/lib64 中创建文件。我通过在我有写权限的其他位置创建符号链接来解决这个问题:

        ln -s /usr/lib64/libnuma.so.1 /some/path/libnuma.so
        

        然后将此路径添加到编译标志。在你的情况下,这将是

        mpicxx -L/some/path -o exp_fit driver.cpp readinp.o
        

        在我的较大构建过程(编译fftw)的情况下,我添加了LDFLAGS 环境变量的路径,

        export LDFLAGS="${LDFLAGS} -L/some/path"
        

        解决了这个问题。

        【讨论】:

        • 正确的解决方法是让您的系统管理员安装开发包(libnuma-dev 在 ubuntu 上,numactl-devel 在 RHEL 上,...)。 libnuma 用于构建 Open MPI,但大多数 MPI 应用不太可能直接使用它(这意味着 libnuma.so.1 在运行时应该足够了)
        猜你喜欢
        • 2022-09-22
        • 2011-06-18
        • 1970-01-01
        • 1970-01-01
        • 2014-03-04
        • 1970-01-01
        • 2012-09-12
        • 2014-05-27
        相关资源
        最近更新 更多