본문 바로가기
R packages/tcltk

tcltk의 유용성

by 거인과난쟁이 2018. 6. 16.

R은 빅데이터시대에서 느린 전산통계언어로 평가받는다. 그 이유의 하나는 기본설정에서 하나의 cpu 단위를 사용하기 때문이다. 멀티코어/다중CPU 환경에서 하나의 cpu만 사용한다면 연산속도가 느린것이 답답할 수 있다.

여러개의 cpu코어를 사용하도록 환경설정을 변경할 수 있고, 여러개의 cpu코어를 사용하는 R 배포판(?)을 사용할 수 도 있다.

만약 메모리가 넉넉한 시스템에서 R의 연산과정이 길어지는 경우, 다른 R 작업을 병행해야할 때가 있다. 내 경우는 언론기사분석의 텍스트마이닝 작업에서 빈빈하게 발생하는 상황이기도 했다. RStudio 무료판은 하나의 R 엔진만 사용할 수 있어서 불편함이 많았다. 그래서 RServer를 설치하고 원격에서 고성능 서버에 접속해서 RStudio를 쓰는것이 만능책이 아닌경우가 발생한 셈이다. (물론 유료 버전에서는 RStudio에서 여러 개의 R 엔진을 병행사용할 수 있다고 한다.) 그래서, 터미날 환경에서 날것(?)의 command-line R을 여러 개 실행시키고 병렬 작업을 진행하는 경우가 많았다. 16core cpu-256GB 메모리 환경에서 멀티코어 R을 12개까지 함께 실행시킨적이 있다. 이 경우 또 발생하는 불편함은 source()를 이용하여 사전에 철저하게 점검된 스크립트를 준비해야 했다는 점이다. 스크립트 중간에 문제가 발생하면 하나의 R은 중지하게 되고, 12개의 연산처리 과정을 관리하는 것이 쉽지 않았다.


결국 고민은 스크립트 편집기와 R엔진이 "한쌍"이 된 다중작업 환경이 필요하다는 것이다. 나는 주로 리눅스로 작업하기 때문에 gedit / nano / pluma 등의 편집기를 활용했고, source() 함수를 위하여 .R 파일을 만들거나, copy & paste로 터미날 창의 R 에 붙여넣어 작업했다. 이것도 이러저러한 불편함이 많았다. 수백줄의 스크립트를 터미날 창에 붙여넣기하는 것도 종종 에러가 나기도 했다.


관심은 R에 내장된 내부 편집기 활용으로 이동했다. 터미날 환경에서 R을 실행하고, 그 안에서 편집기를 호출하는 방식이다. 큰 모니터 또는 이중 모니터 환경에서 여러개의 터미날 창을 띄우는 것은 크게 불편하지 않기 때문이다. 이때 유용하게 사용되는 접근이 tcltk 환경이다. tcltk를 통하여 내장된 스크립트 편집기를 호출하여 스크립트 작성과 편집, 불러오기와 저장을 하는 방식이다.


java, gtk 등과 달리 tcltk는 사용자가 따로 설치해야하는 경우가 많지 않다. 따로 설치하는 상황도 크게 어렵지 않다. 단순하며, 가벼운 R의 내장형 스크립트 편집기를 사용하기를 추천한다.

rite 패키지 / R과 tcltk2 설명 블로그에 가면 편집기 제작-사용기가 있다.



http://www.sciviews.org/recipes/tcltk/TclTk-scripting-widget/