오픈소스 LSF 기반의 스케쥴러 openlava

openlava_logo_slogan

1. openlava 를 다운 받는다.
http://www.openlava.org/download/download.html

openlava-2.2.tar.gz

% cd ~
% mkdir LSF
% cd LSF
% tar xvfz openlava-2.2.tar.gz 
% cd openlava-2.2
% ./configure

1

Tcl 없이는 빌드 할수 없다한다.

2. Tcl 설치

http://tcl.tk

2

% tar xvfz tcl8.5.17-src.tar.gz 
% cd tcl8.5.17/unix
% ./configure --enable-threads
% make
% su
% make install
% exit

이제 다시 openlava를 빌드한다.

3. openlave 빌드

% cd ~/LSF/openlava-2.2
% ./configure
% make
% su
% make install

4. openlave 셋팅

% cd ~/LSF/openlava-2.2
% cd config
% su
% cp lsb.hosts lsb.params lsb.queues lsb.users lsf.cluster.openlava lsf.conf lsf.shared openlava.* /opt/openlava-2.2/etc
% useradd -r openlava
% chown -R openlava:openlava /opt/openlava-2.2
% cp /opt/openlava-2.2/etc/openlava /etc/init.d
% cp /opt/openlava-2.2/etc/openlava.* /etc/profile.d
% chkconfig openlava on
% cd /opt/openlava-2.1/etc
% vim lsf.cluster.openlava

아래 부분의 호스트 이름을 수정한다.

Begin   Host
HOSTNAME          model          type  server  r1m  RESOURCES
# yourhost                  IntelI5      linux   1      3.5    (cs)
End     Host

위를 아래 처럼..

Begin   Host
HOSTNAME             model          type  server  r1m  RESOURCES
ihmin                !              !     1       -       -
End     Host

다음 host를 추가한다.

% vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.6 ihmin localhost localhost.localdomain

5. openlava 데몬을 실행

% . /etc/profile.d/openlava.sh
% vim /etc/init.d/openlava

# This is the root of openlava installation
# change it if installed somewhere else.
export OPENLAVA_TOP=/opt/openlava-2.2
# 아래의 라인을 추가
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

% service openlava start
Starting daemons...
lim started
res started
sbatchd started

% vim /etc/bashrc

# 끝 부분에 아래를 추가
export PATH=$PATH:/opt/openlava-2.2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

% source /etc/bashrc
% bjobs
No unfinished job found

이제 bjobs가 제대로 실행된다.

6. submit 테스트

% vim test.job
find / -name "*.so"

# 아래와 같이 queue 이름과 CPU 갯수, 프로젝트 이름, 로그 파일 이름을 지정
% bsub -q normal -n 1 -P test -o test.log < test.job
Job <104> is submitted to queue <normal>.
$ bsub -q normal -n 1 -P test -o test.log < test.job
Job <105> is submitted to queue <normal>.
$ bsub -q normal -n 1 -P test -o test.log < test.job
Job <106> is submitted to queue <normal>.
$ bsub -q normal -n 1 -P test -o test.log < test.job
Job <107> is submitted to queue <normal>.
$ bsub -q normal -n 1 -P test -o test.log < test.job
Job <108> is submitted to queue <normal>.

$ bjobs
JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
105     ihmin   RUN   normal     ihmin       ihmin       *me "*.so" Jan 16 11:51
106     ihmin   PEND  normal     ihmin                   *me "*.so" Jan 16 11:51
107     ihmin   PEND  normal     ihmin                   *me "*.so" Jan 16 11:51
108     ihmin   PEND  normal     ihmin                   *me "*.so" Jan 16 11:51

openlava를 통해서 스케쥴링이 잘 되는것을 확인할 수 있다.

이 외에도 LSF와 호환되기에 LSF의 커맨드를 그대로 이용가능하다..

cd /opt/openlava-2.2/bin/
$ ls
badmin   bkill    bqueues   bsub     lam-mpirun  lsid       lsrcp
bbot     bmgroup  brequeue  bswitch  lsacct      lsinfo     lsrmhost
bchkpnt  bmig     brestart  btop     lsaddhost   lsload     lsrun
bhist    bmod     bresume   bugroup  lsadmin     lsloadadj  mpich2-mpiexec
bhosts   bparams  brun      busers   lseligible  lsmon      mpich-mpirun
bjobs    bpeek    bstop     esync    lshosts     lsplace    openmpi-mpirun
이 글은 카테고리: Linux에 포함되어 있으며 태그: , , (이)가 사용되었습니다. 고유주소를 북마크하세요.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다


This site uses Akismet to reduce spam. Learn how your comment data is processed.