Task Scheduling in Speculative Parallelization ... Task Scheduling in Speculative Parallelization...

Click here to load reader

  • date post

    10-Mar-2021
  • Category

    Documents

  • view

    3
  • download

    0

Embed Size (px)

Transcript of Task Scheduling in Speculative Parallelization ... Task Scheduling in Speculative Parallelization...

  • Task Scheduling in Speculative Parallelization

    David Burgo Baptista

    Dissertação para Obtenção do Grau de Mestre em Engenharia Informática e de Computadores

    Júri

    Presidente: Doutor João António Madeiras Pereira

    Orientador: Doutor João Manuel Pinheiro Cachopo

    Vogal: Doutor João Manuel Santos Lourenço

    Outubro de 2011

  • Agradecimentos

    Levar a termo um trabalho de investigação não é uma proeza individual, e se há valor no tra-

    balho que entrego, trata-se apenas do reflexo inevitável da qualidade dos investigadores com quem

    trabalhei ao longo da sua realização. Desta forma, deixo em primeiro lugar nestas palavras os

    meus sinceros agradecimentos ao Prof. João Cachopo, mentor do presente trabalho e principal

    destinatário destes Agradecimentos, a quem devo todo o trabalho árduo de guiar e acompanhar

    a eclosão, exploração e maturação de uma ideia cient́ıfica, assim como do seu mestrando. Presto

    também os meus agradecimentos a todos os restantes membros do grupo ESW, cujo conviv́ıo diário

    deixou sem sombra de dúvida a sua assinatura indistingúıvel neste trabalho.

    Com igual importância, deixo ainda os meus agradecimentos a todas as pessoas que me acom-

    panharam ao longo desta jornada, que nem sempre enveredou pelos caminhos mais fáceis nem pelos

    mais curtos. Vou omitir a habitual lista de nomes e t́ıtulos que usualmente acompanham estas

    secções; pois mais que um agradecimento conjunto, devo a cada um o meu agradecimento pessoal.

    Vocês sabem quem são: Obrigado pelo vosso apoio.

    Este trabalho foi patrocinado por uma bolsa de investigação da FCT no âmbito do projecto

    RuLAM: Running Legacy Applications on Multicores, PTDC/EIA-EIA/108240/2008.

    Lisboa, Agosto de 2011

    David Baptista

  • The student searches the world for meaning. The

    master finds worlds of meaning in the search.

    Ao meu irmão Duarte, e à Diana.

  • Resumo

    Programação paralela usando um modelo de memória transaccional é uma alternativa à bem estab-

    elecida prática baseada em locks. Para além de se apresentar como uma ferramenta atractiva para

    paralelização manual, permite também novas abordagens em sistemas de paralelização automática,

    e nomeadamente sistemas de paralelização especulativa. Actualmente encontramo-nos no ponto

    em que se encontram dispońıveis na comunidade cient́ıfica sistemas de memória transaccional efi-

    cientes e flex́ıveis, pelo que a construção de sistemas de paralelização especulativa baseados em

    memória transaccional começa a ser posśıvel. Consequentemente, apresenta-se um novo conjunto

    de desafios, nomeadamente relativamente à decomposição de programas sequenciais em tarefas

    paralelas, o escalonamento destas tarefas, e resolução de conflitos, entre outros.

    Neste trabalho, exploro em detalhe o problema da paralelização automática, e particularmente

    da paralelização especulativa. No âmago desta exploração, derivo um modelo teórico simples a

    partir do qual posso identificar debilidades e potencialidades comuns aos sistemas de paralelização

    automática que encontramos na literatura. Deste ponto de partida, identifico a necessidade de ser

    adoptado um modelo de especulação mais genérico, como aquele que conseguimos construir usando

    um suporte de memória transaccional.

    Dentro deste âmbito, abordo os gestores de contenção, assim como o porquê de estes serem fun-

    damentalmente limitados no seu raio de acção em sistemas de paralelização especulativos baseados

    em memória transaccional. Discuto também o papel do escalonamento de tarefas nesses sistemas,

    e combinando estes dois temas, proponho o conceito mais genérico de escalonadores informados,

    que coleccionam e usam informação sobre conflitos ocorrentes durante a execução do programa

    entre tarefas especulativas para gerar escalonamentos mais eficientes.

    Avançando com este conceito, implemento um escalonador informado, e avalio a sua eficácia

    num sistema de paralelização especulativa, assim como numa benchmark genérica para sistemas

    de memória transaccional. Os resultados que obtenho nesta avaliação vão de neutrais a positivos,

    indicando a necessidade de mais investigação nesta área.

  • Abstract

    Concurrent programming using transactional memory models is an alternative approach to the

    ubiquitously supported lock-based programming. Transactional memory suits itself well not only

    to manual parallelization, but also to automatic parallelization, particularly speculative paralleliza-

    tion. With the advent of efficient, general purpose software transactional memory frameworks, this

    kind of automatic parallelization starts to become viable. In consequence, there is a new set of

    challenges that need to be addressed, concerning decomposition of a sequential program into tasks,

    scheduling of said tasks, and conflict resolution, among others.

    In this work, I explore the problem of automatic parallelization, and particularly of speculative

    parallelization, in detail, and derive a basic model upon which I can identify common strengths

    and weaknesses in state-of-the-art systems. I delineate why there is a need towards a more generic

    speculation model, such as the one we can build on top of a transactional memory runtime.

    Within this scope, I discuss the role of contention managers and how they are poorly suited for

    speculative parallelization systems using transactional memory runtimes as speculation support,

    along with the role of scheduling in those systems, and therewith I propose a new, more generic

    concept, that of conflict-aware schedulers – task schedulers that collect and use information about

    conflicts occuring between speculative tasks.

    Building on this foundation, I implement a conflict-aware scheduler, and evaluate it on both

    a speculative parallelization system and a general purpose software transactional memory bench-

    mark, obtaining a range of neutral to positive results, opening the way for further research in this

    area.

  • Palavras-chave Memória Transaccional

    Execução Especulativa

    Paralelização Automática

    Ambientes Multiprocessador

    Gestão de Contenção

    Escalonamento

    Keywords Transactional Memory

    Speculative Execution

    Automatic Parallelization

    Multicore Environments

    Contention Management

    Scheduling

  • Contents

    1 Introduction 1

    1.1 Computing Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.2 Work Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.3 Structure of the Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    2 Related Work 5

    2.1 Software Transactional Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    2.1.1 Transaction Nesting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2.1.2 Contention Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    2.2 Speculative Parallelization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    2.3 Task Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    3 Automatic Parallelization Systems 21

    3.1 The Need for Parallelization Systems . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    3.2 A Basic Model of Automatic Parallelization Systems . . . . . . . . . . . . . . . . . 23

    3.3 Speculative Parallelization Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    3.3.1 Speculation Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    4 Contention Management within Speculative Parallelization Systems 33

    4.1 False Positives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4.2 Reduced Freedom of Choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    4.2.1 Acceptable Serialization Sequences . . . . . . . . . . . . . . . . . . . . . . 36

    i

  • 4.2.2 Influence on Contention Managers . . . . . . . . . . . . . . . . . . . . . . . 38

    4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    5 Conflict-Aware Task Scheduling 41

    5.1 Towards Intelligent Schedulers in Speculative Parallelization Systems . . . . . . . 41

    5.2 Collecting Conflict Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    5.3 Extending Jaspex with Conflict-Aware Task Scheduling . . . . . . . . . . . . . . 47

    5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    6 Experimental Results 51

    6.1 Results on Jaspex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    6.2 Results on STMBench7 . . . . . . . . . . . . . . .