Use este identificador para citar ou linkar para este item: http://hdl.handle.net/1843/SLSS-8KJK3P
Tipo: Dissertação de Mestrado
Título: Modelagem de desempenho de sistemas com paralelismo pipeline
Autor(es): Emanuel Vianna do Vale
Primeiro Orientador: Magnos Martinello
Primeiro Coorientador: Jussara Marques de Almeida
Primeiro membro da banca : Humberto Torres Marques Neto
Segundo membro da banca: Paulo Romero Martins Maciel.
Resumo: Em uma era onde o paralelismo é imperativo (commodity clusters, multi-processadores, múltiplos núcleos, GPGPU) o entendimento do consumo de recursos (CPU, disco, etc.) de uma aplicação paralela, em diferentes circunstâncias, é chave para tomar decisões em planejamento de capacidade e gerenciamento de carga de trabalho, tais como: (1) quantas e quais tipos de máquinas são necessárias, em um cluster de um data center, para atender os limites de tempos de resposta e throughput contratados no acordo de nível serviço (Service Level Agreement - SLA)? Como ajustar os parâmetros para tirar melhor proveito dos recursos e aumentar o desempenho e a escalabilidade do sistema. No entanto, técnicas de modelagem de desempenho tradicionais, como a Análise do Valor Médio (Mean Value Analysis - MVA) não podem ser aplicadas diretamente em cargas de trabalho que possuam relações de precedência, como as sincronizações entre tarefas produtoras e consumidoras em jobs que posuam paralelismo pipeline. Soluções exatas, utilizando cadeias de Markov para representar os possíveis estados do sistema foram propostas, mas não são escaláveis pois o espaço de estados cresce exponencialmente com o aumento do número de tarefas. A metodologia utilizada é baseada em uma solução aproximada, mas eficiente, proposta em um trabalho anterior, o qual chamamos de modelo referência. Esta solução utiliza um modelo hierárquico, onde o nível mais alto (software) é representado por um grafo de precedência e o nível mais baixo (hardware) por um modelo de rede de filas fechado. O grafo de precedência captura os atrasos de sincronização e a sobreposição média do tempo de execução de tarefas de um mesmo job (intra-job) e de tarefas de jobs diferentes (inter-job), enquanto que o modelo de rede de filas captura a contenção média nos recursos. O modelo de rede de filas é resolvido através da técnica Analise do Valor Médio aproximado (approximate Mean Value Analysis - aMVA). Para introduzir o efeito das regras de precedências no algoritmo aMVA, o tamanho médio das filas, que usualmente só captura a contenção dos recursos, foram inflacinados por fatores de sobreposição, estimados pelo grafo de precedência. O modelo referência permite diversos tipos de relações de precedências, entretanto nenhum de seus operadores capturam as sincronizações de um pipeline, não sendo portanto aplicável diretamente à cargas de trabalho que possuam paralelismo pipeline. A nossa principal contribuição consiste em mostrar como construir o grafo de precedência, utilizando os operadores primitivos proposto no modelo referência, para capturar as sincronizações inerentes do paralelismo pipeline. Esta metodologia foi aplicada em dois estudos de casos: (1) consultas simples de Business Intelligence (BI), que contém um pipeline na troca de mensagens entre seus operadores; e (2) jobs do Hadoop Online Prototype (HOP), uma extensão do Hadoop (arcabouço de computação paralela inspirado no modelo de programação MapReduce) que provê um paralelismo pipeline entre as tarefas map e reduce. Os principais resultados encontrados foram: (1) obtivemos uma boa aproximação na validação do modelo de consulta de BI, obtendo um erro relativo máximo de 11,5% para o tempo de resposta do job (na literatura, o máxima aceito para tempo de resposta é 30%) em relação a um simulador da rede de filas e a um emulador do sistema, para seis cenários diferentes; (2) observamos que o paralelismo pipeline teve um ganho maior (no tempo de resposta do job) com carga leve, ou seja, antes do sistema saturar. Após a saturacao o tempo de resposta do job é dominado pelos o atrasos de filas e, um aumento no paralelismo pipeline, ao invés de aumentar o speedup, gera mais contenção; (3) verificamos que as previsões de desempenho do modelo analítico para os jobs HOP teve boa acurácia para vários cenários, entretanto alguns cenários foram muito super-estimados, o que nos levou a avaliar estes cenários, através de simulações, buscando identificar se havia alguma característica do sistema que não foi capturada, ou que não estava sendo bem modelada. Desenvolvemos simuladores específicos para avaliar algumas premissas do modelo e identificamos que a principal fonte de erro foi devido a uma premissa do modelo referência que assume que a média do tempo de resposta das tarefas são exponencialmente distribuídas. Fizemos uma avaliação das limitações do modelo devido às implicações desta premissa e introduzimos um novo operador primitivo usado na construção da árvore, que utiliza o método fork/join, proposto anteriormente, para estimar os fatores de sobreposição. A acurácia do modelo utilizando o método fork/join melhorou, ficando o erro relativo máximo do tempo de resposta do job abaixo de 15%.
Abstract: In an era where the parallelism is imperative (commodity clusters, multi-processor multi-core, GPGPU) the understanding of resource consumption (CPU, disk, etc.) of a parallel application, in different circunstances, is key to decision-making in capacity planning and workload management, such as: (1) how many and what types of machines are needed, in a data center cluster, to support the contracted thresholds for response time and throughput in the service level agreement (SLA)? How should system parameters be fine-tuned to increase system performance and scalability? However, traditional modeling techniques, such as Mean Value Analysis (MVA), can not be directly applied to workloads that have precedence constraints, such as the synchronizations among producers and consumers tasks of a job that present pipeline parallelism. Exact solutions, using Markov chains to represent the possible states of the system were proposed, but are not scalable since the state space grows exponentially with the increasing of the number of tasks. The methodology used is based on an approximate, but efficient, solution, proposed in a previous work, refereed as reference model. This solution uses a hierarchical model, where the highest level (software) is represented by a precedence graph and the lowest level (hardware) by a closed queuing network model. The precedence graph captures the synchronization delays and the average overlap of the execution time of tasks in the same job (intra-job) and tasks of different jobs (inter-job), while the queuing network model captures the average resource contention. The queuing network model is solved through the Approximate Mean Value Analysis technique (aMVA). To introduce the effect of the precedence rules in the aMVA algorithm, the average queue size, which usually only captures the resource contention, were inflated by overlap factors, estimated by the precedence graph. The reference model allows various types of precedence relationships, meanwhile none of its operators capture the synchronization of a pipeline and therefore it is not directly applicable to the workloads that have pipeline parallelism. Our main contribution is show how to build the precedence graph, using the primitive operators proposed in the reference model, to capture the inherent synchronization delay of pipeline parallelism. This methodology was applied in two case studies: (1) simple Business Intelligence queries (BI), which contains a pipeline in the message exchange between their operators, and (2) Online Hadoop Prototype (HOP) jobs, an extension of Hadoop (framework for parallel computing inspired by MapReduce programming model) to provides a pipeline parallelism between map and reduce tasks. The main findings were: (1) we obtained a good approximation in the validation of BI workload model, compared to a queuing netowrk simulator and an emulator of the system, achieving a maximum relative error of 11.5% for job average response time (in literature the maximum acceptable for response time is 30%), for six different scenarios, (2) we observed that the pipeline parallelism had a gain (in job response time) with a light load, i.e., before the system saturates. After the saturation, the job response time is dominated by queues delays and an increase in the pipeline parallelism, instead of increase the speedup, generates more contention, (3) we found that the performance predictions of the analytical model for jobs HOP had good accuracy for various scenarios, but some scenarios were far over-estimated, which led us to evaluate these scenarios in order to identify if there was a characteristic of the system that was not captured, or that was not well modeled. We develop specific simulators to evaluate the adopted model assumptions and we identify that the main source of errors was the premise of the reference model which assumes that the average response time of tasks are exponentially distributed. We evaluate the limitations of the model due to the implications of this assumption and introduce a new primitive operator which uses the fork/join method, previously proposed, to estimate the overlap factors. The analytical model using the fork/join method produces better performance metrics estimates, where the maximum relative error of job response time was less than 15%.
Assunto: Análise de Desempenho
Computação
Idioma: Inglês
Editor: Universidade Federal de Minas Gerais
Sigla da Instituição: UFMG
Tipo de Acesso: Acesso Aberto
URI: http://hdl.handle.net/1843/SLSS-8KJK3P
Data do documento: 29-Jul-2011
Aparece nas coleções:Dissertações de Mestrado

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
emanuelviannavale.pdf4.61 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.