Ejemplo n.º 1
0
def test_scatter_small_repeated(rsds_env):
    url = rsds_env.start([4, 4, 4])

    client = Client(url)
    client.wait_for_workers(2)

    futures1 = client.scatter(range(0, 3))
    futures2 = client.scatter(range(10, 13))
    futures3 = client.scatter(range(20, 23))
    futures4 = client.scatter(range(30, 33))
    p = client.who_has(futures1)
    assert list(Counter(p.values()).values()) == [3]
    p = client.who_has(futures2)
    assert set(Counter(p.values()).values()) == {1, 2}
    p = client.who_has(futures3)
    assert set(Counter(p.values()).values()) == {1, 2}
    p = client.who_has(futures4)
    assert list(Counter(p.values()).values()) == [3]

    p = client.who_has(futures1 + futures2 + futures3 + futures4)
    assert list(Counter(p.values()).values()) == [4, 4, 4]

    futures5 = client.scatter(range(40, 41))
    p1 = client.who_has(futures1)
    p2 = client.who_has(futures5)
    assert len(list(p2.values())) == 1
    assert set(p1.values()) == set(p2.values())

    futures5 = client.scatter(range(50, 55))
    p1 = client.who_has(futures1 + futures2)
    p2 = client.who_has(futures5)
    print("P1", p1)
    print("P2", p2)
    assert len(set(p2.values())) == 2
    assert set(p1.values()) == set(p2.values())
Ejemplo n.º 2
0
def test_scatter_w2_2(rsds_env):
    url = rsds_env.start([2, 2])

    client = Client(url)
    client.wait_for_workers(2)

    futures = client.scatter(range(10))
    p = client.who_has(futures)
    assert set(Counter(p.values()).values()) == {6, 4}
Ejemplo n.º 3
0
def test_scatter_w2_1(rsds_env):
    url = rsds_env.start([1, 1])

    client = Client(url)
    client.wait_for_workers(2)

    futures = client.scatter(range(10))
    p = client.who_has(futures)
    assert list(Counter(p.values()).values()) == [5, 5]
Ejemplo n.º 4
0
def test_scatter_w1_1(rsds_env):
    url = rsds_env.start([1])

    client = Client(url)
    client.wait_for_workers(1)

    _futures = client.scatter(range(10))
    p = client.who_has()
    assert len(p) == 10
    assert len(set(p.values())) == 1
Ejemplo n.º 5
0
def test_scatter(rsds_env):
    url = rsds_env.start([1])

    client = Client(url)
    client.wait_for_workers(1)

    metadata = client.scheduler_info()
    worker = list(metadata["workers"].keys())[0]
    futures = client.scatter(range(10), workers=[worker])
    fut = client.submit(comp_fn3, futures)
    assert client.gather(fut) == list(range(1, 11))
Ejemplo n.º 6
0
def test_stealing(rsds_env):
    client = Client(rsds_env.start([1, 1], scheduler="workstealing"))
    client.wait_for_workers(2)

    @delayed
    def delayed_sleep(x):
        time.sleep(x)
        return x

    @delayed
    def delayed_const(x):
        return x

    c1 = delayed_const(0.1)
    c2 = delayed_const(0.5)

    sleeps = []
    for i in range(4):
        sleeps.append(delayed_sleep(c1))
        sleeps.append(delayed_sleep(c2))

    rs = delayed_merge(*sleeps).compute()
    assert rs == (0.1, 0.5) * 4