server.py 1.74 KB
Newer Older
1
import os
Chao Ma's avatar
Chao Ma committed
2
import argparse
3
4
5
6
7
import time

import dgl
from dgl.contrib import KVServer

Chao Ma's avatar
Chao Ma committed
8
import torch as th
Chao Ma's avatar
Chao Ma committed
9

10
11
12
13
14
15
16
17
18
19
20
21
g2l = []
g2l.append(th.tensor([0,1,0,0,0,0,0,0]))
g2l.append(th.tensor([0,0,0,1,0,0,0,0]))
g2l.append(th.tensor([0,0,0,0,0,1,0,0]))
g2l.append(th.tensor([0,0,0,0,0,0,0,1]))

data = []
data.append(th.tensor([[4.,4.,4.],[4.,4.,4.]]))
data.append(th.tensor([[3.,3.,3.],[3.,3.,3.]]))
data.append(th.tensor([[2.,2.,2.],[2.,2.,2.]]))
data.append(th.tensor([[1.,1.,1.],[1.,1.,1.]]))

Chao Ma's avatar
Chao Ma committed
22

23
24
25
class ArgParser(argparse.ArgumentParser):
    def __init__(self):
        super(ArgParser, self).__init__()
26

27
28
29
30
31
32
        self.add_argument('--server_id', type=int, default=0,
                          help='Unique ID of each server.')
        self.add_argument('--ip_config', type=str, default='ip_config.txt',
                          help='IP configuration file of kvstore.')
        self.add_argument('--num_client', type=int, default=1,
                          help='Total number of client nodes.')
Chao Ma's avatar
Chao Ma committed
33

34

35
def start_server(args):
36
37
38
    """Start kvstore service
    """
    server_namebook = dgl.contrib.read_ip_config(filename=args.ip_config)
Chao Ma's avatar
Chao Ma committed
39

40
    my_server = KVServer(server_id=args.server_id, server_namebook=server_namebook, num_client=args.num_client)
Chao Ma's avatar
Chao Ma committed
41

42
43
44
45
46
47
48
49
50
    if my_server.get_id() % my_server.get_group_count() == 0: # master server
        my_server.set_global2local(name='entity_embed', global2local=g2l[my_server.get_machine_id()])
        my_server.init_data(name='entity_embed', data_tensor=data[my_server.get_machine_id()])
    else:
        time.sleep(3)
        my_server.set_global2local(name='entity_embed')
        my_server.init_data(name='entity_embed')

    my_server.print()
Chao Ma's avatar
Chao Ma committed
51

52
53
54
55
56
    my_server.start()
    

if __name__ == '__main__':
    args = ArgParser().parse_args()
57
    start_server(args)