d1.join("d1") d2.join("d2") d1["a"] = np.random.rand(500, 500) d1["b"] = np.random.rand(500, 500) d1["c"] = np.random.rand(500, 500) d1["d"] = np.random.rand(500, 500) d1["e"] = np.random.rand(500, 500) d2["a"] = None d2["b"] = None d2["c"] = None d2["d"] = None d2["e"] = None d1.send("d2", "a", "b", "c") d2.sync(2) assert np.array_equal(d1["a"], d2["a"]) assert np.array_equal(d1["b"], d2["b"]) assert not np.array_equal(d1["c"], d2["c"]) assert not np.array_equal(d1["d"], d2["d"]) assert not np.array_equal(d1["e"], d2["e"]) d1.send("d2", "d", "e") d2.sync() assert np.array_equal(d1["a"], d2["a"]) assert np.array_equal(d1["b"], d2["b"]) assert np.array_equal(d1["c"], d2["c"])
import numpy as np import sys from dime import DimeClient if __name__ != "__main__": raise RuntimeError() d1 = DimeClient("tcp", sys.argv[1], int(sys.argv[2])) d2 = DimeClient("tcp", sys.argv[1], int(sys.argv[2])) d1.join("d1") d2.join("d2") d1["a"] = np.random.rand(500, 500) d1.send("d2", "a") d2.sync() assert np.array_equal(d1["a"], d2["a"])
def timeout(signum, frame): raise RuntimeError("\"wait\" command timed out") d = DimeClient("ipc", sys.argv[1]) if int(sys.argv[2]) == 0: d.join("d1") while "d2" not in d.devices(): time.sleep(0.05) d["a"] = "ping" d.send("d2", "a") n = d.wait() assert n == 1 or n == 2 d.sync(1) assert d["a"] == "pong" signal.signal(signal.SIGALRM, timeout) signal.alarm(10) d.wait() signal.alarm(0) else:
if __name__ != "__main__": raise RuntimeError() d1 = DimeClient("ipc", sys.argv[1]) d2 = DimeClient("ipc", sys.argv[1]) d3 = DimeClient("ipc", sys.argv[1]) d1.join("d1") d2.join("d2") d3.join("d3") d1["a"] = np.random.rand(500, 500) d1["b"] = np.random.rand(500, 500) d1["c"] = np.random.rand(500, 500) d1.send("d2", "a", "b", "c") d2.sync() assert np.array_equal(d1["a"], d2["a"]) assert np.array_equal(d1["b"], d2["b"]) assert np.array_equal(d1["c"], d2["c"]) d3["a"] = None d3["b"] = None d3["c"] = None d3.sync() assert not np.array_equal(d1["a"], d3["a"]) assert not np.array_equal(d1["b"], d3["b"])
import math import numpy as np import sys import time from dime import DimeClient d = DimeClient("ipc", sys.argv[1]); d.join("python"); while "matlab" not in d.devices(): time.sleep(0.05) time.sleep(1) d.sync() assert d["nothing"] is None assert d["boolean"] is True assert d["float"] == math.pi assert d["int"] == 0xDEADBEEF assert d["complexfloat"] == complex(math.sqrt(0.75), 0.5) assert np.array_equal(d["matrix"], np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9.01]])) assert d["string"] == "Hello world!" assert d["sequence"] == [-1, ":)", False, None] assert d["mapping"] == {"foo": 2, "bar": "Green eggs and spam"} d.send("matlab", "nothing", "boolean", "int", "float", "complexfloat", "matrix", "string", "sequence", "mapping");