사용자 공간 도구를 선호합니다 (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로드 및 사용 가능한 메모리를 확인하여 명령을 실행할 수있는 컴퓨터). 방금 실행 한 스크립트 이외의 작업 서버가 없어야하며이 명령을 실행할 컴퓨터에는 작업자 데몬이나 프로세스가 없어야합니다.
나는 작업을 추적하고 장애 발생시 작업을 다시 실행할 수 있기를 바라고 싶지만 실제로 필요하지 않은 추가 기능 (실제 작업 스케줄러에서는 매우 표준적인 기능)입니다.
저는 (매우 간단한)로드 밸런싱 기능이없는 classh과 PuSSH과 같은 Python 용 좋은 ssh 라이브러리를 발견했습니다. 내가 원하는 것의 반대편에는 콘도르 (Condor) 또는 슬럼 (Slurm)이 있습니다. 그것들은 적절한 방식으로 일을 할 것이지만, 그들에 관해 읽는 것에서는, 나는 그들이 필요할 때만 사용자 공간에서 그들을 회전시키는 것이 불가능하다고 생각합니다. 이것은 전용 클러스터가 아니며 이러한 호스트에 대한 루트 액세스 권한이 없습니다.
저는 다른 것을 찾을 수 없을 때 얼마나 바쁜지 알아야 할 때마다 컴퓨터의 기본 폴링과 함께 classh와 관련된 래퍼를 사용할 계획입니다.
어떤 종류의 직업입니까? [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
감사합니다 J.F., 작업은 이미지를 처리하는 명령 줄 프로그램을 실행하고 공유 파일 시스템에 읽고 쓰는 질문이라고 편집했습니다. – Thomas
패브릭은이 용도로는 적합 할 수 있지만 코드의 병렬 실행이 기능이 될 때까지는 사용할 수 없습니다. – Thomas