A task-based execution engine for distributed operating systems tailored to lightweight manycores with limited on-chip memory

Detalhes bibliográficos
Autor(a) principal: Souto, João Vicente
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Institucional da UFSC
Texto Completo: https://repositorio.ufsc.br/handle/123456789/237421
Resumo: Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2022.
id UFSC_75d43bf0e3335276fe92dda370e2dc16
oai_identifier_str oai:repositorio.ufsc.br:123456789/237421
network_acronym_str UFSC
network_name_str Repositório Institucional da UFSC
repository_id_str 2373
spelling A task-based execution engine for distributed operating systems tailored to lightweight manycores with limited on-chip memoryComputaçãoSistemas operacionais distribuídos (Computadores)Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2022.Processadores lightweight manycore surgiram para conciliar os requisitos de desempenho, eficiência energética e escalabilidade um único chip. Sistemas Operacionais (SOs) para essa classe de processadores apresentam um design distribuído, onde instâncias isoladas do SO cooperam para mitigar problemas de programação e portabilidade provenientes de suas complexidades arquitetônicas. Atualmente, serviços do SO geralmente recorrem a abstrações de fluxo de execução tradicionais (processos ou threads) para implementar funcionalidades pequenas, periódicas ou assíncronas. Embora essas abstrações simplifiquem consideravelmente o projeto do sistema, elas têm um impacto inegociável nas limitadas memórias presentes no chip. Devido às restrições de memória, argumentamos que as abstrações no nível do SO podem ser reformuladas para reduzir o consumo de memória do SO, sem introduzir uma sobrecarga considerável. Neste contexto, propomos um motor de execução complementar ao nível do SO que suporta tarefas leves e cooperativas que compartilham uma única pilha de execução e possuem recursos de sincronização por meio de grafos de fluxo de controle e dependência. Essa solução é ortogonal ao suporte de execução subjacente e fornece uma quantidade significativa de fluxos de execução no nível do SO com consumo de memória reduzido. Implementamos nosso motor em um SO distribuído e executamos experimentos em um lightweight manycore real. Nossos resultados mostram que o motor proposto possui as seguintes vantagens quando comparada à abstração clássica de thread: (i) fornece 63,2 vezes mais fluxos de execução por MB de memória; (ii) apresenta menor sobrecarga para gerenciar fluxos de execução e chamadas de sistema; (iii) melhora a utilização do núcleo dedicado ao SO; e (iv) apresenta resultados competitivos em aplicações do mundo real.Abstract: Lightweight manycore processors arose to reconcile performance, energy efficiency, and scalability requirements on a single chip. Operating Systems (OSes) for these processors feature a distributed design, where isolated OS instances cooperate to mitigate programmability and portability issues coming from their architectural intricacies. Currently, OS services often resort to traditional execution flow abstractions (processes or threads) to implement small, periodic, or asynchronous functionalities. Although these abstractions considerably simplify the system design, they have a non-negotiable impact on the limited on-chip memories. Due to the memory restrictions, we argue that OS-level abstractions can be reshaped to reduce the OS memory footprint without introducing considerable overhead. In this context, we propose a complementary OS-level execution engine that supports cooperative lightweight tasks that share a unique execution stack and features task synchronization via control flow and dependency graphs. This solution is orthogonal to the underlying execution support and provides numerous OS-level execution flows with reduced memory consumption. We implemented our engine in a distributed OS and executed experiments on a lightweight manycore. Our results show that it has the following advantages when compared to the classical thread abstraction: (i) it provides 63.2 times more execution flows per MB of memory; (ii) it features less overhead to manage execution flows and system calls; (iii) it improves core utilization; and (iv) it exhibits competitive results on real-world applications.Castro, Márcio BastosUniversidade Federal de Santa CatarinaSouto, João Vicente2022-07-29T23:18:09Z2022-07-29T23:18:09Z2022info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesis74 p.| il., gráfs.application/pdf377615https://repositorio.ufsc.br/handle/123456789/237421engreponame:Repositório Institucional da UFSCinstname:Universidade Federal de Santa Catarina (UFSC)instacron:UFSCinfo:eu-repo/semantics/openAccess2022-07-29T23:18:10Zoai:repositorio.ufsc.br:123456789/237421Repositório InstitucionalPUBhttp://150.162.242.35/oai/requestopendoar:23732022-07-29T23:18:10Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)false
dc.title.none.fl_str_mv A task-based execution engine for distributed operating systems tailored to lightweight manycores with limited on-chip memory
title A task-based execution engine for distributed operating systems tailored to lightweight manycores with limited on-chip memory
spellingShingle A task-based execution engine for distributed operating systems tailored to lightweight manycores with limited on-chip memory
Souto, João Vicente
Computação
Sistemas operacionais distribuídos (Computadores)
title_short A task-based execution engine for distributed operating systems tailored to lightweight manycores with limited on-chip memory
title_full A task-based execution engine for distributed operating systems tailored to lightweight manycores with limited on-chip memory
title_fullStr A task-based execution engine for distributed operating systems tailored to lightweight manycores with limited on-chip memory
title_full_unstemmed A task-based execution engine for distributed operating systems tailored to lightweight manycores with limited on-chip memory
title_sort A task-based execution engine for distributed operating systems tailored to lightweight manycores with limited on-chip memory
author Souto, João Vicente
author_facet Souto, João Vicente
author_role author
dc.contributor.none.fl_str_mv Castro, Márcio Bastos
Universidade Federal de Santa Catarina
dc.contributor.author.fl_str_mv Souto, João Vicente
dc.subject.por.fl_str_mv Computação
Sistemas operacionais distribuídos (Computadores)
topic Computação
Sistemas operacionais distribuídos (Computadores)
description Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2022.
publishDate 2022
dc.date.none.fl_str_mv 2022-07-29T23:18:09Z
2022-07-29T23:18:09Z
2022
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv 377615
https://repositorio.ufsc.br/handle/123456789/237421
identifier_str_mv 377615
url https://repositorio.ufsc.br/handle/123456789/237421
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 74 p.| il., gráfs.
application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFSC
instname:Universidade Federal de Santa Catarina (UFSC)
instacron:UFSC
instname_str Universidade Federal de Santa Catarina (UFSC)
instacron_str UFSC
institution UFSC
reponame_str Repositório Institucional da UFSC
collection Repositório Institucional da UFSC
repository.name.fl_str_mv Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)
repository.mail.fl_str_mv
_version_ 1808652057827082240