dask入门(2)

#计算斐波那契数实战

1方法

from distributed import Client
from dask import delayed, compute

@delayed
def fib(n):
    if n < 2:
        return n
    # We can use dask.delayed and dask.compute to launch
    # computation from within tasks
    a = fib(n - 1)  # these calls are delayed
    b = fib(n - 2)
    a, b = compute(a, b)  # execute both in parallel
    return a + b

if __name__ == "__main__":
    # these features require the dask.distributed scheduler
    client = Client("172.26.244.71:8786")
    result = fib(10).compute()
    print(result)  # prints "55"




方法2:

from distributed import Client, get_client, secede, rejoin

def fib(n):
    if n < 2:
        return n
    client = get_client()
    a_future = client.submit(fib, n - 1)
    b_future = client.submit(fib, n - 2)
    # secede()    #避免群体死锁
    a, b = client.gather([a_future, b_future])
    #rejoin()
    return a + b

if __name__ == "__main__":
    client = Client("172.26.244.71:8786")
    future = client.submit(fib, 10)
    result = future.result()
    print(result)  # prints "55"

## 方法3
from dask.distributed import worker_client


def fib(n):
    if n < 2:
        return n
     with worker_client() as client:
         a_future = client.submit(fib, n - 1)
         b_future = client.submit(fib, n - 2)
         a, b = client.gather([a_future, b_future])
     return a + b

if __name__ == "__main__":
    client = Client()
    future = client.submit(fib, 10)
    result = future.result()
    print(result)  # prints "55"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值