Aplicando Model-Driven Development à Plataforma GPGPU
Resumo
GPUs (Graphics Processing Units) são dispositivos gráficos que vêm ganhando destaque nos últimos anos pela sua eficiência em processamento paralelo. Neste contexto, o termo GPGPU (General-Purpose computation on GPU) é um novo conceito que visa explorar as vantagens das GPUs em áreas não necessariamente relacionadas a processamento gráfico. Este trabalho aplica princípios do MDD (Model-Driven Development) ao desenvolvimento de aplicações para GPU, visando produzir um ambiente mais adequado para a construção desse tipo de software. O resultado do trabalho foi o desenvolvimento de uma ferramenta que enxerga uma aplicação como um modelo e gera automaticamente parte significativa do código desta aplicação. O código gerado é expresso na linguagem definida por CUDA (Compute Unified Device Architecture), uma plataforma de programação para GPGPU.Referências
Stephen J. Mellor, Anthony N. Clark, Takao Futagami, Guest Editors' Introduction: Model-Driven Development, IEEE Software, vol. 20, no. 5, pp. 14-18, Sep/Oct, 2003.
Owens, J. D., Luebke, D., Govindaraju, N., Harris, M., Krüger, J., Lefohn, A. E., and Purcell, T. 2005. A survey of general-purpose computation on graphics hardware. In Proceedings of Eurographics 2005, State of the Art Reports. 21-51.
Eclipse Foundation. Graphical Modeling Framework (GMF). http://www.eclipse.org/gmf.
NVIDIA. CUDA Programming Guide. [link], acesso em: Novembro de 2008.
J. D. Owens, M. Houston, D. Luebke, S. Green, J. E. Stone, and J. C. Phillips. GPU computing. Proceedings of the IEEE, 96(5), May 2008.
Shirley, P. 2002. Fundamentals of Computer Graphics. A. K. Peters, Ltd.
Fernando, R. and Kilgard, M. J. 2003. The Cg Tutorial: the Definitive Guide to Programmable Real-Time Graphics. Addison-Wesley Longman Publishing Co., Inc.
Tarditi, D., Puri, S., and Oglesby, J. 2006. Accelerator: using data parallelism to program GPUs for general-purpose uses. SIGOPS Oper. Syst. Rev. 40, 5 (Oct. 2006), 325-335.
Rost, R. J. 2004. Opengl(R) Shading Language. Addison Wesley Longman Publishing Co., Inc.
Microsoft MSDN. 2006. HLSL. http://msdn.microsoft.com/enus/library/bb509561(VS.85).aspx.
Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., and Hanrahan, P. 2004. Brook for GPUs: Stream Computing on Graphics Hardware. ACM Trans. Graph. 23, 3 (Aug. 2004), 777-786.
S. M. Larson, C. D. Snow, M. Shirts, and V. S. Pande. Folding@Home and Genome@Home: Using distributed computing to tackle previously intractable problems in computational biology. Computational Genomics (to appear).
Microsoft. 2005. Microsoft Visual Studio.
Rumbaugh, J., Jacobson, I., and Booch, G. The UML Reference Manual. Addison-Wesley, Reading, England, 1999.
Selic, B. 2003. The Pragmatics of Model-Driven Development. IEEE Softw. 20, 5 (Sep. 2003), 19-25.
J. Miller and J. Mukerji, MDA Guide Version 1.0.1, doc. no. omg/2003-06-01, Junho 2003. http://www.omg.org/cgi-bin/apps/doc?omg/03-06-01.pdf.
AndroMDA.org. 2008. AndroMDA. http://www.andromda.org/.
Compuware. 2008. OptimalJ. http://www.compuware.com/.
Quatrani, T. 1998. Visual Modeling with Rational Rose and UML. Addison-Wesley Longman Publishing Co., Inc.
Tigris. 2006. ArgoUML. http://argouml.tigris.org/.
Rebel Science. 2006. COSA Project. http://www.rebelscience.org/Cosas/COSA.htm.
Boulet, P.: Array-OL revisited, multidimensional intensive signal processing specification. Research Report RR-6113, INRIA (2007).
Ben Atitallah, R., Boulet, P., Cuccuru, A., Dekeyser, J.L., Honoré, A., Labbani, O., Le Beux, S., Marquet, P., Piel, E., Taillard, J., Yu, H.: Gaspard2 uml profile documentation. Technical Report 0342, INRIA (2007)
Open SystemC Initiative, SystemC. http://systemc.org/.
Eclipse Foundation. 2004. Eclipse. http://www.eclipse.org/.
Arnold, K. and Gosling, J. 1998. The Java Programming Language (2nd Ed.). ACM Press/Addison-Wesley Publishing Co.
Eclipse Foundation. Eclipse Modeling Framework (EMF). http://www.eclipse.org/emf.
Eclipse Foundation (2007a), 'Eclipse Modeling: Java Emitter Templates'. http://www.eclipse.org/emft/projects/jet/.
Owens, J. D., Luebke, D., Govindaraju, N., Harris, M., Krüger, J., Lefohn, A. E., and Purcell, T. 2005. A survey of general-purpose computation on graphics hardware. In Proceedings of Eurographics 2005, State of the Art Reports. 21-51.
Eclipse Foundation. Graphical Modeling Framework (GMF). http://www.eclipse.org/gmf.
NVIDIA. CUDA Programming Guide. [link], acesso em: Novembro de 2008.
J. D. Owens, M. Houston, D. Luebke, S. Green, J. E. Stone, and J. C. Phillips. GPU computing. Proceedings of the IEEE, 96(5), May 2008.
Shirley, P. 2002. Fundamentals of Computer Graphics. A. K. Peters, Ltd.
Fernando, R. and Kilgard, M. J. 2003. The Cg Tutorial: the Definitive Guide to Programmable Real-Time Graphics. Addison-Wesley Longman Publishing Co., Inc.
Tarditi, D., Puri, S., and Oglesby, J. 2006. Accelerator: using data parallelism to program GPUs for general-purpose uses. SIGOPS Oper. Syst. Rev. 40, 5 (Oct. 2006), 325-335.
Rost, R. J. 2004. Opengl(R) Shading Language. Addison Wesley Longman Publishing Co., Inc.
Microsoft MSDN. 2006. HLSL. http://msdn.microsoft.com/enus/library/bb509561(VS.85).aspx.
Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., and Hanrahan, P. 2004. Brook for GPUs: Stream Computing on Graphics Hardware. ACM Trans. Graph. 23, 3 (Aug. 2004), 777-786.
S. M. Larson, C. D. Snow, M. Shirts, and V. S. Pande. Folding@Home and Genome@Home: Using distributed computing to tackle previously intractable problems in computational biology. Computational Genomics (to appear).
Microsoft. 2005. Microsoft Visual Studio.
Rumbaugh, J., Jacobson, I., and Booch, G. The UML Reference Manual. Addison-Wesley, Reading, England, 1999.
Selic, B. 2003. The Pragmatics of Model-Driven Development. IEEE Softw. 20, 5 (Sep. 2003), 19-25.
J. Miller and J. Mukerji, MDA Guide Version 1.0.1, doc. no. omg/2003-06-01, Junho 2003. http://www.omg.org/cgi-bin/apps/doc?omg/03-06-01.pdf.
AndroMDA.org. 2008. AndroMDA. http://www.andromda.org/.
Compuware. 2008. OptimalJ. http://www.compuware.com/.
Quatrani, T. 1998. Visual Modeling with Rational Rose and UML. Addison-Wesley Longman Publishing Co., Inc.
Tigris. 2006. ArgoUML. http://argouml.tigris.org/.
Rebel Science. 2006. COSA Project. http://www.rebelscience.org/Cosas/COSA.htm.
Boulet, P.: Array-OL revisited, multidimensional intensive signal processing specification. Research Report RR-6113, INRIA (2007).
Ben Atitallah, R., Boulet, P., Cuccuru, A., Dekeyser, J.L., Honoré, A., Labbani, O., Le Beux, S., Marquet, P., Piel, E., Taillard, J., Yu, H.: Gaspard2 uml profile documentation. Technical Report 0342, INRIA (2007)
Open SystemC Initiative, SystemC. http://systemc.org/.
Eclipse Foundation. 2004. Eclipse. http://www.eclipse.org/.
Arnold, K. and Gosling, J. 1998. The Java Programming Language (2nd Ed.). ACM Press/Addison-Wesley Publishing Co.
Eclipse Foundation. Eclipse Modeling Framework (EMF). http://www.eclipse.org/emf.
Eclipse Foundation (2007a), 'Eclipse Modeling: Java Emitter Templates'. http://www.eclipse.org/emft/projects/jet/.
Publicado
28/10/2009
Como Citar
JR., Ademir Carvalho; FARIAS, Thiago S. M. C.; TEIXEIRA, João Marcelo X. N.; TEICHRIEB, Veronica; KELNER, Judith.
Aplicando Model-Driven Development à Plataforma GPGPU. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 10. , 2009, São Paulo.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2009
.
p. 137-144.
DOI: https://doi.org/10.5753/wscad.2009.17402.