RSS
 

Archive for abril, 2009

NAS feito em casa, parte 1 – o Hardware

30 abr

Na atual modernidade, a maioria de nossas atividades são armazenadas de forma digital. São documentos, fotos, músicas, programas, etc, todos guardados num pequeno dispositivo. É muita responsabilidade para um dispositivo eletrônico que é sensível o bastante para parar de funcionar sem aviso prévio, e é o que acontece normalmente.

Já fazia algum tempo que eu mantinha em casa um pequeno servidor Linux para armazenar cópias dos arquivos mais importantes. No entanto era tudo muito simples e nada era automatizado. Por sorte eu não precisei utilizar o backup por conta de alguma falha de hardware. Por outro lado, como hoje eu utilizo notebook na maior parte do tempo, estou mais suscetível a falhas de hardware.

Antes de utilizar Mac eu nunca havia me interessado por softwares de backup para automatizar este processo. Nenhum deles me pareceu confiável o bastante para funcionar quando mais se precisa deles. Foi aí então que eu conheci o Time Machine, que acompanha o Mac OS X Leopard. Além de ter uma interface muito simples, ele funciona muito bem para o dia-a-dia. No entanto ele só faz backup num dispositivo externo ligado ao computador (HD externo USB/Firewire) ou num dispositivo chamado de Time Capsule que é vendido pela Apple ao custo de US$ 499 para 1TB de espaço. E isto lá nos EUA. Ao trazer para cá um aparelho destes chega a ter seu custo proibitivo para muitas pessoas.

E eu só precisava de um servidor com mais espaço em disco, pois o que tinha não dava para fazer backup de todos os computadores daqui de casa. Com um pouco de tempo pude juntar as peças para montar o que será meu maior dispositivo de armazenamento pessoal que já tive até hoje.

A lista de compras:

TOTAL: Um storage que terá 50% mais espaço e mais confiabilidade do que o Time Capsule de 1TB por um valor ~30% menor.

OBS.: O Time Capsule de maior capacidade existente hoje possui apenas 1 HD interno de 1TB, ou seja, se este HD falhar, vai tudo para a cucuia. Se quiser economizar e colocar apenas 1 HD também, este mesmo storage sairá bem mais barato (~55% menor), mas correrá o mesmo risco.

Apesar do Time Capsule ser um roteador Wifi e um mini switch Ethernet, não é este o propósito do meu próprio Time Capsule. Alias, ter todos estes componentes num produto único, só vai dar mais dores de cabeça quando apresentar alguma falha e você ficar sem storage e sem wifi ao mesmo tempo. Eu ainda prefiro ter estas funções separadas, mesmo ao custo de mais espaço físico.

Além da vantagem de ter 1 HD a mais para espelhamento, montei o projeto de forma que o sistema operacional fique instalado no Compact Flash, facilitando upgrades futuros, gastando menos energia em stand-by, etc.

Desta pequena-grande lista, vale a pena fazer uma menção honrosa à placa mãe. É uma placa de baixo custo da Intel, já com processador Intel Atom 230 embutido. Acredite se quiser, mas o processador só tem um dissipador de calor em cima. Quem está abaixo do cooler é o northbridge da placa mãe. Seu desempenho é muito satisfatório para a finalidade e seu consumo de energia tão baixo que o conjunto todo (com HDs) não vai gastar mais do que 45W.

A única reclamação que deixo registrada é com a documentação que acompanha a placa mãe. Além de ser ruim de manusear, pois se trata de um imenso papel dobrado diversas vezes, contém alguns erros grosseiros como o encontrado na imagem abaixo, que podem atrapalhar e/ou atrasar a montagem, principalmente quando os cabos não possuem bons referenciais:

Erro no manual da Intel D945GCLFBR

Erro no manual da Intel D945GCLFBR

Como já tinha um gabinete com fonte, resolvi aproveitá-lo. Ele não se parece nada com um NAS, mas certamente é o melhor no quesito dissipação de calor, justamente pelo espaço interno.

Seguem algumas fotos dos componentes:

Adaptador CF2IDE e Compact Flash

Adaptador CF2IDE e Compact Flash

Placa mãe e HDs

Placa mãe e HDs

Intel D945GCLFBR

Intel D945GCLFBR

Placa mãe já montada num gabinete ATX

Placa mãe já montada num gabinete ATX

Não irei entrar em detalhes sobre como montar as peças do hardware. Alias se pretende fazer o mesmo montando um dispositivo destes, é pré-requisito saber montar computadores, instalar Linux e utilizar pelo menos o vim.

Por enquanto é tudo. No próximo post irei documentar o processo de configuração do Linux para que se torne um NAS / Time Capsule.

Atualização: Recebi algumas críticas externas por ter publicado os valores gastos aqui. Eu não acho justo a crítica pelo simples fato de estar fazendo apenas uma comparação exata dos valores, porém, para evitar o estresse e não perder tempo com este tipo de discussão resolvi remover os valores originais da lista. O único recado que deixo para aqueles que querem criticar é: Critiquem, mas não o façam pela inveja. Caso alguém queira saber quanto isto custou, deixe um comentário que eu passo por e-mail.

 

CUDA no Max OS X

12 abr

CUDA é uma arquitetura para computação paralela em GPUs da NVIDIA. Basicamente é um conjunto de ferramentas e uma linguagem C para programar as GPUs da NVIDIA.

Há suporte para Linux, Windows e Mac OS X, tanto em 32 bits como em 64 bits.

Para instalar no Mac OS X, segui os seguintes passos.

Requerimentos

Hardware

Software

Baixe os seguintes itens no endereço: http://www.nvidia.com/object/cuda_get.html

  • CUDA toolkit: CUDA Toolkit 2.1 for Mac OS X
  • CUDA SDK: CUDA SDK 2.1 code samples for Mac OS X

Instalando

  1. Primeiro instale o Toolkit. Clique na opção Customized e certifique-se de que todas as opcões estão habilitadas:
  2. cuda-toolkitReinicie seu computador, conforme a instalação do Toolkit solicitou;
  3. Instale o SDK
  4. Para compilar os exemplos que acompanham o SDK, é necessário adicionar as seguintes linhas no seu arquivo ~/.bash_profile. Normalmente este arquivo não existe, então é necessário criá-lo. Para isto utilize seu editor de texto puro preferido, coloque as linhas abaixo e salve no seu diretório home com o nome .bash_profile:
    export PATH=/usr/local/cuda/bin:$PATH
    export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH

Testando

Para compilar os exemplos do SDK, abra um Terminal e:

$ cd /Developer/CUDA
$ make
$ make dbg=1
$ make emu=1
$ make emu=1 dbg=1

As opções acima irão criar diretórios variados em /Developer/CUDA/bin/darwin/ com diversas versões dos binários de exemplo. Para deixar mais claro, dbg compila versões para debug e emu compila versões que rodam sob emulação na própria CPU. Embora nos leve a crer que seja possível executar estes exemplos sem uma GPU da NVIDIA, é um mero engano. Num teste realizado com um MacBook sem GPU NVIDIA, nem em modo emulado executou.

Benchmark

A seguir um pequeno benchmark comparando a uma simulação n-body com GPU e sem GPU (modo emulado):

$ cd /Developer/CUDA
$ bin/darwin/release/nbody -benchmark -n=1000
Run "nbody -benchmark -n=<numBodies>" to measure perfomance.

1000 bodies, total time for 100 iterations: 47.264 ms
= 2.116 billion interactions per second
= 42.316 GFLOP/s at 20 flops per interaction

$ bin/darwin/emurelease/nbody -benchmark -n=1000
Run "nbody -benchmark -n=<numBodies>" to measure perfomance.

1000 bodies, total time for 100 iterations: 5305.616 ms
= 0.019 billion interactions per second
= 0.377 GFLOP/s at 20 flops per interaction

Apesar do modo emulado provavelmente ser mais lento do que um código desenvolvido especialmente para CPUs, dá para se ter uma boa noção do poder de processamento das GPUs. Os resultados mostraram que a GPU foi cerca de 112x mais rápida do que a CPU!

Eye Candy

Um pouco de “doce para os olhos”. Aqui rodei o exemplo nbody e capturei sua tela:

$ cd /Developer/CUDA
$ bin/darwin/release/nbody

cuda-nbody1

Referências

 
2 Comments

Posted in CUDA, HPC