On 09/25/15 23:57, Dumitru Ciobarcianu wrote:
> Salut,
>
> Am avut o provocare interesantă săptămâna asta și sunt curios cum ar fi
> rezolvat-o alții (there is more than one way to skin a cat).
>
> Se dă o listă de job-uri care se dorește a fi executată. Pentru că
> mașina este relativ puternică și se dorește a se scurta durata de
> execuție (wall clock) job-urile se pot paraleliza. Pentru că oricât de
> puternică este mașina nu are rost să pornești sute de procese în paralel
> se dorește ca doar un număr N de job-uri să se execute simultan. Pentru
> că fiecare job are o durată variabilă a execuției se dorește ca în
> momentul în care un job se termină altul să pornească în loc astfel
> încât la fiecare  moment dat să existe N joburi rulând în paralel.
>
> A se rezolva în shell.
>
> Mulțumesc,
>
> Dumitru "la final o să dau și ce am folosit eu".
> _______________________________________________
> RLUG mailing list
> [email protected]
> http://lists.lug.ro/mailman/listinfo/rlug

seq 100 | while read JOBNR; do echo "echo starting job $JOBNR; sleep 
$((RANDOM % 5)); echo job $JOBNR done" ; done | xargs -n1 -P10 -I% bash -c %

Mihai
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui