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