소스 뷰어
import cupy
import dask.array as da

# generate chunked dask arrays of mamy numpy random arrays
rs = da.random.RandomState()
s = 50_000
x = rs.normal(10, 1, size=(s, s), chunks=(10_000, 10_000))

print( f"{x.nbytes / 1e9:_} GB" )  # 2 TB
20.0 GB
s2 = (x + 1)[::2, ::2].sum().compute(scheduler='threads')
print("s2 = ", s2 )

s1 = (x + 1)[::2, ::2].sum().compute(scheduler='single-threaded')
print("s1 = ", s1 )
s2 =  6875003428.773301
s1 =  6875003428.773301
import cupy
import dask.array as da
import ray

print( "Initializaing ray ..." )
ray.init()
print( "Initializing ray done.")
{'node_ip_address': '127.0.0.1',
 'raylet_ip_address': '127.0.0.1',
 'redis_address': '127.0.0.1:6379',
 'object_store_address': 'tcp://127.0.0.1:26737',
 'raylet_socket_name': 'tcp://127.0.0.1:35493',
 'webui_url': None,
 'session_dir': 'C:\\Users\\sunabove\\AppData\\Local\\Temp\\ray\\session_2021-12-27_14-28-41_772696_34784',
 'metrics_export_port': 65438,
 'node_id': 'eb0161903db6949abcc398ab0a79eccebbe7fc4162b83c37e206dbba'}
@ray.remote
def f(x):
    return x * x

futures = [f.remote(i) for i in range(4)]
print(ray.get(futures))
[0, 1, 4, 9]
import numpy as np

# 메모리 공유  
arr = np.random.random(1000000)
arr = ray.put(arr)
 
@ray.remote
def mul(x):
   return x * 10
 
result = ray.get(mul.remote(arr))

print( result )
[4.41128982 9.82085117 3.95807197 ... 4.25636195 9.13352105 1.47450193]