본문 바로가기
Programming/R

[R studio] Background Jobs

by noey_hus 2024. 4. 23.

[R studio] Background Jobs

기본적으로 R studio에서는 여러 개의 R script를 동시에 수행할 수 없다. 하지만 실행 시간이 오래 걸리는 R script를 실행시켜두고 다른 작업을 진행하거나, 여러 개의 R script를 동시에 실행하고 싶은 경우가 있는데, 이런 경우 사용하는 것이 R studio의 Background Jobs 기능이다. 이 기능을 사용하면 특정 R script를 백그라운드에서 실행시켜두고, 그것이 백그라운드에서 실행되는 동안 R studio에서는 다른 작업을 계속 진행할 수 있다.
 

사용 방법

1. 콘솔의 Background Jobs 탭에서 Start Background Job을 클릭한다.

또는 .R 파일 내에서 Source 메뉴를 클릭하고 Source as Background Job을 클릭한다.

 
2. 다음 창이 뜨면, 백그라운드에서 실행시키려는 R script와 Working directory를 설정한다.

기본적으로 백그라운드 작업은 별도의 R 세션에서 실행되며, 작업이 완료되면 해당 작업 공간은 삭제된다. 하지만 현재 R 세션의 데이터를 백그라운드 작업에 반영시키거나, 백그라운드 작업 결과를 현재의 R 세션에 반영시키고 싶을 경우 다음 옵션을 설정해주면 된다.
 
1) Run job with copy of global environment

이 옵션을 선택하면, 현재 R 세션의 데이터를 백그라운드 작업에 반영시킬 수 있다. global environment를 저장하고, 백그라운드 작업이 실행되기 전에 해당 R 세션에 이 global environment를 불러오기 때문이다. 즉, 현재 R 세션에서 만들어진 변수 등을 백그라운드 작업시에도 똑같이 이용할 수 있다.
 
2) Copy job results
기본적으로, 백그라운드 작업을 위해 임시적으로 만들어진 작업 공간은 저장되지 않는다. 하지만 백그라운드 작업 결과를 현재 R 세션으로 불러오고 싶다면, 다음 중 하나를 선택하면 된다.
a. Global environment

이 옵션을 선택하면, 백그라운드 작업 결과 만들어진 모든 R objects를 현재 R 세션의 global environment로 불러올 수 있다. 단, 같은 이름을 가진 변수가 global environment에 존재할 경우, 백그라운드 작업 결과에 의해 덮어 씌워질 수 있으니 유의해야 한다.
b. Results object

이 옵션을 선택하면, 백그라운드 작업 결과 만들어진 모든 R objects가 “scriptname”+”_results” 라는 이름의 새로운 객체에 저장된다. 예를 들어, 백그라운드에서 실행된 R script 이름이 “training.R”이라면 이 백그라운드 작업 결과는 global environment에 “training_results”라는 객체로 저장된다.
 

References

https://docs.posit.co/ide/user/ide/guide/tools/jobs.html