DF-DTM :explorando redundância de tarefas em dataflow
Autor(a) principal: | |
---|---|
Data de Publicação: | 2017 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRJ |
Texto Completo: | http://hdl.handle.net/11422/8169 |
Resumo: | Instruction reuse is an optimization technique that can be used in Von Neumann architectures. This technique improves performance by avoiding the execution of redundant instructions, when the result to be produced by them can be obtained by searching a historical input/output table. Trace reuse can be applied to traces of instructions in a similar fashion. However, these techniques still need to be studied in the context of the Dataflow [1–4] model, which has been gaining traction in the high-performance computing community, due to its inherent parallelism. Dataflow programs are represented by directed graphs where nodes are instructions or tasks and edges denote data dependencies between tasks. This work presents Dataflow Dynamic Task Memoization (DF-DTM) technique, which is inspired by the Von Neumann architecture reuse technique known as DTM [5] (Dynamic Trace Memoization). DF-DTM allows the reuse of nodes and subgraphs in Dataflow models, which are analogous to instructions and traces in traditional models, respectively. We modified the Python version of the Dataflow library, Sucuri[6], to implement the DF-DTM technique. The potential of the DF-DTM is evaluated by a series of experiments that analyze the behavior of redundant tasks in five relevant benchmarks: Conway’s game of life (GoL), longest common sub-sequence (LCS), a cryptography application using the Triple DES standard (3-DES), a word counting application that follows a MapReduce (MR) model and the unbounded knapsack problem (KS). Our results shows a remarkable potential redundancy rate of approximate 98.83%, 54.73%, 72.35%, 99.73% for the benchmarks applications LCS, MR, 3-DES and GoL, respectively. |
id |
UFRJ_f05edc18f59eed3dfc69917c3b22adc1 |
---|---|
oai_identifier_str |
oai:pantheon.ufrj.br:11422/8169 |
network_acronym_str |
UFRJ |
network_name_str |
Repositório Institucional da UFRJ |
repository_id_str |
|
spelling |
DF-DTM :explorando redundância de tarefas em dataflowEngenharia de Sistemas e ComputaçãoFluxo de dadosReusoCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOInstruction reuse is an optimization technique that can be used in Von Neumann architectures. This technique improves performance by avoiding the execution of redundant instructions, when the result to be produced by them can be obtained by searching a historical input/output table. Trace reuse can be applied to traces of instructions in a similar fashion. However, these techniques still need to be studied in the context of the Dataflow [1–4] model, which has been gaining traction in the high-performance computing community, due to its inherent parallelism. Dataflow programs are represented by directed graphs where nodes are instructions or tasks and edges denote data dependencies between tasks. This work presents Dataflow Dynamic Task Memoization (DF-DTM) technique, which is inspired by the Von Neumann architecture reuse technique known as DTM [5] (Dynamic Trace Memoization). DF-DTM allows the reuse of nodes and subgraphs in Dataflow models, which are analogous to instructions and traces in traditional models, respectively. We modified the Python version of the Dataflow library, Sucuri[6], to implement the DF-DTM technique. The potential of the DF-DTM is evaluated by a series of experiments that analyze the behavior of redundant tasks in five relevant benchmarks: Conway’s game of life (GoL), longest common sub-sequence (LCS), a cryptography application using the Triple DES standard (3-DES), a word counting application that follows a MapReduce (MR) model and the unbounded knapsack problem (KS). Our results shows a remarkable potential redundancy rate of approximate 98.83%, 54.73%, 72.35%, 99.73% for the benchmarks applications LCS, MR, 3-DES and GoL, respectively.Reutilização de instruções é uma técnica de otimização que pode ser utilizada em arquiteturas de Von Neumann. Esta técnica gera ganho de desempenho ao evitar que instruções redundantes executem, quando os resultados a serem produzidos por elas podem ser obtidos pesquisando uma tabela histórica de entrada/saída. A reutilização de traços pode ser aplicada aos traços de instruções de forma semelhante. No entanto, essas técnicas ainda precisam ser estudadas no contexto do modelo Dataflow[1–4], que vem ganhando notoriedade na comunidade de computação de alto desempenho devido ao seu paralelismo inerente. Os programas Dataflow são representados por grafos direcionados, onde os nós são instruções (tarefas dataflow) e as arestas denotam dependências de dados entre estas tarefas. Este trabalho apresenta a técnica Dataflow Dynamic Task Memoization (DF-DTM), a qual é inspirada na técnica de reúso de instruções em arquiteturas Von Neumann, conhecida como DTM[5] (Dynamic Trace Memoization). DF-DTM permite a reutilização de nós e subgrafos em modelos Dataflow, que são análogos às instruções e traços em modelos tradicionais, respectivamente. Modificamos a versão Python da biblioteca Dataflow, Sucuri[6], para implementar a técnica DF-DTM. O potencial da DF-DTM é avaliado por uma série de experimentos que analisam o comportamento de tarefas redundantes em cinco benchmarks relevantes: Conway’s Game of Life (GoL), longest common sub-sequence (LCS), uma aplicação de criptografia utilizando o padrão Triple DES (3-DES), uma aplicação de contagem de palavras que segue um modelo MapReduce (MR) e o problema da mochila sem limites (KS). Nossos resultados mostram uma notável taxa de redundância potencial de aproximadamente 98, 83%, 54, 73%, 72, 35%, 99, 73% para as aplicações benchmarks LCS, MR, 3-DES e GoL, respectivamente.Universidade Federal do Rio de JaneiroBrasilInstituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de EngenhariaPrograma de Pós-Graduação em Engenharia de Sistemas e ComputaçãoUFRJFrança, Felipe Maia Galvãohttp://lattes.cnpq.br/7328637099588014Alves, Tiago Assumpção de OliveiraPilla, Maurício LimaAmorim, Claudio Luis deFreitas, Leandro Rouberte de2019-05-23T16:45:19Z2023-12-21T03:05:54Z2017-05info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://hdl.handle.net/11422/8169porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRJinstname:Universidade Federal do Rio de Janeiro (UFRJ)instacron:UFRJ2023-12-21T03:05:54Zoai:pantheon.ufrj.br:11422/8169Repositório InstitucionalPUBhttp://www.pantheon.ufrj.br/oai/requestpantheon@sibi.ufrj.bropendoar:2023-12-21T03:05:54Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ)false |
dc.title.none.fl_str_mv |
DF-DTM :explorando redundância de tarefas em dataflow |
title |
DF-DTM :explorando redundância de tarefas em dataflow |
spellingShingle |
DF-DTM :explorando redundância de tarefas em dataflow Freitas, Leandro Rouberte de Engenharia de Sistemas e Computação Fluxo de dados Reuso CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
title_short |
DF-DTM :explorando redundância de tarefas em dataflow |
title_full |
DF-DTM :explorando redundância de tarefas em dataflow |
title_fullStr |
DF-DTM :explorando redundância de tarefas em dataflow |
title_full_unstemmed |
DF-DTM :explorando redundância de tarefas em dataflow |
title_sort |
DF-DTM :explorando redundância de tarefas em dataflow |
author |
Freitas, Leandro Rouberte de |
author_facet |
Freitas, Leandro Rouberte de |
author_role |
author |
dc.contributor.none.fl_str_mv |
França, Felipe Maia Galvão http://lattes.cnpq.br/7328637099588014 Alves, Tiago Assumpção de Oliveira Pilla, Maurício Lima Amorim, Claudio Luis de |
dc.contributor.author.fl_str_mv |
Freitas, Leandro Rouberte de |
dc.subject.por.fl_str_mv |
Engenharia de Sistemas e Computação Fluxo de dados Reuso CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
topic |
Engenharia de Sistemas e Computação Fluxo de dados Reuso CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
description |
Instruction reuse is an optimization technique that can be used in Von Neumann architectures. This technique improves performance by avoiding the execution of redundant instructions, when the result to be produced by them can be obtained by searching a historical input/output table. Trace reuse can be applied to traces of instructions in a similar fashion. However, these techniques still need to be studied in the context of the Dataflow [1–4] model, which has been gaining traction in the high-performance computing community, due to its inherent parallelism. Dataflow programs are represented by directed graphs where nodes are instructions or tasks and edges denote data dependencies between tasks. This work presents Dataflow Dynamic Task Memoization (DF-DTM) technique, which is inspired by the Von Neumann architecture reuse technique known as DTM [5] (Dynamic Trace Memoization). DF-DTM allows the reuse of nodes and subgraphs in Dataflow models, which are analogous to instructions and traces in traditional models, respectively. We modified the Python version of the Dataflow library, Sucuri[6], to implement the DF-DTM technique. The potential of the DF-DTM is evaluated by a series of experiments that analyze the behavior of redundant tasks in five relevant benchmarks: Conway’s game of life (GoL), longest common sub-sequence (LCS), a cryptography application using the Triple DES standard (3-DES), a word counting application that follows a MapReduce (MR) model and the unbounded knapsack problem (KS). Our results shows a remarkable potential redundancy rate of approximate 98.83%, 54.73%, 72.35%, 99.73% for the benchmarks applications LCS, MR, 3-DES and GoL, respectively. |
publishDate |
2017 |
dc.date.none.fl_str_mv |
2017-05 2019-05-23T16:45:19Z 2023-12-21T03:05:54Z |
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 |
http://hdl.handle.net/11422/8169 |
url |
http://hdl.handle.net/11422/8169 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal do Rio de Janeiro Brasil Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de Engenharia Programa de Pós-Graduação em Engenharia de Sistemas e Computação UFRJ |
publisher.none.fl_str_mv |
Universidade Federal do Rio de Janeiro Brasil Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de Engenharia Programa de Pós-Graduação em Engenharia de Sistemas e Computação UFRJ |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRJ instname:Universidade Federal do Rio de Janeiro (UFRJ) instacron:UFRJ |
instname_str |
Universidade Federal do Rio de Janeiro (UFRJ) |
instacron_str |
UFRJ |
institution |
UFRJ |
reponame_str |
Repositório Institucional da UFRJ |
collection |
Repositório Institucional da UFRJ |
repository.name.fl_str_mv |
Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ) |
repository.mail.fl_str_mv |
pantheon@sibi.ufrj.br |
_version_ |
1815455989390901248 |