G-PETo: Um Framework para Troca Direta e Transparente de Dados entre Aplicações Filtro-Fluxo em Arquiteturas Multi-GPUs
Resumo
Neste trabalho propomos e avaliamos uma abstração genérica para a troca de dados direta e transparente em aplicações filtro-fluxo executadas em cluster (computadores interligados) heterogêneos, compostos por múltiplas placas aceleradoras gráficas (GPUs). Esta abstração permite que todos os detalhes de implementação de baixo nível, relacionados à comunicação entre GPUs e o controle relacionado à localização dos filtros, sejam realizados de forma transparente para os programadores. Este trabalho está consolidado em um framework, o qual denominamos G-PETo, e nossos resultados de avaliação demonstram que ele é capaz de fornecer uma camada de abstração aos programadores sem comprometer o desempenho geral da aplicação.
Referências
Agbaria, A. M. and Friedman, R. (1999). Starfish: Fault-tolerant dynamic mpi programs on clusters of workstations. In Proceedings of HPDC, pages 167–176. IEEE.
Ammendola, R., Bernaschi, M., Biagioni, A., Bisson, M., Fatica, M., Frezza, O., Lo Cicero, F., Lonardo, A., Mastrostefano, E., Paolucci, P. S., et al. (2013). Gpu peer-to-peer techniques applied to a cluster interconnect. In IPDPSW.
Beynon, M. D., Kurc, T., Catalyurek, U., Chang, C., Sussman, A., and Saltz, J. (2001). Distributed processing of very large datasets with datacutter. Parallel Computing.
Cabezas, J., Jordà, M., Gelado, I., Navarro, N., and Hwu, W.-m. (2015). Gpu-sm: shared memory multi-gpu programming. In Proceedings of the 8th Workshop on General Purpose Processing using GPUs, pages 13–24. ACM.
De Souza Ramos, T. L. A., Oliveira, R. S., De Carvalho, A. P., Ferreira, R. A. C., and Meira Jr, W. (2011). Watershed: A high performance distributed stream processing system. In SBAC-PAD.
Gabriel, E., Fagg, G. E., Bosilca, G., Angskun, T., Dongarra, J. J., Squyres, J. M., Sahay, V., Kambadur, P., Barrett, B., and Lumsdaine (2004). Open mpi: Goals, concept, and design of a next generation mpi implementation. In Recent Advances in Parallel Virtual Machine and Message Passing Interface.
Melo, D., Toledo, S., ao, F. M., Sachetto, R., Andrade, G., Ferreira, R., Parthasarathy, S., and Rocha, L. (2016). Hierarchical density-based clustering based on gpu accelerated data indexing strategy. Proc. of ICCS.
Rocha, L., Ramos, G., Chaves, R., Sachetto, R., Madeira, D., Viegas, F., Andrade, G., Daniel, S., Gonçalves, M., and Ferreira, R. (2015). G-knn: an efficient document classification algorithm for sparse datasets on gpus using knn. In Proc. of ACM SAC.
Shainer, G., Ayoub, A., Lui, P., Liu, T., Kagan, M., Trott, C. R., Scantlen, G., and Crozier, P. S. (2011). The development of mellanox/nvidia gpudirect over infiniband - a new model for gpu to gpu communications. Computer Science-Research and Development.
Stone, J. E., Gohara, D., and Shi, G. (2010). Opencl: A parallel programming standard for heterogeneous computing systems. IEEE Des. Test, 12(3):66–73.
Tang, K., Yu, Y., Wang, Y., Zhou, Y., and Guo, H. (2012). Ema: Turning multiple address spaces transparent to cuda programming. In 7th IEEE ChinaGrid.
Wienke, S., Springer, P., Terboven, C., and an Mey, D. (2012). Openacc: First experiences with real-world applications. In Proc. of Euro-Par’12.
Wu, W., Bosilca, G., vandeVaart, R., Jeaugey, S., and Dongarra, J. (2016). Gpu-aware non-contiguous data movement in open mpi. In Proc. of the ACM HPDC.
Young, J., Shon, S. H., Yalamanchili, S., Merritt, A., Schwan, K., and Fröning, H. (2013). Oncilla: a gas runtime for efficient resource allocation and data movement in accelerated clusters. In IEEE CLUSTER.