개발언어/Python

Ray 적용하기

pastime 2023. 9. 27. 23:34
728x90

Ray란? https://pastime2532.tistory.com/162

 

 

2~3년 전만 해도 Ray는 윈도우 환경에서 미지원이였지만 현재 베타로 지원중이다.

 

class sample code

import ray
import random
import time


@ray.remote
class Sample:
    def __init__(self, x):
        self.x = x

    def calc(self):
        data = []
        for _ in range(100000):
            random_number = random.randint(1, 1000000)
            data.append(random_number)
        return data

if __name__ == "__main__":
    ray.init()

    ray_result = []
    tasks = [Sample.remote(x) for x in range(10)] # 10개로 병렬
    start_time = time.time()
    # 각 태스크의 calc 메서드를 병렬로 실행
    results = ray.get([task.calc.remote() for task in tasks])  # 10개의 태스크 병렬 실행

    # 생성된 데이터 합치기
    for data in results:
        ray_result.extend(data)
    print(len(ray_result))
    end_time = time.time()
    elapsed_time = end_time - start_time
    print(elapsed_time)

    ray.shutdown()

출력

1000000
5.622464656829834

 

적은양은 오히려 시간이 더 걸리지만

 

728x90