Gentoo Archives: gentoo-user-br

From: Daniel da Veiga <danieldaveiga@×××××.com>
To: gentoo-user-br@l.g.o
Subject: Re: [gentoo-user-br] Instalando o Lame
Date: Fri, 14 Nov 2008 03:40:47
Message-Id: 342e1090811131940r5a2063acp43568d95b578085b@mail.gmail.com
In Reply to: Re: [gentoo-user-br] Instalando o Lame by Fabiano - deStilaDo
1 Também fiquei curioso. Provavelmente nunca vou ter uma máquina com 8
2 cores ao meu alcance... Mostra aí o resultado, hehehe, só prá matar a
3 curiosidade.
4
5 2008/11/14 Fabiano - deStilaDo <fabianoengler@×××××.com>:
6 > Então, rodar um benchzinho como aquela função que eu escrevi deve mostrar
7 > exatamente isso, o servidor é focado em throughtput, e desktop em
8 > velocidade. Para 2 arquivos, o core 2 deve ganhar, para mais, o octa core
9 > deve ganhar.
10 >
11 > Mas agora eu fiquei curioso pra ver tua saida, hehe. Pra facilitar sua vida
12 > e minha curiosidade, suponhamos que vc só tenha fácil aí um arquivo para
13 > recodificado, você pode fazê-lo 8 vezes ao mesmo tempo para 8 arquivos de
14 > saída diferente. Melhor ainda, só colar os comandos abaixo pra você
15 > executar o teste para 2, 6 e 8 lames em paralelo, só setar a variável
16 > entrada para o nome do mp3 a ser recodificado =):
17 >
18 >
19 > [01:23:03] (0) fabiano@destilador:/fd/mp3/tmp
20 > $ export entrada=entrada.mp3
21 >
22 > [01:23:14] (0) fabiano@destilador:/fd/mp3/tmp
23 > $ function multi_lame() { while (( $# > 0 )) ; do in=$1 ; shift ; out=$1 ;
24 > shift ; echo "Rodando lame: $in --> $out" ; lame -S $in $out & done ; time
25 > wait ; }
26 >
27 > [01:23:21] (0) fabiano@destilador:/fd/mp3/tmp
28 > $ multi_lame $( echo "$entrada saida"{1..2}.mp3 )
29 >
30 > Rodando lame: entrada.mp3 --> saida1.mp3
31 > [1] 13822
32 > Rodando lame: entrada.mp3 --> saida2.mp3
33 > [2] 13823
34 > [1]- Done lame -S $in $out
35 > [2]+ Done lame -S $in $out
36 >
37 > real 0m14.336s
38 > user 0m27.939s
39 > sys 0m0.063s
40 >
41 > [01:23:39] (0) fabiano@destilador:/fd/mp3/tmp
42 > $ multi_lame $( echo "$entrada saida"{1..6}.mp3 )
43 >
44 > [01:24:41] (0) fabiano@destilador:/fd/mp3/tmp
45 > $ multi_lame $( echo "$entrada saida"{1..8}.mp3 )
46 >
47 >
48 >
49 >
50 >
51 > 2008/11/14 Eduardo Schoedler <eschoedler@×××××××××××.br>
52 >>
53 >> Grande Fabiano!
54 >>
55 >> Cara, nem é para tanto... rsrsrs.
56 >> Na verdade esse octa-core é um server Dell R900, onde roda todo o sistema
57 >> da intranet do grupo.
58 >> Uma das tarefas dele é gerar um mp3 de saída de um tratamento de uma
59 >> entrada, seja wave/mp3.
60 >>
61 >> Me perguntaram porque uma máquina de R$ 30k leva mais tempo para
62 >> recompactar um mp3 do que um Core2-Duo pé-de-boi (comprado na loja da
63 >> esquina)... e fiquei meio sem saber oq dizer... rsrsrs.
64 >>
65 >> Vendo os testes, descobrimos o motivo em conjunto.
66 >> O lame não é multi-thread, e também cada core do octa tem o clock menor do
67 >> que cada core do core2... por isso a diferença.
68 >>
69 >> Abraços à todos !!!
70 >>
71 >> Eduardo.
72 >>
73 >>
74 >> From: Fabiano - deStilaDo
75 >> Sent: Thursday, November 13, 2008 11:58 PM
76 >> To: gentoo-user-br@l.g.o
77 >> Subject: Re: [gentoo-user-br] Instalando o Lame
78 >> Se você faz questão de mostrar o octa-core dando um pau, vc pode fazer um
79 >> scriptizinho pra rodar 8 lames em paralelo, aih vc ganhar em throughtput
80 >> pelo menos, maior numero de arquivos (ou segundos de musica) convertidos por
81 >> unidade de tempo =)
82 >>
83 >> O problema é o fazer o script, hehehehe =P
84 >>
85 >> Mas não deve ser nada de outro mundo também, me parece um exercício
86 >> interessante pra uma hora sem nada pra fazer, talvez dê pra implementar com
87 >> trap/wait, ou algo assim. Em C é bem fácil fazer com fork(), wait() e
88 >> execve().
89 >>
90 >> Ou ainda, se vc não quiser brincar, só pra fazer um testezinho rápido, eu
91 >> fiz uma função em bash que aceita vários arquivos como parametro e roda o
92 >> lame para todos eles ao mesmo tempo e mostra o tempo total no final. Você
93 >> pode rodar essa função pra 8 arquivos por exemplo e deixar que o escalonador
94 >> do kernel cuide do paralelismo pra voce e ver os 8 cores em 100% =)
95 >>
96 >>
97 >> A sintaxe é bem simples, pares de arquivos de entrada e saida,
98 >> respectivamente:
99 >> multi_lame entrada1 saida1 entrada2 saida2 entrada3 saida3 ...etc.
100 >>
101 >> Por exemplo eu rodando para 3 arquivos no meu amd X2:
102 >>
103 >> [00:53:50] (0) fabiano@destilador:/fd/mp3/tmp
104 >> $ function multi_lame() { while (( $# > 0 )) ; do in=$1 ; shift ; out=$1 ;
105 >> shift ; echo "Rodando lame: $in --> $out" ; lame -S $in $out & done ; time
106 >> wait ; }
107 >>
108 >> [00:54:02] (0) fabiano@destilador:/fd/mp3/tmp
109 >> $ multi_lame arq1.wav arq1.mp3 arq2.wav arq2.mp3 arq3.wav arq3.mp3
110 >> Rodando lame: arq1.wav --> arq1.mp3
111 >> [1] 13268
112 >> Rodando lame: arq2.wav --> arq2.mp3
113 >> [2] 13269
114 >> Rodando lame: arq3.wav --> arq3.mp3
115 >> [3] 13270
116 >> [1] Done lame -S $in $out
117 >> [2]- Done lame -S $in $out
118 >> [3]+ Done lame -S $in $out
119 >>
120 >> real 0m6.261s
121 >> user 0m10.183s
122 >> sys 0m0.083s
123 >>
124 >>
125 >> Cola tua saída pra 8 arquivos aê =PPP
126 >>
127 >> 2008/11/13 Eduardo Schoedler <eschoedler@×××××××××××.br>
128 >>>
129 >>> Já adianto que o bladeenc não converte de mp3 para mp3 ... e tb não é
130 >>> multi-thread.
131 >>> Eu até poderia gerar um passo a mais, exportando o mp3 para wave com o
132 >>> mpg321... mas aí para compactar não achei nenhum que seja multi-thread.
133 >>>
134 >>> Abraços!
135 >>> Eduardo.
136 >>>
137 >>>
138 >>> From: Eduardo Schoedler
139 >>> Sent: Thursday, November 13, 2008 5:47 PM
140 >>> To: gentoo-user-br@l.g.o
141 >>> Subject: Re: [gentoo-user-br] Instalando o Lame
142 >>> Olá Fabiano e Diogo!
143 >>>
144 >>> O htop quase me enganou... ele mostrou o lame consumindo 100%, mas ao
145 >>> constatar pelo dstat, ele mostrou idle de 50% da máquina durante o processo.
146 >>> Vejam:
147 >>>
148 >>> # dstat -c -C 0,1,total -M topcpu
149 >>> -cpu0-usage---cpu1-usage---total-cpu----most-expensive-
150 >>> usr sys idl :usr sys idl :usr sys idl | cpu process
151 >>> 100 0 0 : 1 0 99 : 51 0 50 |lame 100
152 >>> 100 0 0 : 0 1 99 : 50 1 50 |lame 100
153 >>> 99 1 0 : 0 1 99 : 50 1 50 |lame 100
154 >>> 100 0 0 : 1 0 99 : 51 0 50 |lame 100
155 >>> 99 1 0 : 1 0 99 : 50 1 50 |lame 100
156 >>> 100 0 0 : 1 0 99 : 51 0 50 |lame 100
157 >>>
158 >>>
159 >>> Logo, ele não faz multi-thread nenhum.
160 >>> Alguém aí tem outra sugestão para mp3 encoder em linha de comando ?
161 >>> Tenho um octa-core que não pode perder de um core2 duo... rsrsrs.
162 >>>
163 >>> Abraços!
164 >>>
165 >>>
166 >>> From: Fabiano - deStilaDo
167 >>> Sent: Thursday, November 13, 2008 4:38 PM
168 >>> To: gentoo-user-br@l.g.o
169 >>> Subject: Re: [gentoo-user-br] Instalando o Lame
170 >>> Me parece que o lame não eh multi-thread, logo ele só vai usar um core,
171 >>> mesmo que vc tenha 20 cpus...
172 >>>
173 >>> Execute o htop enquanto codifica um mp3 pra você ver, deve ter um core em
174 >>> 100% e o resto normal.
175 >>>
176 >>>
177 >>> 2008/11/13 Eduardo Schoedler <eschoedler@×××××××××××.br>
178 >>>>
179 >>>> Galera, tem outra coisa fazendo diferença.... acho que pode ser o clock
180 >>>> de cada CPU, apesar de um ser octa-core e outro dual-core.
181 >>>> Não sei se realmente o lame faz uso dos octa-cores.
182 >>>>
183 >>>> Testes no Octa-core (Gentoo rodando amd64, portanto sem MMX).
184 >>>> ======================================================
185 >>>>
186 >>>> # time lame ... teste.mp3
187 >>>> LAME 3.98.2 64bits (http://www.mp3dev.org/)
188 >>>> ...
189 >>>> real 0m56.400s
190 >>>> user 0m56.370s
191 >>>> sys 0m0.030s
192 >>>>
193 >>>>
194 >>>> O pior resultado do Core2 Duo ainda é 11segs melhor que o octa-Xeon.
195 >>>>
196 >>>>
197 >>>> Abraços!
198 >>>> Eduardo.
199 >>>>
200 >>>>
201 >>>> From: Eduardo Schoedler
202 >>>> Sent: Thursday, November 13, 2008 5:25 PM
203 >>>> To: gentoo-user-br@l.g.o
204 >>>> Subject: Re: [gentoo-user-br] Instalando o Lame
205 >>>> Alguns testes no Core 2 Duo:
206 >>>>
207 >>>> Com MMX ativo (e nasm instalado):
208 >>>> =============================
209 >>>>
210 >>>> # time lame ... teste.mp3
211 >>>> LAME 3.98.2 32bits (http://www.mp3dev.org/)
212 >>>> CPU features: MMX (ASM used), SSE (ASM used), SSE2
213 >>>> ...
214 >>>> real 0m41.770s
215 >>>> user 0m41.660s
216 >>>> sys 0m0.040s
217 >>>>
218 >>>>
219 >>>> Com MMX desativo (não adiantou só recompilar o Lame, tive de desinstalar
220 >>>> o nasm):
221 >>>> =====================================================================
222 >>>>
223 >>>> # time lame ... teste.mp3
224 >>>> LAME 3.98.2 32bits (http://www.mp3dev.org/)
225 >>>> ...
226 >>>> real 0m45.143s
227 >>>> user 0m45.010s
228 >>>> sys 0m0.060s
229 >>>>
230 >>>>
231 >>>> Já são 4s de diferença.
232 >>>>
233 >>>>
234 >>>> Abraços!
235 >>>>
236 >>>>
237 >>>> From: Fabiano - deStilaDo
238 >>>> Sent: Thursday, November 13, 2008 4:15 PM
239 >>>> To: gentoo-user-br@l.g.o
240 >>>> Subject: Re: [gentoo-user-br] Instalando o Lame
241 >>>> teste sem o mmx no core 2 =)
242 >>>>
243 >>>> algo assim deve funcionar:
244 >>>> $ time lame xxxxxx (tempo com mmx)
245 >>>> $ quickpkg lame
246 >>>> $ USE=-mmx emerge lame -1va
247 >>>> $ time lame yyyyyy (tempo sem mmx)
248 >>>> $ emerge lame -1Kva # restaurar o lame com mmx =)
249 >>>>
250 >>>>
251 >>>>
252 >>>> 2008/11/13 Eduardo Schoedler <eschoedler@×××××××××××.br>
253 >>>>>
254 >>>>> "Thiago Nunes" escreveu:
255 >>>>>
256 >>>>>> 2008/11/13 Eduardo Schoedler <eschoedler@×××××××××××.br>:
257 >>>>>>
258 >>>>>>> Estou tentando instalar o Lame em um Gentoo rodando em amd64.
259 >>>>>>> Porém está acontecendo um negócio estranho.
260 >>>>>>> Note que ele não está utilizando o USE de mmx, embora eu esteja
261 >>>>>>> forçando.
262 >>>>>>
263 >>>>>>>
264 >>>>>>> Alguém tem uma dica para mim conseguir compilar o Lame com o USE mmx
265 >>>>>>> ?
266 >>>>>>
267 >>>>>> Eu não tenho uma dica, mas se servir de consolo eu te mostro algo que
268 >>>>>> vai justificar a falta.
269 >>>>>>
270 >>>>>> Em "/usr/portage/profiles/arch/amd64/package.use.mask" eu encontrei o
271 >>>>>> seguinte:
272 >>>>>> ---
273 >>>>>> # 8 Aug 2008: Alexis Ballier <aballier@g.o>
274 >>>>>> # x86 asm only, it won't be built on amd64 if mmx useflag is enabled
275 >>>>>> but that
276 >>>>>> # saves people from needlessly installing nasm
277 >>>>>> # Refs bug #93279
278 >>>>>> media-sound/lame mmx
279 >>>>>> ---
280 >>>>>>
281 >>>>>> Isso é porque a use mmx ativada traz o nasm como dependência, que é um
282 >>>>>> compilador de assembly, mas só para assembly x86 (:-).
283 >>>>>>
284 >>>>>> []s
285 >>>>>
286 >>>>> Hummmm... realmente, depois que eu mandei o e-mail resolvi atualizá-lo
287 >>>>> em um gento x86 que tenho aqui.
288 >>>>> Ele instalou o nasm como dependência.
289 >>>>>
290 >>>>> É incrível, mas esse servidor (octa-Xeon E7310 de 1,6GHz com 16GB RAM)
291 >>>>> tá perdendo FEIO (aprox 10 ~15segs) para compactar um mp3 contra um
292 >>>>> Core2-duo E4500 @ 2.20GHz.
293 >>>>>
294 >>>>> Acredito que o flag mmx pode estar fazendo alguma diferença... mas não
295 >>>>> sei se é tanto assim.
296 >>>>>
297 >>>>> Abraços!
298 >>>>> Eduardo.
299 >>>>
300 >>>> --
301 >>>> Fabiano.
302 >>>
303 >>>
304 >>>
305 >>> --
306 >>> Fabiano.
307 >>
308 >>
309 >>
310 >> --
311 >> Fabiano.
312 >
313 >
314 >
315 > --
316 > Fabiano.
317 >
318
319
320
321 --
322 Daniel da Veiga