Universidade Estadual de Feira de Santana

Documentos relacionados
SLURM-BULL-veredas Documentation

CAP-387(2016) Tópicos Especiais em

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Introdução à Sistemas Operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO PROCESSOS PROFESSOR CARLOS MUNIZ

Introdução à Informática

Hierarquia de Diretórios da Família Linux. Sistemas Operacionais 1

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

Técnico Subsequente em Redes de Computadores Introdução a Sistemas Abertos (ISA)

Comandos de Verificação. Alberto Felipe Friderichs Barros

Sistemas Operacionais e Introdução a Programação

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Fundamentos de Sistemas Operacionais

Sistemas Operacionais II. Prof. Gleison Batista de Sousa Aula 01

SISTEMAS OPERACIONAIS

Administração de sistemas Linux. Administração de processos.

Introdução aos Sistemas Operacionais

Escalonamento no Unix. Sistemas Operacionais

Configuração do Samba no Metasys (Modo Gráfico)

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Algoritmos e Lógica de Programação Sistemas Operacionais

Segundo trabalho prático de implementação Sistema de reserva de assentos

Sistemas Operacionais II. Prof. Gleison Batista de Sousa Aula 01

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

ARQUITETURA DE COMPUTADORES

COMPONENTES CENTRAIS DO SISTEMA OPERACIONAL. Prof. Eduardo H. S. Oliveira

Introdução à Informática

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Sistemas de Computação. Processos e escalonamento

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

T.I. para o DealerSuite: Servidores Versão: 1.1

Processos. Adão de Melo Neto

Introdução à Informática

SISTEMAS DE ARQUIVOS. Uma das funções de um sistema operacional, é organizar as informações nas memórias de um computador ou dispositivo móvel.

Threads. Pedro Cruz. EEL770 Sistemas Operacionais

PIkit : A New Kernel-Independent Processor-Interconnect Rootkit

SSC0640 Sistemas Operacionais I

Variáveis. Você pode ver as variáveis do sistema com os comandos printenv, env e set como mostra o exemplo abaixo:

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

Tutorial para Remover Vírus do Atalho de Pen Drive

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

ADMINISTRAÇÃO DE SERVIÇOS EM SISTEMAS OPERACIONAIS DE ARQUITETURA ABERTA

Comandos TOP, PS e PSTREE

Kernel Linux. O que é e como ajudar no seu desenvolvimento

Sistemas Operacionais. Aula 1

Sistemas Operacionais

Infra-Estrutura de Software. Escalonamento

Administração de Redes de Computadores

Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

Sistemas Operacionais. Visão Geral

Montagem e Manutenção

Sistemas Operacionais

Introdução à Ciência da Computação

Escalonamento no Unix. Sistemas Operacionais

Curso de extensão em Administração de Sistemas GNU/Linux Rogerio Bastos

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Processos. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Sistemas Operacionais. Capítulo 5 Processos

Resumo: Sistemas Operacionais Abertos

Administração Central Cetec Capacitações Capacitação Sistema Operacional Linux Semana III

Um programa awk contém uma seqüência de padrões (expressões regulares) e ações da seguinte forma:

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

CAP-387(2016) Tópicos Especiais em

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Administração de Sistemas Operacionais. Prof. Marlon Marcon

Centro Paula Souza TUTORIAL PARA INSTALAÇÃO DO BOCA

Informática Parte 11 Prof. Márcio Hunecke

Sistemas de Informação. Sistemas Operacionais

Escalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software

Lab - Criar uma Partição no Windows XP

Sankhya Web Connection. Versão: 02 Criado em: 28/03/2017

Sistemas Operacionais (SO)

ADMINISTRAÇÃO DE SISTEMAS LINUX. Servidor de

Sistemas Operacionais I

UFRJ IM - DCC. Departamento de Ciência da Computação. Sistemas Operacionais II. 25/10/2016 Profª Valeria Menezes Bastos 1

Curso: Redes de Computadores

Após instalar o dude, o sistema oferece para descobrir toda sua rede de forma default, particularmerte, se sua rede for grande isso fará uma confusão

pedrofilho.eti.br Linux Essentials 2.3 Acessando diretórios e arquivos 2.4 Criando, movendo e excluindo arquivos Prof. Pedro Filho

Bruno Antunes da Silva UFSCar - Sorocaba

Inicialização do sistema

Perguntas e respostas

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

Gerência de Redes de Computadores. 05 Gerência de Hospedeiros (Hosts)

Escalonamento no Unix. Sistemas Operacionais

Administração de sistemas Linux. Gerenciamento de grupos e usuários

Universidade Estadual de Feira de Santana

Instalando Servidor de Arquivos

Leia-me do Veritas System Recovery 16 Management Solution

SHELL. Alberto Felipe Friderichs Barros

SISTEMAS OPERACIONAIS

Laboratório de Informática. Leopoldo Teixeira

Sistemas Operacionais I

Relembrando. Em nossas primeiras aulas discutimos o conceito do que seria um processo! Quem lembra?

Transcrição:

Universidade Estadual de Feira de Santana Tutorial de uso do SLURM Feira de Santana - BA Março, 2016

1 INTRODUÇÃO 1 1 Introdução Tutorial criado por Victor Oliveira, voluntário do Laboratório de Computação de Alto Desempenho, com o objetivo de orientar aos usuários do cluster do Lacad como se usa o SLURM. O conteúdo deste tutorial foi criado para fins de pesquisa e pode ser usado livremente desde que citada a fonte. O LaCAD não se responsabiliza pelo uso dessas informações. 1.1 O que é o Slurm o Slurm (Simple Linux Utility for Resource Management) é um sistema gerenciador de submissão de tarefas para pequenos e grandes clusters Linux. Possui diversas vantagens, pois não requer modificação do kernel, é open-source, tolerante a falhas e escalável. O processo do Slurm consiste em: alocar exclusivamente ou não exclusivamente recursos para os usuários por uma certa quantia de tempo, depois um framework é responsável por executar e monitorar a tarefa que o usuário submeteu, e por fim ele administra a fila de tarefas pendentes. 1.2 Siglas e Termos Nodes Refere-se aos computadores ligados ao cluster. Partition Grupo de nós, separado em um conjunto lógico. São como filas de jobs, onde há restrições de tamanho, tempo, permissão, entre outros. Jobs Alocação de recurso destinada ao usuário por um período, neste tutorial um Job será referido como tarefa. Job steps Os passos que serão executados em um job. 1.3 Comandos sacct - Usado para reportar informações sobre jobs em atividade ou completos. salloc - Usado para alocar recursos para um job. Normalmente é usado para alocar o recurso e surgir um shell de comandos. Nesse shell é usado o comando srun para iniciar a tarefa. sattach - Usado para anexar saídas ou entradas para um job em execução. sbatch - Usado para submeter um job para executar depois. Esse script deve conter comandos srun para executar tarefas em paralelo. sbcast - Usado para transferir um arquivo de um disco local para para o disco de um nó que foi alocado para jobs. Pode ser usado para aperfeiçoar o desempenho em relação ao uso de arquivos compartilhados, ou melhorar o uso de nós sem disco. scancel - Usado para cancelar um job pendente ou em execução. scontrol - Ferramenta administrativa para ver ou modificar o estado do SLURM. Alguns comandos só são executados como root. sinfo - Exibe o informações sobre partições ou nós que são gerenciados pelo SLURM. smap - Semelhante ao sinfo, mas exibe informações de jobs, partições ou nós gráficamente.

2 COMANDOS INFORMATIVOS NO SLURM. 2 squeue - Informa o estado de um job ou passos de um trabalho. Há uma variedade de opções para exibir. Por padrão, exibe os trabalhos por ordem de prioridade. srun - Usado para submeter um trabalho para execução. Há varias opções para especificar o uso de recursos, como: número de nós, número de processdores, quais nós usar, caracteristicas do nó(memória, espaço em disco), entre outros. Um trabalho pode conter uma série de passos de trabalho que executam sequencialmente ou paralelamente em nós independentes ou compartilhados dentro de uma alocação. strigger - Usado para enviar, receber ou ver eventos como nós caídos ou trabalhos perto de esgotar seu tempo. sview - Interface gráfica para o usuário receber e atualizar informações de estado dos trabalhos, partições ou nós. 2 Comandos informativos no SLURM. Usando alguns dos comandos anteriores, o usuário pode obter diversas informações sobre o sistema que o SLURM está hospedado. Como exemplo de comandos, temos o scontrol e o sinfo. 2.1 scontrol Usar o comando scontrol no Umbu retornará: comando : s c o n t r o l show p a r t i t i o n s PartitionName=DEBUG AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL AllocNodes=umbu Default=NO QoS=N/A DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED Nodes=( n u l l ) P r i o r i t y =1 RootOnly=NO ReqResv=NO Shared=NO PreemptMode=OFF State=UP TotalCPUs=0 TotalNodes=0 SelectTypeParameters=N/A PartitionName=CLUSTER AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL AllocNodes=umbu Default=YES QoS=N/A DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED Nodes=umbu 1 [1 16] P r i o r i t y =1 RootOnly=NO ReqResv=NO Shared=NO PreemptMode=OFF State=UP TotalCPUs=64 TotalNodes=16 SelectTypeParameters=N/A O que indica informações sobre as partições disponíveis no Umbu, que são as partições DEBUG e CLUSTER. Com ele podemos visualizar informações sobre quantidade de nós ou permissões.

3 SUBMETENDO SCRIPTS NO SLURM 3 2.2 sinfo comando : s i n f o PARTITION AVAIL TIMELIMIT NODES STATE NODELIST DEBUG up i n f i n i t e 0 n/a CLUSTER up i n f i n i t e 11 down umbu 1 [1,7 16] CLUSTER up i n f i n i t e 5 i d l e umbu 1 [2 6] Já no comando sinfo as informações são menos detalhadas, porém mais fácil de visualizar. A aba partition indica a partição(caso esteja marcada com um asterisco, significa que a partição é default), avail indica se a partição está funcionando ou não, timelimit indica o limite de tempo(que nesse caso não foi configurado), nodes indica a quandidade de nós, state indica o estado, no exemplo há uma partição inativa e outra sem responder, nodelist indica quais são os nós participantes. 2.3 squeue Já o comando squeue retorna a fila de tarefas submetidas ao SLURM, como por exemplo: JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 2 debug myscript v i c t o r PD 0:00 1 ( Resources ) Onde o JOBID representa o ID da tarefa submetida, Partition é a partição onde está sendo ou será executada, NAME é o nome do script submetido, USER é o nome do usuário que submeteu, ST é o estado da tarefa(r - Rodando, PD - Pendente), TIME o tempo de execução(no exemplo, como a tarefa está pendente, o tempo de execução é zero), NODES são quantos nós foram destinados. NODELIST é a lista de nós usados na aplicação que está rodando, caso ela não esteja rodando ele exibe a razão. Neste exemplo, está escrito Resources porque a tarefa está esperando por recursos para a execução, caso estivesse escrito Priority, a tarefa estaria em espera por conta de outra com mais prioridade. 3 Submetendo scripts no SLURM Para executar algum algoritmo no SLURM da maneira mais simples, o comando srun pode ser usado da seguinte maneira: $ srun nome do arquivo ele executará da maneira padrão no sistema, ou seja, dedicará apenas um nó à execução, não gerará o arquivo de saída e o usuário deverá manter o terminal aberto até o fim da execução onde a saída será escrita. Para submeter um trabalho ao SLURM, é necessário criar um script em batch, segundo o exemplo a seguir(teste.sh): #!/ bin / sh #SBATCH time=1 / bin /hostname Onde no exemplo, o comando hostname será executado com uma restrição de no máximo 1 minuto. Após a criação do script, o seguinte comando deve ser executado: $ sbatch t e s t e. sh

3 SUBMETENDO SCRIPTS NO SLURM 4 A saída da execução é salva em um arquivo, na pasta onde foi realizada a submissão, no formato: slurm-<id>.out, onde <id> é o número do id da tarefa. Os seguintes parâmetros também podem ser adicionados ao script. time(-t)- tempo máximo de execução("minutos","minutos:segundos","horas:minutos:segundos", "dias-horas"). cpus-per-task(-c)- número de núcleos por processo(para multithread). nodes(-n)- número mínimo de servidores. ntasks(-n)- número total de processos. output(-o)- especifica o arquivo de saída. job-name(-j)- especifica um nome para a tarefa. 3.1 Tarefas sequenciais 3.1.1 Tarefas com um nó e um núcleo O exemplo a seguir ilustra um script para tarefas sequenciais, ou seja, com apenas um nó e um núcleo. #!/ bin / bash #SBATCH nodes 1 #SBATCH n t a s k s 1 #SBATCH cpus per t a s k 1 3.1.2 Tarefas multithread Apenas um nó, dois processos e 4 núcleos. #SBATCH nodes 1 #SBATCH n t a s k s 2 #SBATCH cpus per t a s k 4 3.2 Tarefas Paralelas(MPI) Agora, o número de nós deve ser modificado. #SBATCH nodes 4 #SBATCH n t a s k s 32 #SBATCH cpus per t a s k 1

3 SUBMETENDO SCRIPTS NO SLURM 5 3.2.1 Aplicações MPI Multithread Para aplicações MPI multithread, além de ter mais de um nó, é necessário mais de um núcleo por tarefa(cpus-per-task). #SBATCH nodes 8 #SBATCH n t a s k s 32 #SBATCH cpus per t a s k 2

REFERÊNCIAS 6 Referências [1] Documentação do SLURM. Disponível em http://slurm.schedmd.com/documentation.html, acesso em Março de 2016.