Python에서 Dask로 병렬 프로그래밍
James Fulton
Climate Informatics Researcher
# 지연 객체 2개 생성 delayed_num1 = delayed(my_square_function)(3) delayed_num2 = delayed(my_square_function)(4) # 서로 더하기 result = delayed_num1 + delayed_num2# 태스크 그래프 그리기 result.visualize()

delayed_intermediate = delayed(my_square_function)(3)
# 두 결과 모두 delayed_intermediate_result를 사용
delayed_result1 = delayed_intermediate - 5
delayed_result2 = delayed_intermediate + 4
delayed_result1.visualize()

delayed_result2.visualize()
# 태스크 그래프 그리기
dask.visualize(delayed_result1, delayed_result2)

# 두 개의 큰 배열에 대해 합계 실행
sum1 = delayed(np.sum)(big_array1)
sum2 = delayed(np.sum)(big_array2)
# 프로세스로 계산
dask.compute(sum1, sum2)

# 두 개의 큰 배열에 대해 합계 실행
sum1 = delayed(np.sum)(big_array1)
sum2 = delayed(np.sum)(big_array2)
# 스레드로 계산
dask.compute(sum1, sum2)

Global interpreter lock - 한 번에 하나의 스레드만 Python 스크립트를 해석 가능
def sum_to_n(n):
"""0부터 n까지 합산"""
total = 0
for i in range(n+1):
total += i
return total
sum1 = delayed(sum_to_n)(1000)
sum2 = delayed(sum_to_n)(1000)

pd.read_csv()는 GIL을 해제함df1 = delayed(pd.read_csv)('file1.csv')
df2 = delayed(pd.read_csv)('file2.csv')

Python에서 Dask로 병렬 프로그래밍