위키득계정 ↗
기술

Rayon

Rayon기술
주요 언어
Rust
주요 역할
자료 병렬 처리
대표 인터페이스
병렬 반복자
실행 자원
기본 또는 사용자 정의 스레드 풀
Rayon은 Rust에서 자료 병렬 계산을 구성하는 라이브러리다. 병렬 반복자가 자료를 작업으로 나누어 처리하며, 더 세밀한 작업 구성과 사용자 정의 스레드 풀을 사용하는 인터페이스도 제공한다.

반복 연산을 병렬로

순차 반복자와 비슷한 방식으로 병렬 반복자를 사용해 자료를 변환하고 결과를 모은다. 자료를 어떻게 작업으로 나눌지는 병렬 반복자가 관리한다. 각 자료에 대한 연산을 표현하는 코드와 작업을 배분하는 처리를 연결하는 구조다.

작업 구성과 스레드 풀

반복자 외에 join과 scope를 이용해 병렬 작업을 직접 구성할 수 있다. 기본 전역 스레드 풀 대신 사용자 정의 스레드 풀을 사용하는 방식도 제공한다. 반복 중심의 계산과 별도로 나눈 작업 모두를 표현할 수 있다.

결과와 실행 순서

자료 경쟁을 막도록 설계된 API를 제공하지만 병렬 실행의 모든 논리 오류가 사라지는 것은 아니다. 파일 쓰기나 메시지 전달 같은 부수 효과의 순서는 순차 실행과 달라질 수 있다. 계산 결과와 외부에 드러나는 작업 순서를 구분해 다루는 것이 필요하다.

관련 문서

Crossbeam / Rust / 병렬 컴퓨팅 / 스레드 (컴퓨팅) / 동시성 / Tokio