1 기계학습 R 멀티코어 서버 제작 1

멀티코어 서버 제작

caret 기반 다양한 기계학습 팩키지를 쉘스크립트에 담아 EC2 인스턴스 생성시에 설치한다. 기계학습 예측모형에 배포를 위해서 원데이터를 WinSCP, Filezilla 같은 FTP 프로그램을 사용하여 전달한다. 멀티코어 병렬처리를 위한 준비가 준비가 완료되면 병렬처리 기계학습 알고리즘 코드를 작성한다.

1.1 기계학습 컴퓨터 준비

기계학습 컴퓨터를 준비하기 위해서 AWS에서 인스턴스 시작을 클릭하여 “단계 1: Amazon Machine Image(AMI) 선택”에서 좌측에 커뮤니티 AMI를 선택한다. 그리고 나서 검색창에 rstudio를 입력하여 클릭하면 RStudio-1.1.383_R-3.4.2_Julia-0.6.0_CUDA-8_cuDNN-6_ubuntu-16.04-LTS-64bit - ami-1280257c을 볼 수 있다. RStudio Server Amazon Machine Image (AMI)이미지로 기계학습을 위한 준비가 된 이미지가 기본으로 제공된다. “단계 2: 인스턴스 유형 선택”에서 멀티코어가 많고 계산에 특화된 인스턴스로 선택한다. c4.xlarge는 “Compute optimized” 되었고 멀티코어 프로세스도 숫자가 많은 것을 고른다. EC2Instances.info Easy Amazon EC2 Instance Comparison에서 가격을 비교하여 본인 문제에 가성비가 뛰어난 인스턴스를 선택한다.

1.2 기계학습 팩키지 설치

기계학습 팩키지를 설치하기 위해서 앞선 “단계 3: 인스턴스 세부 정보 구성”에서 고급 세부 정보를 클릭하여 준비한 R 팩키지를 쉘스크립트로 담아 파일형태로 준비한 후에 넣어준다. 적당한 파일명 r_pkg_shell_script.sh와 같은 명칭으로 담아낸다.

#!/bin/bash

sudo su - -c "R -e \"install.packages('devtools', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('Rcpp', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('RcppEigen', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('tidyverse', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('markdown', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('yaml', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('htmltools', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('knitr', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('rmarkdown', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('caret', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('e1071', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('randomForest', repos='http://cran.rstudio.com/')\""

1.3 FTP 서버 연결 2 3

서버가 준비되면 우선 기계학습 예측모형을 개발하기 위한 데이터를 전송해야 한다. 그러기 위해서는 권한 설정을 해야 하는데… 다음과 같이 ubuntu 계정이 /home/rstudio/ 디렉토리에 소유권을 주면 RStudio IDE등 관련하여 여러 권한 문제가 생길 수 있다. 이를 피해가는 방법은 누구나 쓸 수 있도록 권한을 주는 것도 한 방법이다… 하지만 실운영환경에서는 권장되지는 않는다.

WinSCP와 같은 도구를 통해서 데이터를 전송할 수 있다.

$ sudo chmod -R 777 /home/rstudio/
$ sudo chown -R rstudio:rstudio /home/rstudio/
# $ sudo chown -R -v ubuntu /home/rstudio/

RStudio GUI 문제 해결

Rstudio initialization error: Error occurred during transmission와 같은 오류가 생겨나는 경우 rstudio 사용자가 갖는 권한이 맞지 않는 경우 발생된다. 이를 원래대로 원복시키는 방법은 다음과 같다.

/home/rstudio/.rstudio 디렉토리를 날린다. 그리고 나서 .rstudio, .rstudio/graphics-r3를 생성시키고 나서, .rstudio 디렉토리에 rstudio 사용자가 사용할 수 있도록 권한을 부여하면 된다.

ubuntu@ip-xxx-xx-xxx-xxx:/home/rstudio# rm -r .rstudio/
ubuntu@ip-xxx-xx-xxx-xxx:/home/rstudio# mkdir .rstudio
ubuntu@ip-xxx-xx-xxx-xxx:/home/rstudio# mkdir .rstudio/graphics-r3
ubuntu@ip-xxx-xx-xxx-xxx:/home/rstudio# sudo chown -R rstudio:rstudio .rstudio

1.4 멀티코어 서버 모니터링

기계학습 서버 모니터링을 위해서 htop 모니터링 도구를 설치하여 병렬처리 기계학습 알고리즘을 학습시킬 수 때 확인목적으로 유용하게 사용된다.

$ sudo apt-get install htop

2 멀티코어 헬로월드