quinta-feira, junho 29, 2006

Dapper em um AMD64-X2 - Compiladores Intel

Hoje vou instalar os compiladores C e FORTRAN da Intel. Até o lançamento do gfortran, o ifc da Intel era o único compilador de FORTRAN 90 disponível para Linux. Para aqueles que acham que FORTRAN é linguagem morta, eu sugiro que vejam as comparações em Computer Language Shootout. FORTRAN só perde para C. Vejam FORTRAN contra Perl, por exemplo. É praticamente imbatível em cálculo numérico (nossos programas aqui rodam por dias e até meses).

Vamos ao que interessa: vá à pagina da Intel de compiladores linux e preencha os formulários para uso não comercial. Você vai receber uma licença por email e instruções para baixar os pacotes. Descompacte o arquivo tar.gz (l_cc_c_9.0.030.tar.gz, no meu caso). Vá para o diretório criado e rode o alien (apt-get install alien) para converter os rpms (i386 ou em64t, dependendo da sua arquitetura). Rode o comando abaixo, em apenas uma linha:


$ fakeroot alien -d intel-icce9-9.0-030.em64t.rpm intel-isubhe9-9.0-030.em64t.rpm intel-iidbe9-9.0-035.em64t.rpm intel-icce9-9.0-030.em64t.rpm


O processo demora um pouco.. Infelizmente o alien não faz todo o trabalho. Vamos ajeitar os pacotes:


$ mkdir tmp
$ dpkg-deb -e intel-icce9_9.0-31_amd64.deb tmp/DEBIAN
$ dpkg-deb -x intel-icce9_9.0-31_amd64.deb tmp


O -e extrai os arquivos de controle e o -x extrai os arquivos do pacote. O DINSTALL é para mudar o diretório de instalação (vai ficar no /opt/intel) . Procurando o INSTALLDIR que está erradamente setado nos scripts:

$ grep \<INSTALLDIR\> tmp/opt/intel/cce/9.0/bin/*


Vemos que a expressão aparece nos arquivos, icc, icpc, iccvars.sh e iccvars.csh. Vamos ao sed (pode usar o vi, se preferir)

$ sed -i 's/<INSTALLDIR>/\/opt\/intel\/cce\/9.0/g' tmp/opt/intel/cce/9.0/bin/icc
$ sed -i 's/<INSTALLDIR>/\/opt\/intel\/cce\/9.0/g' tmp/opt/intel/cce/9.0/bin/icc*sh
$ sed -i 's/<INSTALLDIR>/\/opt\/intel\/cce\/9.0/g' tmp/opt/intel/cce/9.0/bin/icpc

Quase lá. Agora você tem duas opções: ou faz um pacote para distribuir ou um só para você. A diferença é se você quer incluir a licença que recebeu no email no pacote, ou não. Se preferir distribuir basta

$ dpkg -b tmp icc_9.0.30_1.amd64.deb

ou outro nome que queira dar ao pacote -- eu mudei para icc, pois foi o nome que dei na versão anterior: poderia mudar o Provides no DEBIAN/control. Se preferir copie o arquivo de licença para tmp/opt/intel/cce/9.0/licenses, antes de reconstruir o pacote. O pacote com os headers também tem um bugzinho: tem o uninstall que existe no pacote do icc. Assim, vamos fazer

$ dpkg -e intel-isubhe9_9.0-31_amd64.deb tmp/DEBIAN
$ dpkg -x intel-isubhe9_9.0-31_amd64.deb tmp
$ rm tmp/opt/intel/cce/9.0/bin/uninstall.sh
$ dpkg -b tmp intel-isubhe9_9.0-31_amd64.deb


Instalando os pacotes

$ sudo dpkg -i icc_9.0.30_1.amd64.deb
$ sudo dpkg -i intel-iidbe9_9.0-36_amd64.deb
$ sudo dpkg -i intel-isubhe9_9.0-31_amd64.deb


O procedimento para a criação do pacote FORTRAN é idêntico e fica como exercício para o leitor ;)
Para executar o compilador é necessário atualizar as variáveis de ambiente, rodando

$ source /opt/intel/cce/9.0/bin/iccvars.sh

Esta linha pode ser adicionada ao seu .bashrc.

Problemas:

icc: error: could not find linux directory based on g++

Solução: export LC_ALL=C

Como o Renato apontou nos comentários, o g++ é dependência dos pacotes, embora não relatado pelo alien. Se quiser fazer o serviço bem limpo, inclua build-essential e g++ no Depends: do arquivo tmp/DEBIAN/control antes de reconstruir o pacote.

quarta-feira, junho 28, 2006

Dapper em um AMD64-X2 - Aplicações de 32 bits

Dia de finalizar e emboiolar o sistema. Para não encher mais o saco, vamos ao resumo: instalei o Acrobat Reader 7.0.8, flash e plugin Java de 32 bits (o Openoffice também é 32bits mas não há opção de escolha e a instalação é transparente para o usuário). O plug-in do Blackdown Java 1.4, disponível no Dapper, fecha o Firefox (e o Mozillão) quando tentam acessar o applet do Banco do Brasil, portanto impraticável por estas bandas. O resto está todo em 64 bits ;) Os pacotes com as bibliotecas de 32 bits são: ia32-libs, ia32-libs-gtk, ia32-libs-openoffice.org, ia32-libs-sdl e ia32-sun-java5-bin (este está no Multiverse).

O Firefox-32, eu baixei o pacote do Ubuntu e Hardware., do Alexandre Otto Strube. Depois de instalado o pacote, com o sudo dpkg -i, rodei o sudo firefox32 para atualizar (Ajuda-> Verificar Atualizações). Tudo funcionou, de prima...

Do repositório do Marillat, eu baixei o acroread, mozilla-acroread e acroread-escript 7.0.8, que são mais atuais que o Dapper. Lembre-se da dica, baixe o pacote em uma máquina de 32 bits (ficam no /var/cache/apt/archives) e copie-os para a máquina de 64 ;)
(poucos usuários tem a oportunidade de rodar em uma máquina com tantos bits quanto o ano de nascimento!) . O comando para instalar arquiteturas diferentes é


$ sudo dpkg -i --force-architecture acroread-xxx.x.i386.deb


Garimpando no fórum do Ubuntu, baixei o mplayer32 do site do Grannas. Do repositório do Marillat, baixei o w32codecs e não deixei de ver nenhum dos meus p0rn movies.

Finalmente o skype: para não ter aporrinhações baixei o skype-beta_staticQT-1.3.0.30.tar.bz. Descompactei no meu próprio diretório e rodei o skype lá dentro. Sem problemas.... O som que gravei no TestCall estava baixo mas com boa qualidade. O dinâmico vai sentir falta da qt-mt, mas quanto menos KDE e qt, melhor ;) Quem sabe um dia crio um pacote: tá bom, crio agora. Aproveite e baixe o .deb na página do Skype. Siga os passos abaixo
mkdir tmp
dpkg -e Desktop/skype-beta-1.3.0.30-1_i386.deb tmp/DEBIAN
dpkg -x Desktop/skype-beta-1.3.0.30-1_i386.deb tmp
tar -jxvf skype-beta_staticQT-1.3.0.30.tar.bz2
cp skype-1.3.0.30/skype tmp/usr/bin/skype
cp skype-1.3.0.30/skype-callto-handler tmp/usr/bin/
vi tmp/DEBIAN/control
dpkg -b tmp/ Desktop/skype-beta-1.3.0.30-1_amd64.deb
sudo dpkg -i Desktop/skype-beta-1.3.0.30-1_amd64.deb

Na etapa do vi tmp/DEBIAN/control, substitua i386 por amd64 e retire as libqt das dependências.

terça-feira, junho 27, 2006

Dapper em um AMD64-X2 - Instalação básica

Retomei a instalação do AMD Athlon(tm) 64 X2 Dual Core Processor 4400+ que temos aqui. Eu fiz a instalação por uma versão beta do Dapper. Agora que ficou estável, dei o apt-get dist-upgrade e tudo foi aparentemente bem. Eu primeiro instalei os pacotes básicos e os de desenvolvimento: gcc, gfortran e build-essential. Instalei o openssh-server para acesso remoto. Em seguida, instalei o autofs e configurei o /etc/auto.master e /etc/auto.nfs para montar os volumes da rede.

Instalei o nis e segui os procedimentos descritos em /usr/share/doc/nis/nis.debian.howto.gz. So far, so good. O problema agora são os aplicativos para desktop que o pessoal usa por aqui. Recorri muitas vezes ao fórum do ubuntu http://www.ubuntuforums.org/, em particular o de 64 bits (cheio de informações úteis!). Não é que despreze o fórum em português, mas o original tem uma seção só do amd64.

Update: *** recebi um comentário do Galactus que prevê, para a próxima semana, uma seção só de amd64 no fórum nacional. Beleza, agora só faltam os feeds ;)


Eu vou detalhar aqui os problemas com as aplicações não existentes ou problemáticas em 64 bits, principalmente aquelas de interesse do pessoal daqui (os físicos). Note que tenho várias máquinas em rede, o que vai simplificar bastante o trabalho. Por exemplo, para baixar as versões de 32 bits eu me logo em uma máquina Ubuntu com esta arquitetura e dou o apt-get -d install nome_do_pacote e pego o pacote no /var/cache/apt/archives/ :)

Eu uso a durateston como protótipo. As máquinas do grupo tem uma classificação pelos nomes: as máquinas da primeira linhagem tinham os nomes dados pelos usuários, mas eram muito pouco criativos ;) A segunda linha receberam os nomes de antidepressivos e inibidores seletivos da recaptação da serotonina, como: valium, zoloft, tegretol, gardenal e diempax. Em seguida os computadores ficaram mais rápidos ("on roids", como se diz em inglês) e passei a chamá-los como esteróides anabolizantes: winstrol, durateston, deca e primobolan. Só que vieram os os duplo-processados, mais potentes, logo só poderiam ser chamados de viagra,cialis,levitra, caverta e amendoim. Os primeiros Opterons de 64 são a milico e lxiv. Esta linhagem de 64bits X2 são uma evolução no grupo: logo esta primeira é darwin.

Os primeiros teste que fiz, rodando duas e quatro instâncias de um mesmo programa em C, mostrou que os X2 (a 2200 MHz) rodam na mesma velocidade que os Opterons duplo processados (a 2400MHz) mas não dual-core.