View previous topic :: View next topic |
Author |
Message |
kattivo Guru
Joined: 28 Jan 2005 Posts: 450 Location: Treviso
|
Posted: Tue Feb 21, 2006 11:35 am Post subject: Dividere carico sulle CPU |
|
|
Salve,
Su task manager di windows, si puo' impostare al processo su che cpu farlo girare...
Io vorrei fare la stessa cosa su gentoo! Ho un Bi-proc, e vorrei tipo dirli....questo processo voglio che me lo fai girare cn la cpu0 e quest'altro con la cpu1....esiste un utility che riesce a gestire questo? o c'e gia di base qualche comando? _________________ Eurostep Consulting S.r.l.
Andrea P. <andrea@eurostep.it> |
|
Back to top |
|
|
kueitao Apprentice
Joined: 22 Jan 2005 Posts: 241
|
Posted: Tue Feb 21, 2006 1:22 pm Post subject: |
|
|
Linux fornisce delle API che permettono la realizzazione precisa di quello che ti serve. Si tratta di funzioni C che vanno quindi utilizzate da programmi nello stesso linguaggio o in linguaggi interfacciabili con il C per produrre la utility.
#include <sched.h>
int sched_setaffinity(pid_t pid, unsigned int cpusetsize, cpu_set_t *mask);
int sched_getaffinity(pid_t pid, unsigned int cpusetsize, cpu_set_t *mask);
Robert love, un bravo kernel hacker, ha prodotto un tool (licenziato GPL) che implementa proprio le suddette API. Se non ricordo male si chiama "taskset". Fai una ricerca su Google per trovarlo.
Saluti.
fabio de francesco
PS.: Si tratta di una utility da utilizzarsi a riga di comando. Non so se qualcuno si è mai preoccupato di creare un front-end grafico per la stessa "taskset" o altre similari che usano le stesse API.
Mi informerò meglio sull'argomento appena ho tempo perché conosco bene e talvolta uso le suddette funzioni in miei programmi C/C++ così mi piacerebbe costruire un applicazione con GUI per l'utente finale (magari con le librerie QT). |
|
Back to top |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Tue Feb 21, 2006 1:43 pm Post subject: Re: Dividere carico sulle CPU |
|
|
kattivo wrote: | Su task manager di windows, si puo' impostare al processo su che cpu farlo girare...
Io vorrei fare la stessa cosa su gentoo! Ho un Bi-proc, e vorrei tipo dirli....questo processo voglio che me lo fai girare cn la cpu0 e quest'altro con la cpu1....esiste un utility che riesce a gestire questo? o c'e gia di base qualche comando? |
potresti provare con le schedutils.
ma mi sembra una gran vaccata. se fai così le politiche di scheduling se ne vanno a (meretrici)
io credo che tu abbia bisogno di studiare un po' come funzionano i sistemi operativi e gli scheduler |
|
Back to top |
|
|
kattivo Guru
Joined: 28 Jan 2005 Posts: 450 Location: Treviso
|
Posted: Tue Feb 21, 2006 4:36 pm Post subject: |
|
|
Dovrei studiare tante cose...ma non posso fare tutto! e ne risento..! quello che volevo fare è: tipo per decodificare un dvd, farli fare tutto il lavoro a un solo processore...cosi posso utilizzare l'altra cpu per l'uso.... _________________ Eurostep Consulting S.r.l.
Andrea P. <andrea@eurostep.it> |
|
Back to top |
|
|
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Tue Feb 21, 2006 4:47 pm Post subject: |
|
|
non potresti semplicemente cambiare il nice della codifica del dvd in modo da lasciare spazio al tuo uso ... _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
stefanonafets l33t
Joined: 10 Feb 2003 Posts: 644
|
Posted: Tue Feb 21, 2006 4:47 pm Post subject: |
|
|
Non credo che cambi qualcosa all'atto pratico, lo scheduler del kernel linux (a mio avviso) funziona egregiamente... _________________ registered Linux user number #411324
sed 's/ke/che/g'
<The Deployment Slave is initializing> |
|
Back to top |
|
|
kueitao Apprentice
Joined: 22 Jan 2005 Posts: 241
|
Posted: Tue Feb 21, 2006 4:56 pm Post subject: Re: Dividere carico sulle CPU |
|
|
k.gothmog wrote: | potresti provare con le schedutils |
Ecco come si chiama il pacchetto che appunto comprende "taskset"... |
|
Back to top |
|
|
kueitao Apprentice
Joined: 22 Jan 2005 Posts: 241
|
Posted: Tue Feb 21, 2006 5:03 pm Post subject: |
|
|
Ah... In ogni caso sono daccordo con chi preferisce lasciare fare allo scheduler del kernel, almeno in generale. Prima di usare le APi di cui parlavo o la loro implementazione in un qualsiasi tool per l'utente si dovrebbe conoscere molto bene quello che si sta per fare perchè quasi sempre si rischia di peggiorare la situazione che si vorrebbe risolvere.
Rimane il fatto che le suddette API sono di estrema utilità per chi sa il fatto suo.
Saluti.
fabio de francesco |
|
Back to top |
|
|
CarloJekko Veteran
Joined: 31 Mar 2005 Posts: 1315 Location: Baia Domizia :-)
|
Posted: Tue Feb 21, 2006 5:12 pm Post subject: |
|
|
stefanonafets wrote: | Non credo che cambi qualcosa all'atto pratico, lo scheduler del kernel linux (a mio avviso) funziona egregiamente... |
O(1) _________________ C. |
|
Back to top |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Tue Feb 21, 2006 7:22 pm Post subject: |
|
|
kattivo wrote: | Dovrei studiare tante cose...ma non posso fare tutto! e ne risento..! quello che volevo fare è: tipo per decodificare un dvd, farli fare tutto il lavoro a un solo processore...cosi posso utilizzare l'altra cpu per l'uso.... |
ma scusa... tu uno scheduler non sai proprio cosa è, vero?
secondo me quello che chiedi è semplicemente assurdo. io cercherei di impiegare meglio il mio tempo, magari leggendo qualche buon libro, che eviterebbe di fare certe figure |
|
Back to top |
|
|
xdarma l33t
Joined: 08 Dec 2003 Posts: 719 Location: tra veneto e friuli (italy)
|
Posted: Tue Feb 21, 2006 8:16 pm Post subject: |
|
|
kattivo wrote: | quello che volevo fare è: tipo per decodificare un dvd, farli fare tutto il lavoro a un solo processore...cosi posso utilizzare l'altra cpu per l'uso.... |
IMHO:
1. mi associo con chi ti ha detto che per quello che ci devi fare tu, associare un processo ad un processore in particolare è una vaccata;
2. quoto chi ti ha detto di utilizzare correttamente nice
3. presumo che utilizzerai mencoder o transcode, in tal caso ti informo che per mencoder esiste l'opzione threads=n (il cui significato dovrebbe essere chiaro ad un utente di quadriprocessore), per transcode devi usare il flag -u 10,n dove 10 è il buffer predefinito, mentre n (sorpresa :-) il numero di threads...
4. mai sentito dire che sui sistemi smp un processo che genera un solo thread girerà su un solo processore alla volta?
kattivo wrote: |
Dovrei studiare tante cose...ma non posso fare tutto! e ne risento..!
|
poverino, pensa quanto tempo ti porta via leggere le pagine man...
fai bene a postare per problemoni del genere
xdarma
p.s.
monoprocessori? pfui ho comprato un quad-cpu solo perchè non riuscivo ad impennare con il motorino... |
|
Back to top |
|
|
Cazzantonio Bodhisattva
Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Wed Feb 22, 2006 7:45 pm Post subject: |
|
|
La discussione sulla maleducazione di alcune risposte precedenti è stata splittata qua perché troppo lunga
[discussione]E' importante l'educazione nel forum?
Gradirei che qua si tornasse IT grazie (possibilmente con educazione grazie ) _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Sat Apr 18, 2009 10:46 am Post subject: |
|
|
Ho trovato questo thread per caso, perché sto avendo problemi con mencoder che mi utilizza un solo processore (ho un quad core).
Prima di tutto sono andato a leggere la documentazione di mencoder.
xdarma wrote: | 3. presumo che utilizzerai mencoder o transcode, in tal caso ti informo che per mencoder esiste l'opzione threads=n (il cui significato dovrebbe essere chiaro ad un utente di quadriprocessore) |
Purtroppo l'utilizzo di threads=4 non sortisce alcun effetto, e con htop vedo che solo un core della CPU è al 100%.
Potrebbe dipendere da mplayer che non è compilato correttamente?
Il comando che usavo prima quando avevo un singolo processore, per convertire un file mpeg in avi era il seguente:
Code: | mencoder INPUT -ofps 25 -ovc xvid -oac mp3lame -lameopts abr:br=192 -srate 48000 -vf scale=720:576 -xvidencopts fixed_quant=4 -o OUTPUT.avi |
ho aggiunto l'opzione threads=4 ma non cambia niente, per l'appunto.
Questo comando l'ho trovato googlando, non l'ho fatto io.
Come si fa?
Io devo semplicemente convertire un file m2t registrato con Kaffeine dal satellite in xvid, senza ridimensionamenti particolari (anche se poi ho usato scale, lo so!!) e che abbia una buona qualità. Rapporto di compressione in GB approssimativo: 1/8. _________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
xdarma l33t
Joined: 08 Dec 2003 Posts: 719 Location: tra veneto e friuli (italy)
|
Posted: Sun Apr 19, 2009 7:21 pm Post subject: |
|
|
fbcyborg wrote: | Ho trovato questo thread per caso, perché sto avendo problemi con mencoder che mi utilizza un solo processore (ho un quad core).
Prima di tutto sono andato a leggere la documentazione di mencoder.
xdarma wrote: | 3. presumo che utilizzerai mencoder o transcode, in tal caso ti informo che per mencoder esiste l'opzione threads=n (il cui significato dovrebbe essere chiaro ad un utente di quadriprocessore) |
|
Alle volte la spocchia torna utile a qualcun'altro :-)
fbcyborg wrote: | Purtroppo l'utilizzo di threads=4 non sortisce alcun effetto, e con htop vedo che solo un core della CPU è al 100%.
Potrebbe dipendere da mplayer che non è compilato correttamente?
Il comando che usavo prima quando avevo un singolo processore, per convertire un file mpeg in avi era il seguente:
Code: | mencoder INPUT -ofps 25 -ovc xvid -oac mp3lame -lameopts abr:br=192 -srate 48000 -vf scale=720:576 -xvidencopts fixed_quant=4 -o OUTPUT.avi |
ho aggiunto l'opzione threads=4 ma non cambia niente, per l'appunto.
Questo comando l'ho trovato googlando, non l'ho fatto io.
Come si fa?
Io devo semplicemente convertire un file m2t registrato con Kaffeine dal satellite in xvid, senza ridimensionamenti particolari (anche se poi ho usato scale, lo so!!) e che abbia una buona qualità. Rapporto di compressione in GB approssimativo: 1/8. |
Credo che le uniche USE flags che ti servono dovrebbero essere: encode, x264 e xvid. Ma fai attenzione perché x264 è un formato diverso da xvid.
Ma dove hai aggiunto "threads=4" ?
Dovresti modificare così: "-xvidencopts fixed_quant=4:threads=4"
Ma dal man di mplayer ti ricordo che:
Code: | L'opzione che segue è disponibile solo nella versione 1.2.x di Xvid.
threads=<0-n>
Crea n thread per eseguire la stima del movimento (default: 0). Il numero massimo di thread che possono essere usati è l'altezza dell'immagine diviso per 16.
|
Se non ti funziona prova a cambiare librerie passando a lavc:
- sostituisci "-ovc xvid" con "-ovc lavc"
- sostituisci "-xvidencopts fixed_quant=4:threads=4" con "-lavcopts vcodec=mpeg4:vqscale=4:threads=4"
Oppure dai un occhio a questo thread: [HOW-TO] Comprimere DVDs usando mencoder/mplayer e prova a usare la codifica in più passaggi.
Ciao. _________________ proud user of faKeDE-4.7.3 -> back to windowmaker -> moved to LXQt |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
|