Gentoo Archives: gentoo-user-br

From: Eduardo Schoedler <eschoedler@×××××××××××.br>
To: gentoo-user-br@l.g.o
Subject: Re: [gentoo-user-br] Instalando o Lame
Date: Fri, 14 Nov 2008 03:04:52
Message-Id: 60F9289B66CF40A68A93B39E13311075@viaadmredesold
In Reply to: Re: [gentoo-user-br] Instalando o Lame by Fabiano - deStilaDo
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.

Replies

Subject Author
Re: [gentoo-user-br] Instalando o Lame Fabiano - deStilaDo <fabianoengler@×××××.com>