Este trabalho apresenta um estudo sobre o gargalo no acesso a disco sob arquiteturas com sistemas multiprocessadores e processadores multicore e apresenta uma proposta de solução para o problema e sua implementação. A solução desenvolvida é chamada de FPA. A estratégia desenvolvida no trabalho aproveita os recursos de memória compartilhada da arquitetura e utiliza buffers de dados compartilhados entre as diversas threads das aplicações, bem como tenta otimizar o acesso ao disco rígido. Para que seja diminuída a concorrência no acesso a disco, é permitido que apenas uma thread realize leituras ou gravações no disco por vez, e nas situações de escrita é feita a sobreposição entre o processamento e o envio dos dados ao disco. As operações de escrita são realizadas por uma thread adicional, que é inicializada e gerenciada pela FPA. Foram executados diversos testes com diferentes números de threads, tamanhos de arquivo e quantidade de processamento de cálculos na aplicação. Os resultados apresentaram ganho de desempenho com a FPA em diversas situações, onde um dos fatores mais significativos para o ganho de desempenho é a quantidade de processamento existente na aplicação. De modo geral, as operações de leitura apresentaram ganho de desempenho em relação ao uso de streams nas situações onde existe pouco processamento de cálculos na aplicação, e as operações de escrita mostraram vantagem nas situações onde existe uma quantidade de processamento de cálculos maior na aplicação. Nas operações de escrita é obtido vantagem com a sobreposição entre processamento e escrita de dados. Porém, quando a quantidade de processamento de cálculos é muito alta, o tempo de espera pela gravação em disco torna-se irrisório perante o tempo gasto no processamento dos cálculos, ocasionando perda de desempenho da FPA em relação aos streams. / This work presents a study on disk access bottlenecks for multiprocessor architecture systems and also proposes a specification to solve this problem and its implementation. The developed strategy is called FPA. The developed strategy makes use of shared memory architecture and uses shared data buffers among several application threads and also tries to optimize disk access time. In order to decrease disk concurrency, is allowed to just one application thread to read/write simultaneously and processing thread operations run parallelly to disk operations. Write operations are performed by an internal thread, which is started and managed by FPA. Several tests were performed concerning different amounts of application threads instances, file sizes and computing instructions. Results show performance gain with FPA in several situations. The main factor that affects performance is the amount of computing instructions on each application. In general, read operations showed a better performance compared to use of streams in situations where there is few computing instructions in the application, and write operations showed advantages on situations where there are more computing instructions in the application. Write operations are advantageous using data writing and computing instructions overlap. However, in cases of a large amount of computing instructions compared to disk operations, the time to perform disk operations becomes too few compared to computing time, occurring FPA performance loss compared to streams.
Identifer | oai:union.ndltd.org:usp.br/oai:teses.usp.br:tde-13082010-152409 |
Date | 12 February 2010 |
Creators | Vasata, Darlon |
Contributors | Sato, Liria Matsumoto |
Publisher | Biblioteca Digitais de Teses e Dissertações da USP |
Source Sets | Universidade de São Paulo |
Language | Portuguese |
Detected Language | Portuguese |
Type | Dissertação de Mestrado |
Format | application/pdf |
Rights | Liberar o conteúdo para acesso público. |
Page generated in 0.0016 seconds