아리아 날다

[Python병렬처리] Windows 환경에 Ray설치하기! 본문

Python Crawling

[Python병렬처리] Windows 환경에 Ray설치하기!

Aria Park 2023. 4. 17. 17:46

기존의 코드 변경을 거의 하지 않고도 쉽게 분산/병렬화 할 수 있다는 장점이 있는 프레임워크 Ray를 프로젝트에서 사용해보고 싶어서 설치를 시도했다.

그런데..!

ERROR: Could not find a version that satisfies the requirement ray (from versions: none)
ERROR: No matching distribution found for ray

버전이 맞지 않아서 설치할 수 없다는 에러가 떴다. 기존에 사용하던 Python 버전은 3.11이었는데, 현재 Ray는 Python 3.6부터 3.9까지의 버전을 지원하고 3.11버전을 지원하는지에 대한 공식적인 발표는 나오지 않았다.

 

또한, 

Ray docs

Ray의 일부 기능은 Windows에서 지원되지 않는다😿

특히 GCS(Global Control Store)을 지원하지 않는데, GCS는 분산 키-값 저장소를 사용하여 정보를 저장하고 관리하므로 여러 노드에서 수평으로 확장하고 대량의 데이터를 처리할 수 있게 도와주는 기능이다. GPT에게 물어보니 GCS 대신에 로컬 스케줄러를 이용하면 GCS에 의존하지 않고도 단일 노드 내에서 병렬 프로그래밍을 수행할 수 있다고 한다. 


아직 베타버전이지만 병렬 프로그래밍을 수행하는데 큰 문제가 없을 것으로 보여 설치를 시작했는데, 파이썬 버전을 3.9로 낮춰도 계속 똑같은 에러 메시지가 뜨고 설치가 안됐다. 

pip install --upgrade pip
pip install numpy protobuf psutil
pip install ray

위와 같이 pip를 업그레이드 하고 필요한 의존성 라이브러리를 추가한 후 다시 설치를 시도해도 계속 "Could not find a version that satisfies the requirement ray" 에러가 떠서 결국,

git clone https://github.com/ray-project/ray.git
cd ray/python
pip install -e .

Ray의 공식 Github 페이지에서 최신 소스코드를 다운로드 하고 설치했다. 위 명령어를 통해 Ray가 설치 되었는데, 이번엔 Ray에서 제공하는 함수들이 호출이 안되는 문제가 생겼다.

pip install -U ray[cpp]
python.exe -m pip install --upgrade pip

Ray 공식문서를 보니 C++ API를 설치하는 명령어가 있어서 위 명령어로 Ray C++ API를 한 후, pip를 최신 버전으로 업그레이드 하니 성공적으로 설치가 완료됐다!


또한 Ray는 Redis를 기반으로 사용하는데 Redis를 설치하고 Redis-server가 실행중이면 실행이 안 될 수도 있다고 한다. 혹시 위 방법을 모두 시도했는데도 안된다면 작업 관리자에서 Redis-server를 종료하고 실행해보는 걸 추천한다.

 

참고

https://tw0226.tistory.com/86

https://docs.ray.io/en/master/ray-overview/installation.html#

 

Installing Ray — Ray 3.0.0.dev0

 

docs.ray.io

 

Comments