一、下载light-lda源码
1、wget https://github.com/Microsoft/lightlda
2、unzip lightlda-master.zip ,cd lightlda-master
3、修改 build.sh中,将
git clone -b multiverso-initial git@github.com:Microsoft/multiverso.git替换为:
git clone -b multiverso-initial https://github.com/Microsoft/multiverso.git
拉取multiverso
Smultiverso(DMTK):是一个标准c++lib库,是一个基于框架的参数服务器,用来在多台机器上训练大数据的机器学习模型,提供了友好的api接口,使用者不必考虑分布式模型存储和操作,内部线程和内部进程间的交互,多线程的管理,只需要专注于机器学习的逻辑:数据,模型和训练。
Libzmq:zeroMq轻量级的消息内核继承了标准的socket接口,具有定制化消息中间件产品的特点,zeroMQ socke提供了异步消息队列,多消息模式,消息过滤的抽象,无缝对接多种传输协议。
mpich-3.0.4:是一个高性能便携式Message Passing Interface标准的实现,将线程的管理和交互分离。
二、检查gcc的版本
gcc的版本要求是gcc-4.8.5,更新升级gcc的方法如下:
1、下载源码
wget https://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz
2、编译安装 GCC 需要依赖 mpc,mpfr,gmp包。好在 GCC 源码里自带脚本可以轻松下载依赖包。
tar zxf gcc-4.8.5.tar.gz
cd gcc-4.8.5
./contrib/download_prerequisites
3、配置
mkdir gcc-build-4.8.5
cd gcc-build-4.8.5
../configure --prefix=/usr --enable-checking=release --enable-languages=c,c++ --disable-multilib
gcc 编译参数说明:
(1)--prefix 为了避免安装后系统里出现多个版本的 GCC,这里直接将编译安装的目录指定为 /usr,如果不指定–prefix,则会默认安装到 /usr/local 下。
(2) --enable-languages //指定 gcc 能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,java
(3)--disable-multilib //默认gcc 能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。
4、编译安装
make –j4 && make install
5、完成后,看看使用gcc的哪个目录下的,解决冲突的方法
which gcc 如果显示的是/usr/bin/gcc
mv /usr/bin/gcc /usr/bin/gcc4.4.7
ln -s /usr/local/bin/gcc(新gcc) /usr/bin/gcc
另外,g++, cc, c++这几个命令也要改
mv /usr/bin/g++ /usr/bin/g++4.4.7
ln -s /usr/local/bin/g++(新) /usr/bin/g++
mv /usr/bin/cc /usr/bin/cc4.4.7
ln -s /usr/local/bin/cc(新) /usr/bin/cc
mv /usr/bin/c++ /usr/bin/c++4.4.7
ln -s /usr/local/bin/c++(新) /usr/bin/c++
三、安装light-lda
cd lightlda-master
执行sh build.sh
完成后,将libzmq.so.5加入链接路径中,具体操作:
(1)进入到 etc 下 cd /etc
(2)编辑 ld.so.conf ,sudo vim ld.so.conf
(3)加入 libzmq.so 的路径 lightlda-master/multiverso/third_party/lib下
保存之后 再执行命令ldconfig
测试light-lda方法:
(1)cd example
(2)sh nytimes.sh