热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

rabit的安装与使用

首先需要从github将这个项目的存储库克隆到本地目录中。gitclonehttps:github.comdmlcrabit.git会在当前目录出现一个名为rabit的文件之后

首先需要从github将这个项目的存储库克隆到本地目录中。

git clone https://github.com/dmlc/rabit.git

会在当前目录出现一个名为rabit的文件

之后从进入rabit文件,里边内容如下:
在这里插入图片描述
产生lib文件
lib文件夹原本是空的,在lib里README.md是这么写的:
This folder holds the library file generated by the compiler. To generate the library file, type make in the project root folder. If you want mpi compatible library, type make mpi
所以需要将文件进行编译,产生lib文件。
Makefile文件已经存在rabit目录里了,我们只需要在rabit目录下输入make就可以了,会出现如下库文件:
在这里插入图片描述

这些文件的介绍如下:
List of Files


  • rabit.a The rabit package library

    Normally you need to link with this one

  • rabit_mock.a The rabit package library with mock test

    This library allows additional mock-test

  • rabit_mpi.a The MPI backed library


  1. Link against this library makes the program use MPI Allreduce
  2. This library is not fault-tolerant

  • rabit_empty.a Dummy package implementation

  1. This is an empty library that does not provide anything
  2. Only introduced to minimize code dependency for projects that only need
    single machine code

设置环境变量
库文件生成之后,需要添加环境变量CPLUS_INCLUDE_PATHLIBRARY_PATHLD_LIBRARY_PATH
C_INCLUDE_PATH 为头文件的搜索路径
LIBRARY_PATH为静态库搜索路径(编译时包含)
LD_LIBRARY_PATH为动态库搜索路径(链接时包含)

这三项分别设置为:

export CPLUS_INCLUDE_PATH=/home/.../rabit/include:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/home/.../rabit/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/home/.../rabit/lib:$LD_LIBRARY_PATH

三种方法如下:


  1. 修改profile文件:

vi /etc/profile

在文档末尾写入

export CPLUS_INCLUDE_PATH=/home/.../rabit/include:$CPLUS_INCLUDE_PATHexport LIBRARY_PATH=/home/.../rabit/lib:$LIBRARY_PATHexport LD_LIBRARY_PATH=/home/.../rabit/lib:$LD_LIBRARY_PATH

  1. 修改.bashrc文件:

vi ~/.bashrc

在文档末尾写入

export CPLUS_INCLUDE_PATH=/home/.../rabit/include:$CPLUS_INCLUDE_PATHexport LIBRARY_PATH=/home/.../rabit/lib:$LIBRARY_PATHexport LD_LIBRARY_PATH=/home/.../rabit/lib:$LD_LIBRARY_PATH

  1. 在Terminal命令行窗口中直接使用export命令,临时写入

export CPLUS_INCLUDE_PATH=/home/.../rabit/include:$CPLUS_INCLUDE_PATHexport LIBRARY_PATH=/home/.../rabit/lib:$LIBRARY_PATHexport LD_LIBRARY_PATH=/home/.../rabit/lib:$LD_LIBRARY_PATH

设置完成之后测试是否成功

编写测试文件rabittest.cpp

/* rabittest.cpp */
#include
#include
int main(int argc,char *argv[]) {std::cout <<"hellorabit\n";rabit::Init(argc, argv);std::cout <}

使用如下命令编译:

g++ -o rabittest rabittest.cpp -lrabit -std=gnu++0x

如果成功,会在当前目录出现一个可执行文件
在这里插入图片描述

之后使用./rabittest测试即可。

测试程序运行结果:
在这里插入图片描述

常见错误:
错误1:rabit.h: No such file or directory
在这里插入图片描述
环境变量设置出现错误,需要重新设置。

错误2:error: ‘nullptr’ was not declared in this scope
在这里插入图片描述
网上说是关于c++11的原因,在g++命令后加上-std=gnu++0x这一项就可以了


推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
author-avatar
慕容盼烟迎曼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有