<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://dainf.ct.utfpr.edu.br/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-br">
		<id>http://dainf.ct.utfpr.edu.br/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LuisMendes</id>
		<title>Wiki DAINF - Contribuições do usuário [pt-br]</title>
		<link rel="self" type="application/atom+xml" href="http://dainf.ct.utfpr.edu.br/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LuisMendes"/>
		<link rel="alternate" type="text/html" href="http://dainf.ct.utfpr.edu.br/wiki/index.php/Especial:Contribui%C3%A7%C3%B5es/LuisMendes"/>
		<updated>2026-04-06T14:30:30Z</updated>
		<subtitle>Contribuições do usuário</subtitle>
		<generator>MediaWiki 1.18.1</generator>

	<entry>
		<id>http://dainf.ct.utfpr.edu.br/wiki/index.php/Clusters_em_Bioinform%C3%A1tica</id>
		<title>Clusters em Bioinformática</title>
		<link rel="alternate" type="text/html" href="http://dainf.ct.utfpr.edu.br/wiki/index.php/Clusters_em_Bioinform%C3%A1tica"/>
				<updated>2008-10-17T00:20:24Z</updated>
		
		<summary type="html">&lt;p&gt;LuisMendes: Nova página: __FORCETOC__ == Introdução ==  Este documento detalha o processo de instalação de um cluster em ambiente Linux. O ponto inicial consiste na escolha de uma distribuição convenient...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
== Introdução ==&lt;br /&gt;
&lt;br /&gt;
Este documento detalha o processo de instalação de um cluster em ambiente Linux. O ponto inicial consiste na escolha de uma distribuição conveniente para os propósitos do cluster, como desempenho e estabilidade. Por motivos de incompatibilidade com o hardware disponível, especificamente as placas Intel nos computadores Quad-core e Dual-core, o uso do Debian e Ubuntu Server teve que ser descartado, e dessa forma optou-se pelo Ubuntu Desktop. Por ser um sistema derivado do Debian, atende aos quesitos iniciais e com a vantagem de ter uma enorme gama de pacotes disponíveis para instalação, assim como drivers para hardware mais atual.&lt;br /&gt;
&lt;br /&gt;
Instalado o sistema operacional, deve-se fazer a configuração da rede. O servidor do cluster deve possuir duas placas: uma para comunicação com a rede externa, conectada à Internet, e outra para a comunicação interna. A rede externa atribui IP via DHCP, e para a rede interna serão atribuídos endereços fixos. Os outros computadores (nós do cluster) serão conectados apenas à rede interna, e acessarão a Internet através do servidor, configurado como Gateway. Cada placa de rede, em ambiente Linux, possui um nome no formato ''ethx'', portanto precisa-se conhecer a denominação de cada uma. A partir de agora, eth1 será considerada a placa correspondente à conexão externa, e eth0 à conexão interna.&lt;br /&gt;
&lt;br /&gt;
Com o sistema operacional e a rede funcionais, será feita a instalação do software para funcionamento do cluster através de pacotes. Dentre os principais, cita-se o MPI&amp;lt;ref&amp;gt;''Message Passing Interface'', padrão para comunicação e troca de dados em computação paralela.&amp;lt;/ref&amp;gt;, NFS&amp;lt;ref&amp;gt;''Network File System'', permite compartilhamento de arquivos.&amp;lt;/ref&amp;gt;, ssh&amp;lt;ref&amp;gt;''Secure Shell'', protocolo de comunicação que permite acesso a máquinas conectadas em rede.&amp;lt;/ref&amp;gt; e compiladores. O ssh deverá ser configurado para não exigir autenticação durante o acesso às outras máquinas, pois esta intervenção do usuário afetará medidas de tempo que possivelmente serão realizadas no cluster. Ao final, devemos configurar o MPI para usar o ssh ao invés de sua variante rsh, que é mais antiga e menos suportada.&lt;br /&gt;
&lt;br /&gt;
== Procedimento de configuração ==&lt;br /&gt;
&lt;br /&gt;
O cluster é composto pelos seguintes computadores:&lt;br /&gt;
&lt;br /&gt;
# Servidor Quad-core 2.4 GHz, 4 GB RAM, placa-mãe Intel DG33BU&lt;br /&gt;
# Três nós Dual-core 3.0 GHz, 2 GB RAM, placa-mãe Intel DG33BU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;[[Image:Mapa.jpg|Mapa de rede]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sistema operacional ===&lt;br /&gt;
&lt;br /&gt;
Em todos os computadores, instalar o Ubuntu 8.04 Desktop. É obrigatório que todas as máquinas possuam um usuário com mesmo nome, no caso, &amp;quot;simulador&amp;quot;. Durante a instalação, já é possível definir o ''Host name'' de cada máquina, através da opção ''computer name''. Para que seja possível editar arquivos privilegiados do sistema, utiliza-se ''sudo'' precedendo o comando em questão, como por exemplo a abertura de um editor de texto (''sudo vim'', ''sudo nano'', etc).&lt;br /&gt;
&lt;br /&gt;
=== Rede ===&lt;br /&gt;
&lt;br /&gt;
No servidor, conectar o cabo da rede externa em eth1 e o cabo para rede interna em eth0 (será utilizado um hub). Nos outros computadores, conectar os cabos em eth0. Para iniciar a configuração, será modificado o arquivo ''/etc/network/interfaces''. No '''servidor''', esse arquivo terá o seguinte conteúdo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.10.1&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
broadcast 192.168.10.0&lt;br /&gt;
network 192.168.10.0&lt;br /&gt;
&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet dhcp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Define-se a placa eth0 para possuir um IP fixo e servir como Gateway. A placa eth1 foi definida para obter um IP automático via DHCP. Nos '''nós''', editar o mesmo arquivo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
address 192.168.10.2&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
gateway 192.168.10.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isso é um modelo para a configuração do primeiro nó (node1). Para os outros nós, alterar a linha ''address'' com o IP respectivo de cada máquina.&lt;br /&gt;
&lt;br /&gt;
A próxima configuração é feita no arquivo ''/etc/hosts'', de forma igual em todos os computadores. Isso fará com que cada máquina fique acessível pelo seu respectivo nome, como node1 para o primeiro nó de trabalho, em vez de um IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
192.168.10.1 server&lt;br /&gt;
192.168.10.2 node1&lt;br /&gt;
192.168.10.3 node2&lt;br /&gt;
192.168.10.4 node3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para que o servidor possa ser um Gateway, é necessário habilitar o ''IP Forwarding''&amp;lt;ref&amp;gt;Capacidade de redirecionar endereços de IP via rede.&amp;lt;/ref&amp;gt;. Para isso, edita-se o arquivo ''/etc/sysctl.conf'' e remove-se o caractere de comentário (#) da linha:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;net.ipv4.ip_forward=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Também é preciso configurar o iptables, gerenciador de regras de rede do Linux, para permitir o IP Forwarding. Para isso, adicionam-se as seguintes linhas ao arquivo ''/etc/rc.local'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/sbin/iptables -P FORWARD ACCEPT&lt;br /&gt;
/sbin/iptables --table nat -A POSTROUTING -o eth1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para que os nós consigam acessar a Internet através do servidor, devem ser configurados com o mesmo endereço de DNS. Isso é feito no arquivo ''/etc/resolv.conf'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver endereço&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O endereço DNS pode ser obtido no ''/etc/resolv.conf'' do servidor, e corresponde ao DNS distribuído pela rede externa via DHCP. Isso finaliza a instalação de rede nos computadores. Na sequência, é necessário reiniciá-los para que as configurações tomem efeito.&lt;br /&gt;
&lt;br /&gt;
=== Pacotes ===&lt;br /&gt;
&lt;br /&gt;
Os seguintes pacotes são necessários para o funcionamento do cluster:&lt;br /&gt;
&lt;br /&gt;
# '''mpich-bin''': base do MPI, inclui ferramentas de execução, documentação e exemplos.&lt;br /&gt;
# '''libmpich1.0-dev''': ferramentas para compilação de códigos em MPI.&lt;br /&gt;
# '''nfs-common''': base do NFS, para compartilhamento de arquivos.&lt;br /&gt;
# '''nfs-kernel-server''': servidor NFS.&lt;br /&gt;
# '''ssh''': para acesso remoto.&lt;br /&gt;
# '''build-essential''': compiladores, tais como g++ e gcc.&lt;br /&gt;
&lt;br /&gt;
No servidor, serão instalados os pacotes necessários com os comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install mpich-bin libmpich1.0-dev nfs-common nfs-kernel-server ssh build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nos nós, o pacote ''nfs-kernel-server'' não é necessário:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install mpich-bin libmpich1.0-dev nfs-common ssh build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ssh ===&lt;br /&gt;
&lt;br /&gt;
O ssh deve ser configurado para que não seja exigida senha no momento do acesso. O processo a seguir é um exemplo para node1, e deve ser repetido nos outros nós. Tais comandos criam uma chave de confiança entre o servidor e cada nó, eliminando a necessidade de senha:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/simulador/.ssh&lt;br /&gt;
ssh-keygen -t dsa -f id_dsa&lt;br /&gt;
scp id_dsa.pub simulador@node1:/home/simulador/.ssh/id_dsa.pub&lt;br /&gt;
ssh simulador@node1&lt;br /&gt;
cd .ssh&lt;br /&gt;
cat id_dsa.pub &amp;gt;&amp;gt; authorized_keys&lt;br /&gt;
rm id_dsa.pub&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NFS ===&lt;br /&gt;
&lt;br /&gt;
A seguir será feita a configuração do servidor. Todos os programas que serão executados no cluster deverão ser colocados no diretório compartilhado via NFS.&lt;br /&gt;
&lt;br /&gt;
# Criar o diretório compartilhado em todos os computadores: &amp;lt;pre&amp;gt;mkdir Cluster&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Editar o arquivo ''/etc/exports'', com o seguinte conteúdo: &amp;lt;pre&amp;gt;/home/simulador/Cluster *(rw,sync)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isso define que o diretório será compartilhado em toda a rede com permissões de leitura e escrita, e alterações nessa pasta serão atualizadas em todos os computadores de forma automática.&lt;br /&gt;
&lt;br /&gt;
Cada nó deve ser configurado para montar o diretório ''/home/simulador/Cluster'', que está localizado no servidor principal. Isso é feito através da edição do arquivo '/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;192.168.10.1:/home/simulador/Cluster /home/simulador/Cluster nfs defaults 0 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPI ===&lt;br /&gt;
&lt;br /&gt;
A configuração principal do MPI é feita no arquivo ''/etc/mpich/machines.LINUX'', que define a lista de computadores disponíveis para a paralelização de um processo. Editar o arquivo em todos os computadores com o seguinte conteúdo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server:4&lt;br /&gt;
node1:2&lt;br /&gt;
node2:2&lt;br /&gt;
node3:2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os valores numéricos após cada hostname definem a quantidade de processadores em cada computador.&lt;br /&gt;
&lt;br /&gt;
A seguir será definido o uso do ssh ao invés da variante mais antiga e menos segura, o rsh, pelo MPI. Isso é feito com o comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export P4_RSHCOMMAND=ssh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Também é necessário adicionar o comando ao arquivo ''/etc/rc.local''. Isso é necessário para que o comando seja repetido cada vez que o cluster for reiniciado, ou desligado por algum motivo.&lt;br /&gt;
&lt;br /&gt;
=== Informações gerais ===&lt;br /&gt;
&lt;br /&gt;
Ao ligar o cluster, é necessário que o servidor seja iniciado antes dos nós, pois deve exportar a pasta compartilhada por NFS. Caso a ordem não seja respeitada, pode-se montar a pasta manualmente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mount /home/simulador/Cluster&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para compilar um programa em MPI, é necessário copiá-lo para a pasta compartilhada, e utilizar o comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mpicc programa.c -o programa&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para executar o programa, utiliza-se:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mpirun -allcpus programa&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tal comando utiliza todos os processadores disponíveis no cluster para a execução. No funcionamento interno do MPI, os processos são disparados primeiro em todos os processadores de um nó, e quando todos estiverem sendo utilizados, a paralelização é feita em outro nó.&lt;br /&gt;
&lt;br /&gt;
== Notas ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>LuisMendes</name></author>	</entry>

	<entry>
		<id>http://dainf.ct.utfpr.edu.br/wiki/index.php/Arquivo:Mapa.jpg</id>
		<title>Arquivo:Mapa.jpg</title>
		<link rel="alternate" type="text/html" href="http://dainf.ct.utfpr.edu.br/wiki/index.php/Arquivo:Mapa.jpg"/>
				<updated>2008-10-17T00:20:14Z</updated>
		
		<summary type="html">&lt;p&gt;LuisMendes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>LuisMendes</name></author>	</entry>

	<entry>
		<id>http://dainf.ct.utfpr.edu.br/wiki/index.php/Inicia%C3%A7%C3%A3o_Cient%C3%ADfica</id>
		<title>Iniciação Científica</title>
		<link rel="alternate" type="text/html" href="http://dainf.ct.utfpr.edu.br/wiki/index.php/Inicia%C3%A7%C3%A3o_Cient%C3%ADfica"/>
				<updated>2008-10-17T00:19:53Z</updated>
		
		<summary type="html">&lt;p&gt;LuisMendes: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Apropriação em Bancada Computacional (ABaCo)]] - Arduíno, Processing e outras tecnologias &amp;lt;br /&amp;gt;Estudante: Solano Alves de Aguiar Junior &amp;lt;br /&amp;gt;Professor: [[Luiz Ernesto Merkle]]&lt;br /&gt;
&lt;br /&gt;
* [[Clusters em Bioinformática]] - Configuração em ambiente Linux e programação em MPI &amp;lt;br /&amp;gt;Estudante: Luís Guilherme B. Mendes &amp;lt;br /&amp;gt;Professora: Myriam Regattieri B. S. Delgado&lt;/div&gt;</summary>
		<author><name>LuisMendes</name></author>	</entry>

	</feed>