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 |