Microsoft R Open(MRO)

게시일 : 2018년 01월 19일    
# R

Microsoft가 관리하는 향상된 기능의 R –

핵심 기능

  • MultiThreading with INTEL Processor (병렬처리)

  • Reproducibility with MRAN (패키지 버전 관리)


MultiThreading with INTEL Processor

R은 특정 라이브러리를 사용하지 않는 이상 기본적으로 single thread로 작동하게 되어 있다.

MRO는 INTEL의 MKL(Math Kernel Library)를 적용하여 수학적 연산에 MultiThreading 기능을 적용한다.

단, INTEL Processor를 가진 컴퓨터만 가능한 것으로 보인다.

퍼포먼스 비교

mro_performance

# 현재 사용중인 thread 수(기본적으로 최대로 설정)
getMKLthreads()
# 사용할 thread 수 설정 가능
setMKLthreads(<숫자>)

Reproducibility with MRAN

MRAN은 Microsoft에서 관리하는 네트워크이다. 원래 CRAN에서 패키지를 다운받을 수 있지만 항상 최신버전으로만 설치가 가능하다.

MRAN은 매일 패키지의 snapshot을 만들기 때문에 날짜 지정을 통해 해당 날짜에 맞는 패키지 버전을 선택할 수 있다.

즉, 패키지 업데이트로 인해 syntax가 변경되어 실행되지 않는 코드가 생길 수 있는 경우를 방지하여 코드의 재사용성을 높일 수 있다.

  • 옵션설정을 통해 바꾸는 방법(특정 날자를 지정)

options(repos = c(CRAN = "https://mran.revolutionanalytics.com/snapshot/2019-01-01"))

  • checkpoint 라이브러리를 활용하는 방법

mro_mran

References :