데이터실무
DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!
R은 기본적으로 모든 데이터셋을 메인메모리에 올려 놓고 작업하기 때문에 작업성능이 뛰어나다. 하지만 역설적으로 데이터 크기가 커지면 메모리 크기가 한계로 작용하고 극단적인 경우 데이터를 한꺼번에 올리지 못하는 경우도 발생하게 된다. 뿐만 아니라 알고리즘의 종류에 따라서는 아주 큰 메모리를 필요로 하는 경우가 생기는데 최적화 등이 그 대표적인 예이다. R은 그 어떤 통계 패키지에 못지 않게 고성능을 자랑한다. R은 알고리즘이 탄탄하고 이들을 최대한 메인메모리에서 수행한다. 뿐만 아니라 R의 성능을 더욱 빠르게 하기 위한 각종 확장 패키지 역시 매우 풍부하다.18) 여기서는 일상적인 R 사용 시 참조할 수 있는 대표적인 기법 몇 가지를 소개한다. 한편 R (커뮤니티)에서 제공하는 병렬처리용 패키지에는 다음과 같은 것이 있다.R에서의 처리성능 개선
이와 같은 R에서의 성능 이슈는 일상 작업에서는 거의 의식하지 못하지만 빅데이터 또는 복잡한 알고리즘을 수행해야 할 때 문제가 된다. 해결방법으로 여러 가지가 제시되는데 구체적 기법은 데이터의 종류(정형, 비정형)와 크기 (한꺼번에 적재해야 할 데이터의 사이즈)는 물론 적용하려는 알고리즘의 종류 등에 따라 매우 다양하다. 이와 함께 빅데이터 분석을 위해 R코드에 대해 MapReduce 적용하는 문제가 최근 많은 관심의 대상이 되고 있다.
여기서는 R의 성능개선 문제를 살펴봄에 있어 일반적인 성능개선 방법과 MapReduce 적용의 두가지로 나누어 설명하되 일반론에 대해서는 개략적인 소개 위주로 설명하는 대신 MapReduce 적용을 조금 자세히 살펴보고자 한다. 그리고 이 과정에서 편의상 MR 적용을 제4절로 절을 달리하여 기술하기로 한다.
개요
R 코드 최적화
parallel R