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
