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.

Lasă un comentariu »

Niciun comentariu până acum.

Feed RSS pentru acest post. Urmăreşte URI

Lasă un răspuns

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Schimbă )

Twitter picture

You are commenting using your Twitter account. Log Out / Schimbă )

Facebook photo

You are commenting using your Facebook account. Log Out / Schimbă )

Connecting to %s

Theme: Shocking Blue Green. Bloguieşte pe WordPress.com.

Follow

Get every new post delivered to your Inbox.