Gentoo Archives: gentoo-user-br

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

Replies

Subject Author
Re: [gentoo-user-br] Instalando o Lame Daniel da Veiga <danieldaveiga@×××××.com>
Re: [gentoo-user-br] Instalando o Lame Eduardo Schoedler <eschoedler@×××××××××××.br>