bere la micul dejun? On Sat, 26 Sep 2015 at 07:47, Petru Rațiu <[email protected]> wrote:
> 2015-09-26 0:57 GMT+03:00 Dumitru Ciobarcianu <[email protected] > >: > > > > > 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. > > > > > IMHO, ambitii gen 'trebuie scris in shell' duc la redneck sysadmin scripts > si se justifica doar daca era one-off si n-ai avut timp sa te gandesti la > ceva mai elegant. Eu am avut challenge-ul descris mai sus in mai multe > forme, si in functie de cat timp am avut la dispozitie si cat de robusta > s-a vrut sa fie solutia am folosit diverse abordari: > > * La problema: "vrem de exact N ori acelasi command line, cand termina unul > sa porneasca altul la fel" am rezolvat-o cu supervisord sau cu > Parallel::ForkManager din perl. > * La problema: "vrem sa facem chestiile astea in paralel si sa asteptam > pana termina cea mai slow" am pus GNU parallel (cred ca se putea folosi si > la aia dinainte). > * La problema " vrem sa apelam programul X cu parametri e la 1 la 10000 si > sa ruleze pe N threaduri, potential pe masini diferite" am facut o > inginerie cu counterul ala fiind format din fisiere pe nfs pe care obtineam > lock cu rm (care e dragut si se executa atomic). Au fost pornite varii > instante ale buclei cu pricina pe diverse masini si ne-am uitat dimineata > sa vedem ca a terminat. Daca aveam ceva mai mult timp faceam counterul ala > in mongo sau mysql, da' a evoluat organic un oneliner in chestia asta. > > La cum ai formulat problema, presimt ca vrei sa vezi monstrul de la punctul > 3, da' nu e nimic de lauda (poate doar ca demonstratie la "distributed > locks are hard, mmkay?"). > > -- > P. "noi oricum ne vedem in cateva ore, iau laptopul cu mine". > _______________________________________________ > RLUG mailing list > [email protected] > http://lists.lug.ro/mailman/listinfo/rlug > -- -- Marius Mihai Luca CTO | www.elefant.ro <sent while mobile> _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
