import time curt = time.time() import json import numpy as np import dbsecmpc from multiprocessing import Process conf = { "NODE_INFO": [ { "HOST": "127.0.0.1", "PORT": 25500, "NODE_ID": "P0" }, { "HOST": "127.0.0.1", "PORT": 25700, "NODE_ID": "P1" }, { "HOST": "127.0.0.1", "PORT": 25900, "NODE_ID": "P2" } ], "DATA_NODES": [ "P0", "P1", "P2" ], "COMPUTATION_NODES": { "P0": 0, "P1": 1, "P2": 2 }, "RESULT_NODES": [ "P0", "P1", "P2" ] } def test(id): ''' This module aimed to test the secret share I/O ''' confbuf = json.dumps(conf) dbsecmpc.init(id, confbuf) np.random.seed(199) colnum, rownum = 2, 10 xplaintable = np.random.rand(colnum * rownum)*(100) xplaintable.shape = (colnum, rownum) print("P0 input: ", xplaintable) rtx = dbsecmpc.privateinput(["P0"], xplaintable) np.random.seed(307) yplaintable = np.random.rand(colnum * rownum)*(100) yplaintable.shape = (colnum, rownum) print("P1 input: ", yplaintable) rty = dbsecmpc.privateinput(["P1"], yplaintable) # res = dbsecmpc.opvector(rtx, rty, dbsecmpc.OP_GREATER) # print("P{} secret share: ".format(id), res) res = dbsecmpc.opvector(dbsecmpc.opvector(rtx, rty, dbsecmpc.OP_ADD), rty, dbsecmpc.OP_MUL) print("P{} secret share: ".format(id), res) res = dbsecmpc.reveal(["P2"], res) print("P{} output: ".format(id), res) pc1 = Process(target = test, args=(0,)) pc2 = Process(target = test, args=(1,)) pc3 = Process(target = test, args=(2,)) st = time.time() pc1.start() pc2.start() pc3.start() pc1.join() pc2.join() pc3.join() print(time.time() - st)