Approaches to the formalization of the application design in GPGPU technology
Abstract
We justify the necessity of providing formalized methods for designing GPGPU algorithms, implementing them in software, and studying the fine structure of programs for massively parallel systems that contain video cards. Four approaches for designing applications for GPGPU technology were considered: the algebra-algorithmic; using colored Petri nets; using object-oriented programming patterns; and using functional programming methods. We analyze the advantages of Glushkov’s modified system of algorithmic algebras (SAA-M) and the real time process algebra (RTPA) in GPGPU-application developing process. Modifications of common object-oriented patterns were developed taking into account GPU features. Another approach is a declarative way of building GPU-computations based on MapReduce pattern and functional programming languages. Recommendations were given for practical use of these approaches.References
Pogorelyy S.D., Boyko YU.V., Tribrat M.I., Gryaznov D.B. Аnaliz metodov povysheniya proizvoditel’nosti komp’yuterov s ispol’zovaniyem graficheskikh protsessorov i programmno-apparatnoy platformy CUDA // Matematychni mashyny i systemy. — 2010. — # 1. — C. 40–54.
Pohorilyy S.D., Vitel' D.Yu., Vereshchyns'kyy O.A. Novitni arkhitektury videoadapteriv. Tekhnolohiya GPGPU. Chastyna 1 // Reyestratsiya, zberihannya i obrobka danykh. — 2012. — 14. — # 4. — C. 52–65.
Pohorilyy S.D., Vitel' D.Yu., Vereshchyns'kyy O.A. Novitni arkhitektury videoadapteriv. Tekhnolohiya GPGPU Chastyna 2 // Reyestratsiya, zberihannya i obrobka danykh. — 2013. — 15. — # 1. — C. 71–81.
Anisimov A.V., Pogorilyy S.D., Vitel D.Yu. About the Issue of Algorithms formalized Design for Parallel Computer Architectures. Applied and Computational Mathematics. — 12. — № 2. — 2013. — P. 140–151.
Pogorilyy S.D., Gusarov Y., Paralleling A.D. Of Edmonds-Karp Net Flow Algorithm // Applied and Computational Mathematics. — 2006. — 5, № 2. — P. 121–130.
Pohorilyy S.D., Mar"yanovs'kyy V.A., Boyko Yu.V., Vereshchyns'kyy O.A.Doslidzhennya paralel'nykh skhem alhorytmu Dantsyha dlya obchyslyuval'nykh system zi spil'noyu pam"yattyu // Matematychni mashyny i systemy. — 2009. — # 4. — C. 27–37.
Yingxu Wang. Software Engineering Foundations. A Software Science Perspective. Auerbach Publications, Taylor & Francis Croup, Boca Raton New York, 2008 by Taylor & Francis Group, LLC, P. 217 – 262.
Kotov V.E. Seti Petri. — M.: Nauka, GRFML, 1984
Pohorilyy S.D., Vitel' D.Yu. Vykorystannya merezh Petri dlya proektuvannya paralel'nykh zastosuvan' // Problemy prohramuvannya. — 2013. — # 2. — S. 32–41.
Gamma E., KHelm R., Dzhonson R., Vlissides D. Priyemy ob’yektno-oriyentirovannogo proyektirovaniya. Patterny proyektirovaniya. — SPb: Piter, 2009. — 366 s.
Pohorilyy S.D., Vereshchyns'kyy O.A. Stvorennya metodyky proektuvannya zastosuvan' dlya prohramno-aparatnoyi platformy CUDA // Problemy prohramuvannya. — 2013. — # 3. — S. 47–60.
Ruben Vermeersch. Concurrency in Erlang & Scala: The Actor Model. — http://savanne.be/articles/concurrency-in-erlang-scala/.
Messages and Agents. F# for fun and profit. — http://fsharpforfunandprofit.com/posts/concurrency-actor-model/.
Jeffry Dean, Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. Google, Inc. OSDI 04: 6th Symposium on Operating Systems Design and Implementation.