Centro de Tecnologia da Informação de Ribeirão Preto Superintendência de Tecnologia da Informação Universidade de São Paulo
Facebook

Cluster Educacional

Cluster Educacional CeTI-RP

Objetivos

Fornecer recursos de Cluster para Alunos (Graduação e Pós graduação) com necessidade de utilização de programação paralela.
Estimular o uso de cluster e programação paralela, uso das ferramentas MPI, PVM e outras.
Conhecer o HPC e sua estrutura interna, características, desenvolvimento e utilização de Softwares paralelizados.
Não é objetivo montar clusters, mas sim dimensionar e adequar às necessidades.
Ensino de programação paralela, programação em Threads, MPI, PVM e etc.
Estudos e adaptações de Softwares objetivando sua paralelização.

Para isso, o CeTI-RP disponibiliza um Cluster montado com 7 CPUs.

Para utilizá-lo, primeiramente faça a solicitação neste link: Cadastro / solicitação para uso do Cluster Educacional do CeTI-RP.

Introdução

Clusters são computadores que trabalham em conjunto para executar programas que realizam muitos cálculos.
Pode-se fazer um cluster de diversas maneiras.
Um computador de grande porte pode ser feito com computadores simples interligados por uma rede de dados e que se comunicam entre si para executar uma tarefa.
O Sistema Operacional utilizado pode ser Linux, Unix ou Windows Microsoft.

Tipos de Cluster

Alta Disponibilidade (HA – High Availability): Manter um determinado serviço de forma segura o maior tempo possível;
Alta Performance (HPC – High Performance Computing): Configuração designada a prover grande poder computacional. Nele ocorre grande carga de processamento. Velocidade de processamento medida em FLOPs (Operações em ponto flutuante). Estas velocidades chegam a muitos Gigaflops.
Balanceamento de carga: Controlar a distribuição equilibrada do processamento. Requer um monitoramento constante na sua comunicação e em seus mecanismos de redundância.

Exemplos de Clusters

Cluster Beowoulf : É constituído por diversos nós (um computador = um nó) e são gerenciados por um só computador.
É escalável e utiliza um Hardware comum, um micro computador, O gerenciador de tarefas controla todo o Cluster, monitora e distribui as tarefas entre os nós.
Os nós são exclusivamente dedicados para processamento das tarefas enviadas pelo nó gerenciador.

Cluster de Alto desempenho – HPC (High performance computing): Muito utilizado em pesquisa científica e em desenvolvimento de Software.
São equipamentos mais caros que os computadores de uso geral ou Desktops.
Utiliza-se o Sistema Operacional Linux ou Unix, de livre distribuição, o que diminui o custo do Cluster HPC.
Em linhas gerais, um Cluster aumenta a disponibilidade e performance para as aplicações, particularmente as grandes tarefas computacionais. Uma grande tarefa computacional pode ser dividida em pequenas tarefas que são distribuídas ao redor das estações (nós), como se fosse um supercomputador massivamente paralelo.
Clusters HPC são usados para computação científica ou análises financeiras, tarefas típicas para exigência de alto poder de processamento.
Não são exigidos teclados e monitores. Eventualmente são utilizados computadores Diskless (sem discos). O acesso é feito via conexão remota utilizando-se o SSH.
Os nós principais, ou gerenciadores, desempenham as funções de servidor de arquivos e gateways para o ambiente externo, por exemplo, conexão à Internet.
No servidor de arquivos são armazenados os arquivos dos usuários e arquivos dos demais nós.
Como única função, os nós executam os processos paralelamente. Como as tarefas são executadas de maneira paralela, as aplicações devem ser escritas em linguagens com suporte a paralelismo.
As linguagens com este suporte a paralelismo são C, C++ e FORTRAN.
Também são necessárias bibliotecas que permitem a execução concorrente de processos e, principalmente, a troca de mensagens (dados) e a sincronização entre os processos em execução no ambiente.

Ambientes de programação e bibliotecas mais utilizados

PVM (Parallel Virtual Machine): Especialmente desenhado para interligar recursos computacionais numa rede, fornecendo ao utilizador uma plataforma paralela para executar aplicações, independentemente da localização, da quantidade ou das diferenças entre os computadores na rede. Em PVM um programa vê um conjunto heterogêneo de computadores, UNIX, de um modo uniforme como se tratasse um único computador paralelo.
MPI (Message Passing Interface): Biblioteca de troca de mensagens utilizada para estabelecer comunicação, via troca de mensagens, entre processadores de sistemas de memória distribuída. A comunicação em MPI é realizada por chamadas explícitas às rotinas de comunicação do MPI, contidas em um programa escrito, pelo usuário, em linguagem C ou FORTRAN.
HPF (High Performance Fortran): É uma extensão do FORTRAN 77 e 90, especialmente orientado ao paralelismo de dados. Ele oferece dentre outros os seguintes recursos: permite execução paralela com memória distribuída, automaticamente detectada pelo compilador e trabalha em vários tipos de arquiteturas para paralelismo.

Alguns conceitos

Paralelismo com memória compartilhada: Enquadram-se os sistemas SMP (Symmetric Multi Processing) que possuem mais de um processador em um mesmo computador.
Todos eles compartilham os recursos de memória e disco existentes, segundo uma política de controle de concorrência adotada pelo sistema operacional.
Esta arquitetura é bem transparente ao usuário, ficando a cargo do sistema operacional a maior parte da complexidade.

Paralelismo com memória distribuída: Enquadram-se os sistemas MPP (Massive Parallel Processing), onde há pouco ou nenhum compartilhamento de recursos entre processadores.
Normalmente, cada nó de um sistema MPP é um computador independente, com memória e discos próprios.
Nestes sistemas, o controle do paralelismo é realizado pela aplicação, que deve coordenar as tarefas e a coerência entre os diversos nós.

Estrutura do Cluster do CeTI-RP

O CeTI-RP fornece serviços de Cluster com as seguintes características:

Cluster com o Sistema Rocks Cluster, de distribuição livre e sem custos.
Composto de 7 CPUs sendo um nó master e 6 nós slaves.
São processadores Intel i7 de 3.50GHz. Oito Cores por CPU e 8 Giga Bytes de RAM em cada nó.
Sistema Operacional Linux CentOS release 6.3

Cluster Sistema Rocks

http://www.rocksclusters.org

Serviços oferecidos pelo CeTI-RP:

Gerenciamento: Administração e monitoração do desempenho do Cluster, do uso das CPUs, dos recursos e dos Softwares instalados.
Documentação: Utilização do Cluster, métodos e recomendações de submissão de jobs, exemplos e modo de utilização.
Compiladores: GCC, FORTRAN
Linguagens de programação: C, C++, Fortran, Python, PHP, Perl e Java

Softwares e suas respectivas licenças de uso

HMMER – Busca Sequencial em Proteínas – http://hmmer.janelia.org/
NCBI BLAST – From National Center for Biotechnology Information – www.ncbi.nlm.nih.gov/BLAST/
MpiBLAST – From Los Alamos National Laboratory – http://mpiblast.lanl.gov/
biopython – www.biopython.org
ClustalW – From the European BioInformatics Institute – http://www.ebi.ac.uk/clustalw/
MrBayes – From School of Computational Science at the Florida State University – http://mrbayes.csit.fsu.edu/
T_Coffee – From Information Genomique et Structurale at Centre National de la Recherche Scientifique – The T-Coffee Home Page
Emboss – From European Molecular Biology Institute – http://emboss.sourceforge.net/
Phylip – From the Dept. of Biology at the University of Washington – http://evolution.genetics.washington.edu/phylip.html
fasta – From the University of Virginia – http://fasta.bioch.virginia.edu/
Glimmer – From Center for Bioinformatics and Computational Biology at the University of Maryland – http://www.cbcb.umd.edu/software/glimmer/
TIGR Assembler – From the J. Craig Venter Institute – http://www.jcvi.org/cms/research/software/
Bibliotecas OpenMPI

Bibliotecas Perl

perl-bioperl
perl-bioperl-ext
perl-bioperl-run
perl-bioperl-db

Administração do Cluster:

Suporte na utilização do Cluster para Softwares desenvolvidos pelos usuários.
Cluster disponibilizado em tempo integral, 24 horas por dia e 7 dias por semana.
Disponibilizar cadastro de contas via formulário WEB, onde deverão constar : Nome completo do usuário, descrição do projeto, Orientador e Unidade da USP.
Gerenciamento das contas de usuários.
Quotas de disco.
Controle dos recursos de uso de CPUs, memórias, discos e etc.
Manutenção do Software e Hardware.
Instalação e atualização de Softwares.
Manutenção dos serviços em execução e Backup.
Documentação para utilização dos recursos.

Normas de utilização:

Usuários cadastrados deverão manter os arquivos e programas em ordem e respeitar os termos de uso dos recursos.
Prezar pelo bom uso do Cluster.
Não executar programas maliciosos.
Não divulgar a senha a estranhos.
Não executar programas que levem o Cluster à indisponibilidade.
Manter seus dados íntegros.

Mais informações sobre os Softwares instalados no Cluster:
http://ca-cluster.cirp.usp.br/roll-documentation/
E-Mail: cluster [at] cirp [dot] usp [dot] br