Giter VIP home page Giter VIP logo

maiter's Introduction

Maiter是一个基于增量累积迭代计算的异步图处理框架,项目源代码来自:github.com/zhangyf-neu/maiter,这里只是部署Maiter,并在单机和集群环境下执行pagerank算法。

系统环境

OS:Ubuntu18.04

CPU:1 vCore

RAM:1024 MB

Storage:25GB SSD

安装

# 安装依赖
sudo apt install build-essential cmake g++ libboost-dev libboost-python-dev libboost-thread-dev liblzo2-dev libnuma-dev libopenmpi-dev libprotobuf-dev libcr-dev libibverbs-dev openmpi-bin protobuf-compiler liblapack-dev

# 编译,并做一些准备工作
bash build.sh

运行

Running Maiter on single machine

bash pagerank.sh

image-20201217220725243

Running Maiter on a cluster

这里使用三台机器做实验,一台为master,另外两个为worker,每个worker同时处理两个maiter task。

master:158.247.214.67 
worker:158.247.214.34
worker:158.247.214.106

设置ssh免密登录

# 生成公私钥
ssh-keygen -t rsa

# 将公钥发送给对方,此时就建立了localhost -> 158.247.214.67的免密登录
cd ~/.ssh
scp id_rsa.pub [email protected]:~/.ssh/authorized_keys

重复上面操作,将两个worker服务器的ssh公钥发送给master的authorized_keys中,并将master的ssh公钥发送到两个worker的authorized_keys中,这样就实现了互相的免密通信。

master的conf/mpi-cluster

localhost slots=1
158.247.214.34 slots=2
158.247.214.106 slots=2

按照上面的架构,需要将数据分为4分,可以使用split.cpp来完成。

cd doc/

# 编译生成a.out
g++ split.cpp

# 将web-Google.txt按照(node % 4),划分成4份
./a.out web-Google.txt 4

划分后的文件在splitFiles/目录中。

image-20201218184052635

将这些数据存储到对应的input/目录。

# worker:158.247.214.34
part0  part1

# worker:158.247.214.106
part2  part3

修改pagerank.sh

ALGORITHM=Pagerank
WORKERS=5
GRAPH=input/
RESULT=result/
NODES=1000000
SNAPSHOT=10
TERMTHRESH=0.00001
BUFMSG=500
PORTION=1

./example-dsm --runner=$ALGORITHM --workers=$WORKERS --graph_dir=$GRAPH --result_dir=$RESULT --num_nodes=$NODES --snapshot_interval=$SNAPSHOT --portion=$PORTION --termcheck_threshold=$TERMTHRESH --bufmsg=$BUFMSG --v=1 > log

master和worker的工作目录保持一致,就可以运行了。

# 在master执行
bash pagerank.sh

master:

image-20201218214354519

worker1:

image-20201218214406198

worker2:

image-20201218214416714

4

3

track_log

其他

Maiter官方Guidance:Guidance.wiki

doc/web-Google.txt来自:snap.stanford.edu

maiter's People

Contributors

sanzo00 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.