2011-04-12 6 views
7

사용자 공간 도구를 선호합니다 (Python에서 가능하면 좋을 것입니다 .- 내가 필요로하는 것을 이미하지 않았다면 쉽게 수정할 수 있습니다). 짧은 스크립트는 그 아래의 두 가지 않습니다 사용하고 : 부하, 사용 가능한 메모리에 대한작업 스케줄링을위한 Python 라이브러리,

  • 여론 조사보다 100 컴퓨터 (페도라 13, 그렇게 일을), 그리고 사람처럼 보이는 경우 그들에게
  • 을 사용하고 있습니다
  • 은 작업에 적합한 호스트를 선택하고 ssh를 통해 이러한 작업을 실행합니다. 이러한 작업은 일반적으로 이미지 처리 스크립트 또는 유사한 - cpu, 때로는 메모리 집약적 인 작업을 공유하는 파일 시스템을 읽고 쓰는 임의의 명령 행 프로그램을 실행합니다. 나의 현재의 스크립트를 사용하여 예를 들어

, 내가 파이썬 프롬프트

>>> import hosts 
>>> hosts.run_commands(['users']*5) 

또는 명령 줄 (5)를 찾은 후 명령을 users 5 번 (실행

% hosts.py "users" "users" "users" "users" "users" 

에서 수행 할 수 있습니다 구성 파일에서 최소 5 대의 컴퓨터에서 cpu로드 및 사용 가능한 메모리를 확인하여 명령을 실행할 수있는 컴퓨터). 방금 실행 한 스크립트 이외의 작업 서버가 없어야하며이 명령을 실행할 컴퓨터에는 작업자 데몬이나 프로세스가 없어야합니다.

나는 작업을 추적하고 장애 발생시 작업을 다시 실행할 수 있기를 바라고 싶지만 실제로 필요하지 않은 추가 기능 (실제 작업 스케줄러에서는 매우 표준적인 기능)입니다.

저는 (매우 간단한)로드 밸런싱 기능이없는 classhPuSSH과 같은 Python 용 좋은 ssh 라이브러리를 발견했습니다. 내가 원하는 것의 반대편에는 콘도르 (Condor) 또는 슬럼 (Slurm)이 있습니다. 그것들은 적절한 방식으로 일을 할 것이지만, 그들에 관해 읽는 것에서는, 나는 그들이 필요할 때만 사용자 공간에서 그들을 회전시키는 것이 불가능하다고 생각합니다. 이것은 전용 클러스터가 아니며 이러한 호스트에 대한 루트 액세스 권한이 없습니다.

저는 다른 것을 찾을 수 없을 때 얼마나 바쁜지 알아야 할 때마다 컴퓨터의 기본 폴링과 함께 classh와 관련된 래퍼를 사용할 계획입니다.

+1

어떤 종류의 직업입니까? [fabric] (http://docs.fabfile.org/en/1.0.1/index.html) (ssh 래퍼, 작업 스케줄링 없음), [jenkins] (https://wiki.jenkins-ci.org/display/JENKINS/Jenkins) (CI 도구 : 반복 가능한 작업, 제로 설정, 간단한로드 균형 조정), [디스코] (http://discoproject.org/) (MapReduce, erlang + python, 오직 파이썬 작업), hadoop (크고 루트가 필요합니까?), PBS (토크 - 전통적인 워크로드 관리 시스템). – jfs

+0

감사합니다 J.F., 작업은 이미지를 처리하는 명령 줄 프로그램을 실행하고 공유 파일 시스템에 읽고 쓰는 질문이라고 편집했습니다. – Thomas

+0

패브릭은이 용도로는 적합 할 수 있지만 코드의 병렬 실행이 기능이 될 때까지는 사용할 수 없습니다. – Thomas

답변

3

fabric이 있습니다. 아무도 언급하지 않은 것이 놀랍습니다.

+0

패브릭이 이제 병렬 실행을합니다! readthedocs.org/docs/fabric/en/latest/usage/parallel.html – Thomas

1

buildbot 및 꼬임을 수정할 수 있습니까? 이것은 좋은 방법 인 것 같습니다.

2

SlurmPySlurm을 사용하여 파이썬에서 프로그래밍 할 수있는 강력한 작업 스케줄러입니다.

배포하기에 Condor보다 어려울 지 모르겠습니다. 또한 귀하의 모든 요구 사항에 부합하는지 여부는 알 수 없지만 다만 대비하여 적어 둡니다.

+0

Slurm은 작업을 수행하는 것처럼 보이지만 사용자 공간에 배치하는 것은 거의 불가능 해 보입니다. 질문에서 요구 사항을 약간 축소 할 것입니다. (질문을 편집하기 전에이 대답이 더 적절하다는 것을 유의하십시오.) – Thomas

1

func을 살펴보십시오. 나는 "Hello, world"수준을 넘어선 그것을 사용하지는 않았지만, 당신에게 완벽하게 맞는 법안이라고 생각합니다.

0

이 질문에 늦었을 수 있지만 최근에 같은 문제가 발생하여 서버 클러스터에서 이미지 파일을 처리하기 위해 작업 일정 및 서버로드 균형 조정을 수행 할 수있는 C/C + 라이브러리를 찾고 있습니다. GUI에서 라이브러리를 호출하고 작업 상태를 모니터링합니다.

나는 slurm을 설치하고 명령을 시도했지만, 도구로 사용하고 라이브러리로 사용하는 것이 다소 어려워 보입니다. 다른 옵션은 작업 스케줄링을 제공하지만 CPU 사용률을 기반으로하는로드 균형 조정은 제공하지 않는 것 같습니다. 어떤 제안이라도 고맙게 생각합니다.

최고 감사합니다

+0

안녕 Mustaf - 새로운 질문을하면 아마도 도움이 될 것입니다. 나는 분명히 그러한 질문에 투표 할 것이고, 나는 또한 호기심이있다! – Thomas

관련 문제