kbat
|
|
|
|
|
Рег.: 22.02.2004
|
Сообщений: 904
|
Из: север юга
|
Рейтинг: 205
|
|
[linux] посоветуйте Job Scheduler
27.01.2010 21:55
|
|
|
Посоветуйте легкий оперсоурсный Job Scheduler, типа LSF. Ситуация такая: есть 4-ядерный комп, на который хочется локально посылать в очередь кучу разных мелких задач. Больше ничего не нужно. Что-то я среди пакетов дебиана искал и не нашел...
|
|
Idle
|
+++
|
|
|
|
Рег.: 30.11.2002
|
Сообщений: 7806
|
|
Рейтинг: 1198
|
|
Re: [linux] посоветуйте Job Scheduler
[re: kbat]
27.01.2010 22:31
|
|
|
|
kbat
|
|
|
|
|
Рег.: 22.02.2004
|
Сообщений: 904
|
Из: север юга
|
Рейтинг: 205
|
|
Re: [linux] посоветуйте Job Scheduler
[re: Idle]
27.01.2010 23:25
|
|
|
Quote:
http://www.clusterresources.com/products/maui/
Спасибо, почитал... похоже, это реально мощная штука, мне бы что-нибудь раз в 100 полегче
|
|
pin
|
|
|
|
|
Рег.: 16.02.2006
|
Сообщений: 1110
|
|
Рейтинг: 399
|
|
Re: [linux] посоветуйте Job Scheduler
[re: kbat]
27.01.2010 23:28
|
|
|
cron-то не подходит что ли?
|
|
kbat
|
|
|
|
|
Рег.: 22.02.2004
|
Сообщений: 904
|
Из: север юга
|
Рейтинг: 205
|
|
Re: [linux] посоветуйте Job Scheduler
[re: pin]
27.01.2010 23:49
|
|
|
Quote:
cron-то не подходит что ли?
Я думаю, что cron такое не умеет. Например, вот что мне нужно: есть программа, которая обрабатывает файл (передается через аргумент в командной строке). Мне нужно обработать такой программой несколько файлов. Это можно сделать так:
code: for file in $files; do ./my_program $file; done
Однако, таким образом мы занимаем ровно один процессор (программа не распараллелена), и обработка каждого файла занимает несколько суток. Поэтому хотелось бы использовать возможности всех 4х ядер и поставить считаться все файлы одним махом. В LSF это делается так:
code: for file in $files; do bsub my_program $file; done
причем, если задач больше, чем доступных процессоров, то "лишние" задачи стоят в ожидающей очереди до тех пор, пока не посчитаются уже запущенные. Проблема в том, что LSF - коммерческий продукт, умеющий гораздо больше того, что мне нужно, и я не хочу платить за него. Кроме LSF я знаю MPI, но он еще более громоздкая система и немного из другой оперы, хоть и есть в дебиане. А других альтернатив я пока не нашел - вот и ищу что-нибудь попроще и забесплатно.
Сейчас я запускаю и слежу за задачами вручную, а это отнимает время.
|
|
maloi
|
Зануда
|
|
|
|
Рег.: 09.05.2006
|
Сообщений: 6506
|
Из: $(pwd)
|
Рейтинг: 2880
|
|
Re: [linux] посоветуйте Job Scheduler
[re: kbat]
28.01.2010 00:02
|
|
|
|
VVD
|
Carpal Tunnel
|
|
|
|
Рег.: 04.12.2002
|
Сообщений: 6599
|
|
Рейтинг: 988
|
|
Re: [linux] посоветуйте Job Scheduler
[re: kbat]
28.01.2010 13:49
|
|
|
Что-то типа этого всунуть в cron: run.sh: files=/path/to/files/* CPU=4 # или скольк там у тебя ядер :-] for file in $files; do while [ true ]; do LS=`ls /tmp/my_program.* 2>/dev/null | wc -l` if [ "1" == "$((${LS} < ${CPU}))" ]; then break fi sleep 10 done ./my_program.sh "$file" & sleep 1 done
А это положить рядом с твоим ./my_program: my_program.sh: TMPFILE=`mktemp /tmp/my_program` ./my_program "$1" rm ${TMPFILE}
P.S. Это на вскидку. Могут быть мелкие ашипки.
|
|
Spin
|
он самый
|
|
|
|
Рег.: 17.09.2003
|
Сообщений: 14521
|
|
Рейтинг: 4387
|
|
Re: [linux] посоветуйте Job Scheduler
[re: kbat]
28.01.2010 13:54
|
|
|
+1 к предыдущему методу из скрипта можно запустить параллельно хоть тысячу процессов через & по-моему это самый простой способ
|
- а этот ваш С++ - он функциональный? - еще какой функциональный! |
|
Raul_Duke
|
зомбикорм
|
|
|
|
Рег.: 13.09.2006
|
Сообщений: 3021
|
|
Рейтинг: 1489
|
|
Re: [linux] посоветуйте Job Scheduler
[re: Spin]
28.01.2010 19:36
|
|
|
метод с make (по ссылке от maloi) все же круче : D применительно к данному случаю:
code:
$ for fin in $files; do fout=$fin.out; all="$all $fout"; echo -e "$fout: $fin\n\tmyscript $fin $fout\n" >> Makefile; done; echo "all: $all" >> Makefile && make -jN all
, fin, fout - имена входного/выходного файлов N - число процессоров
|
God bless Internet! |
|