Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

2014 - Final de ano

Passei o resto do ano sem muito assunto p/ ter o que escrever aqui. Pelo menos algo que possa ser interessante p/ alguém.Uma das partes boas do ano é que conheci e consegui manter algum contato com pessoas da área. Sendo mais específica, com o Júlio de Lima, após um curso que ele ministrou no SEBRAE. Isso p/ mim é um puta avanço porque, por exemplo, na Python Brasil em Curitiba passei pelo evento

a silhouette of a person's head and shoulders, used as a default avatar

Be careful with Intel turbo boost! It can screw your benchmarking! And run slower when dealing with parallel programs!

I wrote several months ago a little application called machPQ.py (I’ll open the code soon…) which calculates the active, reactive and also the apparent power in machine terminal’s over the time domain, for electromagnetic transients analysis. The files that this program have to crunch often have 1.E6 lines or more.



MANAUARA_PQFig. 1: All this work to generate this kind of images.


Due to those large files this application was taking long time to finish it’s calculations 1h-3h, hence I started to transcript it into a parallel paradigm using python as well.

The problem begins when I tried to benchmark the parallel version and compare with the single threaded one. The single threaded in some runs was being faster than the parallel version! That was driving me crazy! I don’t know why, but something told me that I should take a look at the processor state (my laptop is a Dell XPS 15 L502x with i7 processor).

And damn! I was right! With the turbo boost enabled [3] the computer running multiple threads got hotter faster and then slowed the clock speed, therefore being slower than the single thread version, or just slightly faster (depending on how hot the day was).

So, to disable the turbo boost, I used, from [1]:

# echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo

And then the magic happened! In this way, with the parallel version fighting in fair conditions with single thread version the expected results came up.

I’ll not do a long discussion over the data, but just to summarize:

  • When the code was running with turbo boost enable, the time needed to complete the simulation using the parallel version was only by 4.13 % smaller than the single threaded version (Simulation 1);
  • Now, with turbo boost disable, the non parallel version took 42.02 % more time time than the parallel version – Oh, yeah! – (Simulation 3);
  • Running the code into n-crap-vidia, with optimus [2], again, we got a nice speed up of 48.34 % (comparing the bigger time to the smaller) (Simulation 4);
  • The parallel code running directly into cpu (Simulation 3) took 2.61 % more time than into n-crap-vidia (Simulation 4). However, this mismatch is so small and I just performed a single simulation that it is not possible to verify any trend here;
  • The single thread version running with turbo boost enabled (Simulation 1) was 24.21 % faster than the single threaded version when turbo boost was disabled (Simulation 3);
  • The parallel version with turbo boost disabled (Simulation 3) was 8.77 % faster than the parallel version with turbo boost enabled (Simulation 1);

From the above analysis we can conclude:

  • This variable clock speed is a pain in the ass when doing benchmarks!!! Even disabling the turbo boost, the clock can also be reduced if the temperature is high;
  • As the major programs are still single threaded leaving the turbo boost enabled is a good idea;
  • For very demanding multiple process or multiple threaded programs, it’s a good idea disabling the turbo boost;
  • Using the GPU through bumblebee seems interesting and deserves further tests.

All the data used to analyze the performance and speed up due to the code parallelism are shown clicking here ->

Simulation 1: With turbo boost enabled

single_threadFig. 2: Simulation 1 – Single thread version.


multi_threadFig. 3: Simulation 1: Parallel threads version.


leonardo@AL:~/projects/machPQ$ time python machPQ_s_plot.py teste.adf 1.E-6 63. ; time python machPQ_teste_parallel.py teste.adf 1.E-6 63.
Abrindo arquivo de dados…
…OK!
Iniciando processamento…
…OK!
Gravando resultados em disco…
…OK!

Tempo de processamento: 186.784282

real 3m7.005s
user 3m7.135s
sys 0m0.079s
Abrindo arquivo de dados…
…OK!
Iniciando processamento…
…OK!
Gravando resultados em disco…
…OK!

Tempo de processamento: 179.066593

real 2m59.248s
user 5m14.349s
sys 1m11.704s


Simulation 2: With turbo boost enabled and running into n-crap-vidia

leonardo@AL:~/projects/machPQ$ time optirun python machPQ_s_plot.py teste.adf 1.E-6 63. ; time optirun python machPQ_teste_parallel.py teste.adf 1.E-6 63.
Abrindo arquivo de dados…
…OK!
Iniciando processamento…
…OK!
Gravando resultados em disco…
…OK!

Tempo de processamento: 203.956192

real 3m52.100s
user 3m24.476s
sys 0m0.228s
Abrindo arquivo de dados…
…OK!
Iniciando processamento…
…OK!
Gravando resultados em disco…
…OK!

Tempo de processamento: 183.662801

real 3m20.575s
user 5m29.300s
sys 0m58.710s


Simulation 3: With turbo boost disabled

single_thread_noturboFig. 4: Simulation 3 – Single thread version.


multi_thread_noturboFig. 5: Simulation 3 – Parallel threads version.


leonardo@AL:~/projects/machPQ$ time python machPQ_s_plot.py teste.adf 1.E-6 63. ; time python machPQ_teste_parallel.py teste.adf 1.E-6 63.Abrindo arquivo de dados…
…OK!
Iniciando processamento…
…OK!
Gravando resultados em disco…
…OK!

Tempo de processamento: 232.012078

real 3m52.313s
user 3m52.349s
sys 0m0.107s
Abrindo arquivo de dados…
…OK!
Iniciando processamento…
…OK!
Gravando resultados em disco…
…OK!

Tempo de processamento: 163.367201

real 2m43.608s
user 4m36.375s
sys 1m22.991s


Simulation 4: With turbo boost disabled and running into n-crap-vidia

leonardo@AL:~/projects/machPQ$ time optirun python machPQ_s_plot.py teste.adf 1.E-6 63. ; time optirun python machPQ_teste_parallel.py teste.adf 1.E-6 63.
Abrindo arquivo de dados…
…OK!
Iniciando processamento…
…OK!
Gravando resultados em disco…
…OK!

Tempo de processamento: 236.172199

real 3m59.293s
user 3m56.594s
sys 0m0.125s
Abrindo arquivo de dados…
…OK!
Iniciando processamento…
…OK!
Gravando resultados em disco…
…OK!

Tempo de processamento: 159.207409

real 2m41.755s
user 4m35.806s
sys 1m18.623s


References:

[1] – http://luisjdominguezp.tumblr.com/post/19610447111/disabling-turbo-boost-in-linux
[2] – http://bumblebee-project.org/
[3] – http://en.wikipedia.org/wiki/Intel_Turbo_Boost

Acknowledgements

English revised by my love @anielampm =) Thank you!!

a silhouette of a person's head and shoulders, used as a default avatar

Após 1 ano sem postar absolutamente nada, precisei "forçar" um pouco as coisas: - Tirei uma certificação (ISTQB CTFL); - Parei um pouco o desenvolvimento e estou me concentrando em criar um processo p/ a equipe de teste na empresa onde trabalho.

Após 1 ano sem postar absolutamente nada, precisei "forçar" um pouco as coisas: - Tirei uma certificação (ISTQB CTFL); - Parei um pouco o desenvolvimento e estou me concentrando em criar um processo p/ a equipe de teste na empresa onde trabalho. A idéia é uniformizar o modus operandi e termos ferramentas e índices para não esquentarmos mais a cabeça com artefatos de qualidade questionável, como

a silhouette of a person's head and shoulders, used as a default avatar

Instalando o conky-mannager no openSUSE 13.1

Para deixar o sua área de trabalho com openSUSE ainda mais bonita, que tal instalar o Conky que é um monitor do sistema leve e poderoso que pode mostrar várias informações sobre o seu computador.

O Conky está disponível no repositório Packman. Se você ainda não configurou seus repositórios abra o YAST e selecione Software e depois Gerenciamento de Repositórios. Em seguida selecione Adicionar Repositórios e depois selecione Repositórios da Comunidade. Uma lista de repositórios vai aparecer e, então escolha os que você deseja, principalmente o Packman que contém o Conky e muitos outros programas quase que essenciais.

Depois de atualizada a lista de repositórios, cliue no Yast em Gerencimento de Software. Faça a busca por Conky. Selecione e clique em instalar. O Conky é bem pequeno e instala rapidinho.

Para facilitar a configuração do  Conky vamos instalar o Conky-Mannager que até pouco tempo não existia em nenhum repositório (pelo menos que eu saiba), mas aque agora possui um repositório que facilita muito a nossa vida sem precisar fazer “gambiarra”com pacote .deb. Vamos lá…

Você pode instalar o novo repositório através do 1 Click Install, basta acessar esse link para configurar o repositório e instalar automaticamente: http://software.opensuse.org/download.html?project=home:DarkSS&package=conky-manager

Depois clique no botão com símbolo openSUSE.
imagem1
Na próxima página selecione a versão do openSUSE que está usando:

imagem2
É só esperar um pouquinho que o Conky-Mannager estará instalado em seu computador. Depois de instalado vá no seu Menu Iniciar  >> Utilitários >> Área de trabalho e clique em Conky Mannager.

Uma janela com o gerenciador do Conky vai abrir, basta agora você escolher um tema que mais lhe agrade. No meu caso eu gosto muito do Gotham que eu acho simples e bonito.

imagem3
Agora vamos ajustar a posição que o conky vai aparecer na tela e também configurá-lo para iniciar juntamente com o sistema para não precisarmos fazer toda vez que iniciamos a máquina. Clique em Edit e conforme a imagem posicionei o Conky aonde eu gosto, ou seja, na parte inferior esquerda da tela, mas isso pode variar conforme o gosto de cada um e também com o papel de parede, para ficar bem legal…rs.

imagem4
Agora clique em Options e selecione a caixa de seleção conforme imagem abaixo. Depois é só fechar e curtir sua área de trabalho. Adoro o Conky, pois acho que dá um charme a mais ao meu openSUSE. Veja como ficou:

imagem5
imagem6
Agora é com você. Escolha o seu tema preferido e configure-o a seu gosto. Espero ter ajudado. Um abraço!

a silhouette of a person's head and shoulders, used as a default avatar

openSUSE Science e mpmath

Para ficar registrado! Essa semana, quando estava implementado o cálculo dos parâmetros tranversais e longitudinais de linhas de transmissão para a disciplina Sobretensões Transitórias, precisei de uma biblioteca para usar com python que tivesse já disponíveis as funções de Bessel para números complexos.

Achei a biblioteca numérica de precisão arbitrária mpmath [1] [2], inclusive listei no Python Numeric Cook List, a qual continha as funções necessárias, mas infelizmente não estava disponível nos repositórios oficiais do openSUSE.

Depois de uma pesquisada encontrei o repositório extra-oficial openSUSE Science voltado para pacotes científicos. Página do OBS.

Então, para adicionar o repositório, como root:

zypper addrepo -r http://download.opensuse.org/repositories/science/openSUSE_13.1/ opensuse-science
zypper ref

Caso queira instalar a mpmath:

zypper install python-mpmath

a silhouette of a person's head and shoulders, used as a default avatar

Gerenciando seu smartphone Android via wifi com Air Droid

Acessar seu smartphone via cabo usb utilizando o protoclo MTP às vezes pode ser uma dor de cabeça. Uso o openSUSE e às vezes o aparelho simplesmente é desconectado mesmo estando com o cabo usb plugado, ou seja é uma chatice só. Passei então a procurar um aplicativo no GooglePlay que pudesse me ajudar nesta tarefa. Encontrei o Samsung Kies (meu celular é um Samsung Trios) com um custo muito baixo (quase R$4,00) e também encontrei um outro aplicativo que me chamou a atenção que foi o Air Droid.

Com o Air Droid instalado, basta eu me conectar na mesma rede wifi que meu smartphone estiver conectado e autorizar a conexão no meu celuar, ou seja, quando inicio o Air Droid ele acessa a rede wifi e me informa um endereço na rede ex: 192.168.1.20:888, então, basta acessar este endereço no meu navegador preferido em meu notebook. Ao acessar este endereço aparece no celular a mensagem de uma conexão que está sendo feita e a pergunta se eu autorizo. Depois de autorizar, consigo acessar todas as funções do meu celular via navegador.

Depois de estabelecida a conexão, eu consigo acessar a lista de contatos, fotos, arquivos, ver e gravar vídeos, músicas, transferir arquivos, efetuar ligações, instalar e remover aplicativos, enviar e gerenciar mensagens SMS e o melhor de tudo sem o maldito cabo USB.

Veja uma imagem da tela:

android

Você pode configurar o nível de segurança do aplicativo, por exemplo, você pode escolher se deve ser dada permissão ou se a conexão entre computador e smartphone pode acontecer sem que haja essa necessidade. Claro que recomendo que seja necessário autorizar o acesso. Já pensou qualquer pessoa poder acessar seu smartphone ??

Resumindo… achei muito interessante e funcional este aplicativo. Remendo com louvores.

Se estiver interessado em baixar ou saber mais sobre o aplicativo acesse esta página:
https://play.google.com/store/apps/details?id=com.sand.airdroid&hl=pt_BR

a silhouette of a person's head and shoulders, used as a default avatar

Instalando somente os updates de segurança no openSUSE 12.3

Quando a gente vai ficando grandinho, só quer que o computador funcione. Especialmente naqueles dias nós precisamos entregar/apresentar um trabalho importante. Portanto, fazer um upgrade do sistema nem sempre é uma boa ideia perto dessas datas.

security-patches

Uma boa saída no openSUSE é aplicar somente as correções de segurança da base do sistema, deixando para uma época mais tranquila, o update dos demais aplicativos.

Pensando nisso, listei abaixo, fuçado de [1] e [2], os comandos para identificar todos os patches e instalar somente aqueles que são realmente cruciais para o sistema:

Listar todos os patches:

zypper list-patches

Listar somente os patches de segurança:

zypper list-patches –category security

Instalar todos os patches:

zypper patch

Instalar somente os patches de segurança:

zypper patch –category security

Fonte:
[1] – http://forums.opensuse.org/showthread.php/495293-Install-only-the-security-updates
[2] – Manpages do zypper

a silhouette of a person's head and shoulders, used as a default avatar

Problems with pylab and ipython on openSUSE – ImportError

These days I’m trying to use python+numpy+scipy to solve some academic problems, and when I tried to import pylab module I got those errors:

In [63]: import pylab
—————————————————————————
ImportError Traceback (most recent call last)
in ()
—-> 1 import pylab

/usr/lib64/python2.7/site-packages/pylab.py in ()
—-> 1 from matplotlib.pylab import *
2 import matplotlib.pylab
3 __doc__ = matplotlib.pylab.__doc__

/usr/lib64/python2.7/site-packages/matplotlib/pylab.py in ()
263 from numpy.linalg import *
264
–> 265 from matplotlib.pyplot import *
266
267 # provide the recommended module abbrevs in the pylab namespace

/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py in ()
95
96 from matplotlib.backends import pylab_setup
—> 97 _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
98
99 @docstring.copy_dedent(Artist.findobj)

/usr/lib64/python2.7/site-packages/matplotlib/backends/__init__.pyc in pylab_setup()
23 backend_name = ‘matplotlib.backends.%s’%backend_name.lower()
24 backend_mod = __import__(backend_name,
—> 25 globals(),locals(),[backend_name])
26
27 # Things we pull in from all backends

ImportError: No module named backend_tkagg

After a few web search it was solved installing the package python-matplotlib-tk.

In openSUSE it means, as root:

zypper install python-matplotlib-tk

Reference: http://forums.opensuse.org/english/other-forums/development/programming-scripting/416182-python-matplolib.html

a silhouette of a person's head and shoulders, used as a default avatar

Minha Área de trabalho com openSUSE 12.3

Minha área de trabalho..acho que ficou legal…
Tipo assim: openSUSE 12.3, KDE 4.10.5, Conky, (monitor do sist.), Yawp (widget para o clima), Cupertino glowglass e Neon Fruit (decoração de janelas e área de trabalho)., papel de pared (achei na net…)

print-desktop

a silhouette of a person's head and shoulders, used as a default avatar

openSUSE 12.3: Grata surpresa.

official-logo-color

Mês passado, dia 9/05/11, a Canonical encerrou o suporte ao Ubuntu 11.10, tentei fazer o upgrade-release para a versão 12.04 e não fui bem sucedido. Fiz uma instalação limpa do 13.04 e alguns bugs me pegaram. Apesar de gostar muito do Ubuntu, estou um pouco cansado, e o Unity está numa derivada muito lenta. Resolvi testar o openSUSE 12.3, como já havia mencionado no twitter.

Já havia testado openSUSE há alguns anos e gostei muito na época. E dessa vez não foi diferente. Essa distro se mostrou muito bem polida e rápida. Há anos não testava também o KDE, que nessa versão 4 está muito bonito e utilizável. Depois de algum tempo trabalhando com o Unity, tinha até esquecido como um desktop pode ser configurável. Wow! Zilhões de opções de customização.

Mas nem tudo são flores. O openSUSE se mostrou um ótimo sistema para quem já tem um certo conhecimento do Linux e quer abreviar algumas configurações. Entretanto, diversos tweaks fizeram-se necessários para que o sistema ficasse devidamente utilizável nos meus padrões e me ajudasse a cumprir minhas tarefas diárias.

Como o meu intuito nesse post não é descrever todos os tweaks que fiz de maneira detalhada, vou listar todos os links que me informaram em como fazer o que eu queria/necessitava e alguns macetes para quem vem do Debian e seus derivados. Vou atualizar essa lista a medida em que for encontrando novas informações interessantes.

-> Tweaks/Macetes/Documentações:

openSUSE 10.3 survival guide or what a Debian hacker should know when using openSUSE

Unofficial Guide to openSUSE 12.3

SUN Java no OpenSUSE

build-essentials do debian/ubuntu e o pattern do openSUSE

Outra tabela de conversão de comandos entre os gerenciadores de pacotes (praticamente todos)

Instalar versões mais novas do kernel

Chapter 12. Installing Multiple Kernel Versions

Resolver o problema de acentuação (ç) no kde para teclados americanos. Basicamente configurar para utilizar mapa US International WITH Dead keys e fazer altgr + , para ç

Para usuários com teclado com mapa US Internacional e querem os acentos também no console, executem como root:

# cd /usr/share/kbd/keymaps/i386/qwerty/
# gzip –decompress br-latin1-us.map.gz
# loadkeys br-latin1-us.map
# echo “loadkeys /usr/share/kbd/keymaps/i386/qwerty/br-latin1-us.map” >> /etc/init.d/boot.local

Instalar o skype no openSUSE 12.3

Instalação do Bumbleblee (Suporte não oficial ao optimus da NVIDIA) – Testado e aprovado! -> Com a placa de vídeo NVIDIA desabilitada, o notebook passou a operar uns 10 graus celsius mais frio.

Desabilitar a opção de mostrar todas as janelas quando o mouse estiver no canto superior esquerdo no KDE.

ActiveDoc is a collection of books, articles, howtos, and FAQs around SUSE products. – Excelente fonte de documentação do openSUSE!