27
Implementação de um escalonador de processos em GPU Guilherme Martins [email protected] 6 de abril de 2017 Guilherme Martins ([email protected]) Implementação de um escalonador de processos em GPU 6 de abril de 2017 1 / 27

Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins ([email protected])Implementação

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Implementação de um escalonador de processos em GPU

Guilherme Martins

[email protected]

6 de abril de 2017

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 1 / 27

Page 2: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução

Conteúdo

1 IntroduçãoApresentaçãoConceitos

2 Objetivos

3 Metodologia

4 Cronograma

5 Referências

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 2 / 27

Page 3: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução 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 Concorrentesob orientação do professor Paulo S. L. de Souza.

Área de AtuaçãoProgramação paralela e concorrente;Programação híbrida;Pesquisa Operacional.

[email protected][email protected]

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 3 / 27

Page 4: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

O escalonamento de processos (process scheduling) é uma das tarefas fun-damentais de um Sistema Operacional. O objetivo de um algoritmo escalo-nador é definir a melhor ordem de alocação dos processos na CPU no intuitode maximizar a quantidade de jobs processados e minimizar o tempo deprocessamento [1].

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 4 / 27

Page 5: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

Existem diversas sequências possíveis para ordenar os processos, levando emconsideração diversos critérios como tamanho da tarefa (LPT), ordem deentrada (FIFO), divisão igualitária (FSS), entre outros [2].

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 5 / 27

Page 6: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

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 ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 6 / 27

Page 7: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

É evidente que existem inúmeras combinações possíveis para o sequenci-amento destes processos, que podem gerar melhores ou piores resultados,baseados nas métricas estabelecidas anteriormente.

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 7 / 27

Page 8: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

GPU

GPU (Graphics Processing Unit) ou Unidade de Processamento Gráfico éuma classe de microprocessadores especializados no processamento gráficoem computadores. Define-se computação com GPU a utilização conjunta daplaca gráfica e da CPU no intuito de acelerar o processamento de aplicaçõesou dados.

http://www.nvidia.com.br/object/what-is-gpu-computing-br.html

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 8 / 27

Page 9: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

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 ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 9 / 27

Page 10: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

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 ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 10 / 27

Page 11: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

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 ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 11 / 27

Page 12: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

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 ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 12 / 27

Page 13: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

GPGPU

General Purpose Graphics Processing Unit ou Unidade de ProcessamentoGráfico de Propósito Geral trata-se da do uso, através de tecnologias paraprogramação de propósito geral, como OpenCL e CUDA, de placas de vídeopara outros fins além de renderização gráfica. Ou seja, é a utilização da GPUpara realizar a computação em aplicações que antes eram tratadas pela CPU.

ExemplosExemplos da utilização das GPUs para outros fins podem ser identificadosnas áreas de processamento de imagem, visão computacional, inteligênciaartificial, cálculo numérico e pesquisa operacional.

fontehttps://pt.wikipedia.org/wiki/GPGPU

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 13 / 27

Page 14: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

Como funciona a aceleração por GPU

Figura 6: fonte:http://www.nvidia.com.br/object/what-is-gpu-computing-br.html

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 14 / 27

Page 15: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

CUDA

CUDATM (Compute Unified Device Architecture) é uma plataforma de com-putação paralela e um modelo de programação inventados pela NVIDIA. Elapermite aumentos significativos de performance computacional ao aprovei-tar a potência da unidade de processamento gráfico (GPU) para o processardados.

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 ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 15 / 27

Page 16: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

Fluxo de processamento em CUDA

Figura 7: Adaptado de https://en.wikipedia.org/wiki/CUDA

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 16 / 27

Page 17: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Introdução Conceitos

GPUs são dispositivos que oferecem poder computacional bastante superioraos processadores comuns CPUs, quando trata-se de problemas massiva-mente paralelos e que apresentam um espaço solução considerável. Umadas ferramentas mais estáveis e utilizadas na literatura para resolução deproblemas diversos em GPU trata-se da plataforma CUDA [3].

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 17 / 27

Page 18: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Objetivos

Conteúdo

1 IntroduçãoApresentaçãoConceitos

2 Objetivos

3 Metodologia

4 Cronograma

5 Referências

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 18 / 27

Page 19: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Objetivos

Objetivo GeralSimular as funcionalidades de um escalonador de processos de um SistemaOperacional em GPU.

Objetivos EspecíficosDesenvolver um método heurístico baseado nas diferentes abordagensde scheduling presentes na literatura que garanta uma solução razoávelpara o problema em questão;Avaliar o desempenho computacional da solução desenvolvida, compa-rando com outras já existentes;Documentar as conclusões obtidas através da escrita de um artigo.

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 19 / 27

Page 20: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Metodologia

Conteúdo

1 IntroduçãoApresentaçãoConceitos

2 Objetivos

3 Metodologia

4 Cronograma

5 Referências

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 20 / 27

Page 21: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Metodologia

O algoritmo será construído baseado na metodologia multistart, que prevêque diversas soluções iniciais podem ser paralelamente refinadas, através deuma técnica como SWAP e SHIFT, e suas interações podem ser avaliadasatravés de um critério de parada ou metodologia de corte (branch & bound).

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 21 / 27

Page 22: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Metodologia

Pretende-se gerar instâncias de jobs, através de uma ferramenta como o IBMCPLEX, 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 algoritmostradicionais.

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 22 / 27

Page 23: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Cronograma

Conteúdo

1 IntroduçãoApresentaçãoConceitos

2 Objetivos

3 Metodologia

4 Cronograma

5 Referências

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 23 / 27

Page 24: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Cronograma

Cronograma de Atividades do Projeto

Tabela 1: Cronograma do Projeto em Meses

Atividade Abril Maio JunhoEstudo da ferramenta e Revisão Bibliográfica •

Implementação • • •Testes e Validação • •

Escrita do Relatório Final (artigo) •

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 24 / 27

Page 25: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Referências

Conteúdo

1 IntroduçãoApresentaçãoConceitos

2 Objetivos

3 Metodologia

4 Cronograma

5 Referências

Guilherme Martins ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 25 / 27

Page 26: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

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 ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 26 / 27

Page 27: Implementação de um escalonador de processos em GPUwiki.icmc.usp.br/images/6/6c/Guilherme.pdf · 2018. 9. 25. · 4 Cronograma 5 Referências Guilherme Martins (guilhermemartins@usp.br)Implementação

Referências

N Melab, I Chakroun, M Mezmaz, and D Tuyttens.A GPU-accelerated Branch-and-Bound Algorithm for the Flow-ShopScheduling 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 ([email protected])Implementação de um escalonador de processos em GPU6 de abril de 2017 27 / 27