Caracterização Inicial do Comportamento de Aplicações Transacionais em Arquiteturas NUMA
Resumo
Este artigo busca fazer uma caracterização inicial de memória transacional em sistemas NUMA de alto desempenho e, por meio da aplicação de diferentes mecanismos de alocação de memória dinâmica e de mapeamento de threads, obter um perfil de desempenho comparativo. Os resultados mostram que existem benefícios no uso de um único socket de processador e que, para melhor explorar arquiteturas NUMA, algumas mudanças são necessárias no algoritmo transacional.
Referências
Cascaval, C., Blundell, C., Michael, M., Cain, H. W., Wu, P., Chiras, S., and Chatterjee, S. (2008). Software transactional memory: Why is it only a research toy? the promise of stm may likely be undermined by its overheads and workload applicabilities. Queue, 6(5):46–58.
Felber, P., Fetzer, C., and Riegel, T. (2008). Dynamic performance tuning of word-based software transactional memory. In Proceedings of the 13th Symposium on Principles and Practice of Parallel Programming, pages 237–246.
Gove, D. (2011). Multicore Application Programming. Pearson Education, Inc.
Gray, J. (1981). The transaction concept: Virtues and limitations. In Proceedings of the 7th International Conference on Very Large Databases, pages 144–154.
Harris, T., Larus, J., and Rajwar, R. (2010). Transactional Memory. Morgan & Claypool Publishers, 2 edition.
Herlihy, M. and Shavit, N. (2008). The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
Kleen, A. (2004). A NUMA API for Linux. SUSE Labs.
Lameter, C. (2013). NUMA (non-uniform memory access): An overview: NUMA becomes more common because memory controllers get close to execution units on microprocessors. Queue, 11(7):40–51.
M. Müller, B. Supinski, B. C. (2009). Evolving OpenMP in an Age of Extreme Parallelism. Springer.
Minh, C. C., Chung, J., Kozyrakis, C., and Olukotun, K. (2008). STAMP: Stanford transactional applications for multi-processing. In 2008 IEEE International Symposium on Workload Characterization, pages 35–46.
Mohamedin, M., Peluso, S., Kishi, M. J., Hassan, A., and Palmieri, R. (2018). Nemo: Numa-aware concurrency control for scalable transactional memory. In Proceedings of the 47th ICPP.
Pasqualin, D. P., Diener, M., Du Bois, A. R., and Pilla, M. L. (2020a). Characterizing the sharing behavior of applications using software transactional memory. In Wolf, F. and Gao, W., editors, Benchmarking, Measuring, and Optimizing, pages 3–21.
Pasqualin, D. P., Diener, M., Du Bois, A. R., and Pilla, M. L. (2020b). Online sharing-aware thread mapping in software transactional memory. In 2020 IEEE 32nd SBACPAD, pages 35–42.