안녕하세요.


오늘은 BLCR을 실행해 보겠습니다.


BLCR 실행 준비물?


BLCR을 실행하기 위한 준비물은 거창 하진 않습니다 ^^


간단한 어플리케이션 하나와 BLCR 모듈이 삽입되었는지 확인하는 것입니다.


준비물에 대해 알아보겠습니다.


1. 어플리케이션


다음은 실행시키면 0~99까지 실행하고 끝나는 간단한 어플리케이션 입니다.


#include <stdio.h>

int main (int argc, char *argv[])
{
    int i;
    for (i=0; i<100; i++) {
        printf("i = %d\n", i);
        sleep(30);
    }
    return 0;
}


다음 명령으로 어플리케이션을 컴파일 합니다.

 

  gcc -o test test.c -lcr

컴파일을 하면 test 파일이 생성됩니다.


2. BLCR 모듈확인


BLCR 모듈이 잘 삽입된었는지 확인하기 위해 다음 명령을 입력합니다.

 

 lsmod | grep blcr


만약 모듈이 삽입 안되어 있으면 


"/usr/local/lib/blcr/2.6.32-21-generic"로 이동하여 모듈을 삽입합니다.

 

cd /usr/local/lib/blcr/`uname -r`/
sudo insmod blcr_imports.ko
sudo insmod blcr.ko


3. 실행


다음과 같은 순서로 실행을 합니다.


1. 어플리케이션에서 저장하는 데이터를 봅니다.


tail -f test.out &


2. 어플리케이션을 백그라운드로 실행합니다.


cr_run ./test > test.out 2>&1 &


3. 어플리케이션 PID를 찾아 MYPID변수에 저장합니다.

MYPID=`ps -ef | grep "./test"| grep -v grep | awk '{print $2}'`


4. cr_checkpoint를 이용하여 어플리케이션을 "kill" 합니다.

cr_checkpoint $MYPID --save-all --kill

위 명령을 실행하면 ."test"프로그램은 종료되며 해당 PID에 해당하는 다음 과 같은 파일이 생성됩니다.


context.PID


5. cr_restar를 이용하여 kill 한 위치에서 다시 실행 합니다.

cr_restart --no-restore-pid context.PID


앞으로?

 

다음엔 더욱 유익한 것을 가지고 돌아오겠습니다 ^^


위 내용은 다음 링크를 참고 했습니다. 

->https://wikis.nyu.edu/display/NYUHPC/Checkpoint-Restart