Implementação de um escalonador de processos em GPU

Documentos relacionados
CUDA: Compute Unified Device Architecture. Marco Antonio Simões Teixeira

Comparação de eficiência entre OpenCL e CUDA

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

PALAVRAS CHAVE. Centros de Cross-Docking, Máquinas Paralelas, Computação em GPU.

Introdução ao CUDA. Material elaborado por Davi Conte.

What is? Eduardo Viola Nicola Disciplina de IPPD

Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot

COMPUTAÇÃO PARALELA COM ACELERADORES GPGPU 1. Emilio Hoffmann De Oliveira 2, Edson Luiz Padoin 3.

ESTRATÉGIAS DE OTIMIZAÇÃO DE CÓDIGO EM OPENCL

Escalonamento de Aplicações BoT em Ambiente de Nuvem

GPU (Graphics Processing Unit) Bruno Padilha Gregory De Bonis Luciana Kayo

Processamento Paralelo Utilizando GPU

Paralelização do algoritmo de Método de Estimação Não-Paramétrico por Núcleo Estimador Multivariado (KDE) utilizando GPU/CUDA

Processamento de áudio em tempo real utilizando dispositivos não convencionais:

Fabrício Gomes Vilasbôas

MPE(S)- Metodologias de Planeamento e Escalonamento Planning and Scheduling Methodologies

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?

Computação Paralela (CUDA)

UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA

Eng. Thársis T. P. Souza

Aplicação de Processamento Paralelo com GPU a Problemas de Escoamento Monofásico em Meios Porosos. Bruno Pereira dos Santos Dany Sanchez Dominguez

Placa de vídeo em CUDA

5 Unidades de Processamento Gráfico GPUs

1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho

Suporte à Execução Eficiente de Aplicações em Plataformas com Paralelismo Multi-Nível

Organização de Computadores I

ARQUITETURA DE COMPUTADORES

Uma heurística paralela na GPU para o problema do Caixeiro Viajante Duplo com Múltiplas Pilhas

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

AGA 511. Métodos Computacionais em Astronomia. Segundo semestre de 2017

USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS

Frustum Culling Híbrido Utilizando CPU e GPU. Aluno: Eduardo Telles Carlos Orientador: Alberto Raposo Co-Orientador: Marcelo Gattass

Workshop de Informática Biomédica (WIBm)

IMPLEMENTAÇÃO E OTIMIZAÇÃO DE UMA BOUNDING INTERVAL HIERARCHY PARA UM RAYTRACER DE TEMPO REAL USANDO CUDA

SISTEMAS OPERACIONAIS

Paralelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA

UNIVERSIDADE FEDERAL DE PERNAMBUCO REALIDADE AUMENTADA COM MARCADORES EM GPU MESTRADO EM CIÊNCIAS DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo

Computação científica utilizando placas gráficas

Auditoria de senhas em hardware paralelo com o John the Ripper O impacto das tecnologias de processamento paralelo na quebra de senhas

Aplicações em CUDA. Medialab Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Análise Comparativa de Algoritmos NP-Completo Executados em CPU E GPU Utilizando CUDA

GPU Computing. GeForce and Radeon OpenCL Test. OpenCL

Introdução à Informática. Aula 1

Jônatas Lopes de Paiva Instituto de Matemática e Estatística Universidade de São Paulo. 06 de maio de 2011

MÉTODOS NUMÉRICOS UTILIZANDO GNU/OCTAVE E GPGPU

Celso L. Mendes LAC /INPE

Análise e Testes de Algoritmos Utilizando Sistemas de Arquiteturas Híbridas CPU/GPU

PROPOSTA DE UMA ESTRATÉGIA DE PROGRAMAÇÃO EXPLÍCITA COM ANOTAÇÃO EM CÓDIGO EM BUSCA DE EFICIÊNCIA ENERGÉTICA 1

MC4: Introdução à Programação Paralela em GPU para a Implementação de Métodos Numéricos

Introdução. Arquitetura e Organização de Computadores I. Programa. Arquitetura e Organização de. Computadores. Capítulo 1.

Organização de Computadores

Introdução na Computação Distribuída e Paralela

Implementação Paralela do Algoritmo de Roteamento de Veículos com Janelas de Tempo sob a Plataforma CUDA

Implementação do Conceito Big Data Utilizando Processamento Paralelo.

Leapfrog Geo 3.1. Notas técnicas da versão

6 Resultados Estratégias Consideradas

1.1. Motivação Objetivos

Clusterização K-Means Paralelo Aplicado na Classificação de Alvos em Imagens de Alta Resolução

Escalonamento de Tarefas Divisíveis em Redes Estrela

Escalonamento de Programas MPI-2: Divisão-e-Conquista com Work Pushing e Work Stealing

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

10º Congresso de Pesquisa MIDDLEWARE PARA MANIPULAÇÃO E PROCESSAMENTO DE IMAGENS EM UM CLUSTER DE DISPOSITIVOS EMBARCADOS

SSC0112 Organização de Computadores Digitais I - Turma 2

ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Avaliação do Tempo de Processamento e Comunicação via Rotinas MPI Assíncronas no Modelo OLAM

SOP - TADS Escalonamento de Processos

Autor 1 Orientador: 1. dia de mês de ano

COMPARAÇÃO ENTRE HEURÍSTICAS PARA AMBIENTES FLOW SHOP COM MINIMIZAÇÃO DO MAKESPAN

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

UM MODELO DE PROGRAMAÇÃO INTEIRA MISTA PARA A PROGRAMAÇÃO DA PRODUÇÃO EM FLOWSHOP HÍBRIDO COM BUFFERS LIMITADOS

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

ARQUITETURA DE COMPUTADORES

Sistemas de Computação

ANÁLISE COMPARATIVA DE HEURÍSTICAS PARA MINIMIZAÇÃO DE ADIANTAMENTOS E ATRASOS EM FLOW SHOP COM TEMPOS DE SETUP

Uma Implementação do Algoritmo Multiple-Segment Viterbi em um Ambiente Heterogêneo

Sistemas de Computação. Bibliogra a. Hardware e Software. Notas. Introdução. Haroldo Gambini Santos. 26 de abril de Notas

Sistemas Operacionais. Gerência de Processador

Disciplina de Organização de Computadores Digitais

CUDA-RA: Uma ferramenta de interpretação de álgebra relacional e estrutura de dados para GPU

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO

Mecanismo de Segurança para Redes Móveis Ad Hoc

Implementação e investigação de algoritmos computacionais paralelos para caracterização de imagens radiológicas de mamografias

ARQUITECTURA DE COMPUTADORES 2013/2014 2º SEMESTRE

MEIC Sistemas Distribuídos

ANNCOM Biblioteca de Redes Neurais Artificiais para Alto Desempenho Utilizando Placas de Vídeo

Análise de Desempenho e Paralelização de Algoritmos para Redes Neurais Profundas

Processamento Sísmico de Alto Desempenho na Petrobras

Introdução à Computação MAC0110

Computação Musical - Introdução slides do curso Computação Musical

Um Calculador de Capacidade de Computação para Nós de Máquinas Virtuais LAM/MPI

Sistemas de Produção em Fluxo

Engenharia Informática Computação Gráfica

Organização de Computadores I

Transcrição:

Implementação de um escalonador de processos em GPU Guilherme Martins guilhermemartins@usp.br 6 de abril de 2017 Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em6 GPU de abril de 2017 1 / 27

Conteúdo 1 Introdução Apresentação 2 Objetivos 3 Metodologia 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em6 GPU de abril de 2017 2 / 27

Apresentação Guilherme Martins Graduado em Sistemas de Informação pela Universidade Federal de Viçosa. Atualmente, mestrando em Sistemas Distribuídos e Computação Concorrente sob orientação do professor Paulo S. L. de Souza. Área de Atuação Contato Programação paralela e concorrente; Programação híbrida; Pesquisa Operacional. guilhermemartins@usp.br martins_guilherme@live.com Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em6 GPU de abril de 2017 3 / 27

O escalonamento de processos (process scheduling) é uma das tarefas fundamentais de um Sistema Operacional. O objetivo de um algoritmo escalonador é definir a melhor ordem de alocação dos processos na CPU no intuito de maximizar a quantidade de jobs processados e minimizar o tempo de processamento [1]. Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em6 GPU de abril de 2017 4 / 27

Existem diversas sequências possíveis para ordenar os processos, levando em consideração diversos critérios como tamanho da tarefa (LPT), ordem de entrada (FIFO), divisão igualitária (FSS), entre outros [2]. Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em6 GPU de abril de 2017 5 / 27

Representação de fluxo de processamento Figura 1: Flow Shop or Assembly Line Work Flow, fonte: http://www.bizharmony.com/blog/september-2013/ monetize-your-abandoned-or-dormant-technologies.aspx Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em6 GPU de abril de 2017 6 / 27

É evidente que existem inúmeras combinações possíveis para o sequenciamento destes processos, que podem gerar melhores ou piores resultados, baseados nas métricas estabelecidas anteriormente. Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em6 GPU de abril de 2017 7 / 27

GPU GPU (Graphics Processing Unit) ou Unidade de Processamento Gráfico é uma classe de microprocessadores especializados no processamento gráfico em computadores. Define-se computação com GPU a utilização conjunta da placa gráfica e da CPU no intuito de acelerar o processamento de aplicações ou dados. http://www.nvidia.com.br/object/what-is-gpu-computing-br. html Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em6 GPU de abril de 2017 8 / 27

Nvidia GeForce GTX Titan Z (desktop) Figura 2: Nvidia GeForce GTX Titan Z (desktop), fonte: http://www.nvidia.com.br/object/geforce-gtx-titan-z-br.html Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em6 GPU de abril de 2017 9 / 27

Nvidia GeForce GTX 980M (Notebook) Figura 3: Nvidia GeForce GTX 980M (Notebook), fonte: http://www.nvidia. com.br/object/geforce-gtx-900m-graphics-cards-br.html Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 10 / 27

AMD Radeon R9 nano (desktop) Figura 4: AMD Radeon R9 nano (desktop), fonte: http://www.amd.com/pt-br/products/graphics/desktop/r9 Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 11 / 27

AMD Radeon R9 m200 (notebook) Figura 5: AMD Radeon R9 m200 (notebook), fonte: http://www.amd.com/pt-br/products/graphics/notebook/r9-m200 Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 12 / 27

GPGPU General Purpose Graphics Processing Unit ou Unidade de Processamento Gráfico de Propósito Geral trata-se da do uso, através de tecnologias para programação de propósito geral, como OpenCL e CUDA, de placas de vídeo para outros fins além de renderização gráfica. Ou seja, é a utilização da GPU para realizar a computação em aplicações que antes eram tratadas pela CPU. Exemplos Exemplos da utilização das GPUs para outros fins podem ser identificados nas áreas de processamento de imagem, visão computacional, inteligência artificial, cálculo numérico e pesquisa operacional. fonte https://pt.wikipedia.org/wiki/gpgpu Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 13 / 27

Como funciona a aceleração por GPU Figura 6: fonte: http://www.nvidia.com.br/object/what-is-gpu-computing-br.html Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 14 / 27

CUDA CUDA TM (Compute Unified Device Architecture) é uma plataforma de computação paralela e um modelo de programação inventados pela NVIDIA. Ela permite aumentos significativos de performance computacional ao aproveitar a potência da unidade de processamento gráfico (GPU) para o processar dados. O modelo de programação CUDA utiliza as linguagens C, C++ ou Fortran. http://www.nvidia.com.br/object/cuda_home_new_br.html Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 15 / 27

Fluxo de processamento em CUDA Figura 7: Adaptado de https://en.wikipedia.org/wiki/cuda Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 16 / 27

GPUs são dispositivos que oferecem poder computacional bastante superior aos processadores comuns CPUs, quando trata-se de problemas massivamente paralelos e que apresentam um espaço solução considerável. Uma das ferramentas mais estáveis e utilizadas na literatura para resolução de problemas diversos em GPU trata-se da plataforma CUDA [3]. Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 17 / 27

Objetivos Conteúdo 1 Introdução Apresentação 2 Objetivos 3 Metodologia 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 18 / 27

Objetivos Objetivo Geral Simular as funcionalidades de um escalonador de processos de um Sistema Operacional em GPU. Objetivos Específicos Desenvolver um método heurístico baseado nas diferentes abordagens de scheduling presentes na literatura que garanta uma solução razoável para o problema em questão; Avaliar o desempenho computacional da solução desenvolvida, comparando com outras já existentes; Documentar as conclusões obtidas através da escrita de um artigo. Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 19 / 27

Metodologia Conteúdo 1 Introdução Apresentação 2 Objetivos 3 Metodologia 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 20 / 27

Metodologia O algoritmo será construído baseado na metodologia multistart, que prevê que diversas soluções iniciais podem ser paralelamente refinadas, através de uma técnica como SWAP e SHIFT, e suas interações podem ser avaliadas através de um critério de parada ou metodologia de corte (branch & bound). Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 21 / 27

Metodologia Pretende-se gerar instâncias de jobs, através de uma ferramenta como o IBM CPLEX, que apresentarão quantidade e tempos de processamento variável. A solução construída deve ser capaz de processar estes dados em GPU, gerar as sequências e tempos finais, que serão comparados com algoritmos tradicionais. Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 22 / 27

Cronograma Conteúdo 1 Introdução Apresentação 2 Objetivos 3 Metodologia 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 23 / 27

Cronograma Cronograma de Atividades do Projeto Tabela 1: Cronograma do Projeto em Meses Atividade Abril Maio Junho Estudo da ferramenta e Revisão Bibliográfica Implementação Testes e Validação Escrita do Relatório Final (artigo) Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 24 / 27

Referências Conteúdo 1 Introdução Apresentação 2 Objetivos 3 Metodologia 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 25 / 27

Referências Andrew S Tanenbaum and Herbert Bos. Modern operating systems. Prentice Hall Press, 2014. Michael L Pinedo. Scheduling: theory, algorithms, and systems. Springer Science & Business Media, 2008. Mathias Bourgoin, Emmanuel Chailloux, and Jean-Luc Lamotte. Efficient abstractions for gpgpu programming. International Journal of Parallel Programming, 42(4):583 600, 2014. Ashok Dwarakinath. A fair-share scheduler for the graphics processing unit. PhD thesis, STONY BROOK UNIVERSITY, 2008. Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 26 / 27

Referências N Melab, I Chakroun, M Mezmaz, and D Tuyttens. A GPU-accelerated Branch-and-Bound Algorithm for the Flow-Shop Scheduling Problem. 14th IEEE International Conference on Cluster Computing, Cluster 12, 2012. Sparsh Mittal and Jeffrey S. Vetter. A survey of cpu-gpu heterogeneous computing techniques. ACM Comput. Surv., 47(4):69:1 69:35, July 2015. Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos em 6 de GPU abril de 2017 27 / 27