Adrenalin\’s Blog

Decembrie 11, 2010

Cum de executat mai multe comenzi concomitent

Filed under: Unix — Adrenalin @ 22:51

Sa zicem ca aveti multe arhive (tar.gz), si doriti sa le dezarhivati dar cite vreo 4 concomitent.
Deci recuperam lista de fisiere (sa zicem cu ls) si apoi ii zicem lu xargs sa ea cite un fisier (-n 1) si sa execute 4 comenzi tar -xzf concomitent (-P 4).
In final avem asta:
ls | xargs -n 1 -P 4 tar -xzf

Dar paralelizarea asta va fi cea mai efectiva cind locul lent (bottleneck) va fi procesorul si cind veti avea mai multe procesoare. Deoarece „by default” tar si alte comenzi utilizeaza un singur procesor. Dar daca sunt pornite mai multe concomitent, vor utiliza mai multe procesoare.

Apropo, cind aveti de comprimat un singur fisier mare (in asa caz xargs -P e inutil deoarece doar o singura comanda poate fi pornita), este pbzip2 care poate utiliza mai multe procesoare.

Alt fel, e cam idiot sa ai 8 procesoare virtuale (coreuri sau whatever), si sa utilizezi numai 1, isn’t it ?
In 2011 hai sa paralelizam.

Anunțuri

Lasă un comentariu »

Niciun comentariu până acum.

RSS feed for comments on this post. TrackBack URI

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s

Blog la WordPress.com.

%d blogeri au apreciat asta: