一、下載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 [email protected]: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