Automating Creation of Problem-Oriented Program Generators

Igor Sesin, Roman Bolbakov

Abstract


Problem-oriented program generation is an approach to improving performance for certain class of GPGPU (General Purpose computing for Graphical Processing Units) programs. Creating problem-oriented program generators manually is a time-consuming and difficult task, one that requires the programmer to possess a certain degree of insight in the problem being solved by said program. This paper covers an approach to automating the creation of problem-oriented program generators. Meta-generator is introduced as a program creating said generators from GPU program’s source code. The key steps that meta-generator performs in the course of program analysis are discussed along with technologies most suitable for implementing on each step. Lastly, a comparison between proposed approach and similar existing means to enhancing software performance was made, outlining their key differences.


Full Text:

PDF (Russian)

References


Boyer, R. S., Elspas, B., & Levitt, K. N. (1975). SELECT—a formal system for testing and debugging programs by symbolic execution. ACM SigPlan Notices, 10(6), 234-245.

King, J. C. (1976). Symbolic execution and program testing. Communications of the ACM, 19(7), 385-394. URL: http://www.cs.umd.edu/class/fall2014/cmsc631/papers/king-symbolic-execution.pdf

Howden, W. E. (1976, June). Experiments with a symbolic evaluation system. In Proceedings of the June 7-10, 1976, national computer conference and exposition (pp. 899-908).

Levine, John R., et al. Lex & yacc. " O'Reilly Media, Inc.", 1992.

Cohen, J. S. (2003). Computer algebra and symbolic computation: Mathematical methods. CRC Press.

Von Zur Gathen, Joachim, and Jürgen Gerhard. Modern computer algebra. Cambridge university press, 2013.

Joyner, D., Čertík, O., Meurer, A., & Granger, B. E. (2012). Open source computer algebra systems: SymPy. ACM Communications in Computer Algebra, 45(3/4), 225-234.

John Aycock. 2003. A brief history of just-in-time. ACM Comput. Surv. 35, 2 (June 2003), 97–113. DOI:https://doi.org/10.1145/857076.857077

Croce, Louis. "Just in Time Compilation". Columbia University. URL: http://www.cs.columbia.edu/~aho/cs6998/Lectures/14-09-22_Croce_JIT.pdf

Jens Knoop, Oliver Rüthing, and Bernhard Steffen. 1994. Partial dead code elimination. In Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation (PLDI '94). Association for Computing Machinery, New York, NY, USA, 147–158. DOI:https://doi.org/10.1145/178243.178256

Butts, J. A., & Sohi, G. (2002). Dynamic dead-instruction detection and elimination. ACM SIGPLAN Notices, 37(10), 199-210.

Rigger, M., Grimmer, M., Wimmer, C., Würthinger, T., & Mössenböck, H. (2016, October). Bringing low-level languages to the JVM: Efficient execution of LLVM IR on Truffle. In Proceedings of the 8th International Workshop on Virtual Machines and Intermediate Languages (pp. 6-15).


Refbacks

  • There are currently no refbacks.


Abava  Absolutech Convergent 2020

ISSN: 2307-8162