Giter Club home page Giter Club logo

condor's Introduction

Condor 사용법

장진희 씀, 이정우 붙임 (2015.4)

Condor는 똑같은 계산을 여러 번 해야 할 때, 여러개의 컴퓨터에 나눠서 프로그램을 시켜주는 프로그램이다. 사실 이것저것 좋은 기능이 많지만, 내가 생각하기에 우리가 쓸 기능만 적어둔다.

Condor 이럴 때 사용한다!

시뮬레이션이 필요하다. 양성자를 10^10개 쏘는 시뮬레이션이다. 양성자 1개를 쏘는데 0.01초가 걸린다. 단순 계산으로 양성자 10^10개를 쏘면 10^8초 = 1.67x10^6분 = 2.78x10^4시간 = 1157일 = 3.17년이 걸린다! 말도안돼! 한번 돌려놓고 수료할때까지 기다릴순 없다!

우리 연구실에는 총 72개의 Core가 있으니, 시뮬레이션 코드를 양성자 1.4x10^6개를 쏘개 만들고, 똑같은 일을 72개의 Core에 시키면, 시간을 1/72로 줄일 수 있다! 1157/72일 = 16일이다! 3년 걸릴 일을 16일만에 끝내고 신나게 그림을 그릴 수 있다!

물론 모든 Core가 성능이 같은 것이 아니기 때문에 16일보다는 더 걸리겠지만, 적어도 3년은 걸리지 않는다.

그래서 사용법

이정우 수정 (2017.7)

최근 콘도르를 아주 간단하게 사용할 수 있도록 만들어서 공지를 했는데 생각보다 어려워서 공부를 하다가 일단 생각나는 대로 적는다.

먼저 콘도르 명령어를 다음과 같이 대체 했다.

  • cstat : 콘도르 상태
  • cq : 콘도르 작업 리스트를 보여줌
  • csub : 작업파일을 제출
  • crm : 작업을 지움

그러나 왜인지 모르지만 crm 는 작동하지 않아서 원래 명령어인 condor_rm 를 사용하기로 하자.

여러개의 작업을 제출한다고 할 때 3가지의 파일이 필요하다.

  1. 여러개의 작업제출파일과 그 파일들을 제출할 때 사용할 작업제출매크로를 만드는 매크로 파일
  2. 1.번으로 부터 만들어진 작업제출파일들
  3. 1.번으로 부터 만들어진 작업제출매크로

그러니 사실상 1번의 매크로 파일만 쓰면 된다. 예를 들면 다음과 같다.

{
  ofstream submit_macro("submit.sh");

  for (auto i = 0; i < 17; i++) 
  { 
    TString name = Form("pBUU%d.sh",i);
    ofstream submit_file(name);
    
    submit_file << "# cpu 2" << endl;
    submit_file << "# mem 300" << endl;
    submit_file << Form("root -q -l -b run_mc.C\\(%d\\)", i) << endl;
    
    submit_macro << "csub " << name << endl;
  }
}

여기서 실질적으로 돌리고 싶은 파일은 run_mc.C 이고 매개변수는 숫자 하나로 두었는데 만약에 이게 숫자가 아니라면 배쉬파일로 쓰는게 매우 복잡해지므로 피할 수 있다면 피하는 것을 (매우 강력하게)추천한다. 돌리게 되면 pBUU0.sh, pBUU1.sh ... pBUU16.sh 의 파일이 생기고 submit.sh라는 파일도 생긴다. pBUU[0-16].sh 파일은 각각이 제출 파일이 되고 내용은 다음과 같다.

# cpu 2
# mem 300
root -q -l -b run_mc.C\(0\)

여기서 cpu 2는 cpu를 두개 사용한다는 뜻이며 mem 300은 메모리를 300 메가바이트를 사용한다는 뜻이니 자신의 작업에 맞게 변경하면 된다.

submit.shcsub pBUU*.sh 의 나열이다.

csub pBUU0.sh
csub pBUU1.sh
...
csub pBUU16.sh

제출은 터미널에서 이 파일을 실행하면 끝!

> sh submit.sh

작업 진행상황은 cq 명령어로 볼 수 있고 작업결과는

  • [작업제출파일 이름]_[날짜].err
  • [작업제출파일 이름]_[날짜].log
  • [작업제출파일 이름]_[날짜].out

에 지속적으로 업데이트 되므로 파일을 열어보거나 그냥

> tail -f **[작업제출파일 이름]_[날짜].out

등의 명령어로 주시하면 된다.

콘도르를 더 세밀하게 다루고 싶다면 아래 링크를 참고하자. 아래 링크 보다 더 자세하게 다루고 싶다면 그 안에 또 링크가 있다.

추가

condor's People

Contributors

ejungwoo avatar geniejhang avatar

Watchers

James Cloos avatar  avatar  avatar JaeBeom Park avatar  avatar Beomgon Kim avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.