ABSTRACT
At present time, the programmers may choose from a number of streaming languages. They cover various aspects of the development process of streaming applications; however, specification of complex or runtime-dependent parts of the applications still remains a great challenge. We have analysed a large amount of requirements raised by the development of multiple data streaming parallel applications and proposed a novel language called Bobolang. It contains syntactic and semantic features which allow the programmer to naturally solve most of the problems, which we met in the design of streaming applications. The language is used to specify the structure of the whole application as well as the inner structure of each operator. Thanks to the properties of the language, Bobolang can create an optimized evaluation plan which is capable of making the best use of the available hardware resources. The language has been employed in several practical problems and it has proven itself to be a very powerful tool for the development of data-intensive parallel applications.
- D. Bednarek, J. Dokulil, J. Yaghob, and F. Zavoral. Bobox: Parallelization Framework for Data Processing. In Advances in Information Technology and Applied Computing, 2012.Google Scholar
- I. Buck. Brook: A streaming programming language, 2001.Google Scholar
- I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan. Brook for GPUs: Stream Computing on Graphics Hardware. ACM Transcations on Graphics, 23:777--786, 2004. Google ScholarDigital Library
- C. Consel, H. Hamdi, L. Réveillère, L. Singaravelu, H. Yu, and C. Pu. Spidle: a DSL approach to specifying streaming applications. In Proceedings of the 2nd international conference on Generative programming and component engineering, pages 1--17, New York, NY, USA, 2003. Springer-Verlag. Google ScholarDigital Library
- A. Das, W. J. Dally, and P. Mattson. Compiling for stream processing. In Proceedings of the 15th international conference on Parallel architectures and compilation techniques, pages 33--42, New York, NY, USA, 2006. ACM. Google ScholarDigital Library
- Z. Falt, J. Bulanek, and J. Yaghob. On Parallel Sorting of Data Streams. In ADBIS 2012 - 16th East European Conference in Advances in Databases and Information Systems, 2012.Google Scholar
- Z. Falt, M. Cermak, J. Dokulil, and F. Zavoral. Parallel SPARQL Query Processing Using Bobox. International Journal On Advances in Intelligent Systems, 5(3 and 4):302--314, 2012.Google Scholar
- Z. Falt, M. Cermak, and F. Zavoral. Highly Scalable Sort-Merge Join Algorithm for RDF Querying. In Proceedings of the 2nd International Conference on Data Management Technologies and Applications, 2013.Google Scholar
- M. Franklin, E. Tyson, J. Buckley, P. Crowley, and J. Maschmeyer. Auto-pipe and the X language: A pipeline design tool and description language. In 20th International Parallel and Distributed Processing Symposium. IEEE, 2006. Google ScholarDigital Library
- U. J. Kapasi, W. J. Dally, S. Rixner, J. D. Owens, and B. Khailany. Programmable stream processors. IEEE Computer, 36:282--288, 2003. Google ScholarDigital Library
- W. R. Mark, R. Steven, G. Kurt, A. Mark, and J. Kilgard. Cg: A system for programming graphics hardware in a c-like language. ACM Transactions on Graphics, 22:896--907, 2003. Google ScholarDigital Library
- W. Thies, M. Karczmarek, and S. Amarasinghe. StreamIt: A language for streaming applications. In Compiler Construction, pages 179--196. Springer, 2002. Google Scholar
- D. Zhang, Z.-Z. Li, H. Song, and L. Liu. A programming model for an embedded media processing architecture. In Embedded Computer Systems: Architectures, Modeling, and Simulation, pages 251--261. Springer, 2005. Google ScholarDigital Library
Index Terms
- Bobolang: a language for parallel streaming applications
Recommendations
Definitional Interpreters for Higher-Order Programming Languages
Higher-order programming languages (i.e., languages in which procedures or labels can occur as values) are usually defined by interpreters that are themselves written in a programming language based on the lambda calculus (i.e., an applicative language ...
Definitional interpreters for higher-order programming languages
ACM '72: Proceedings of the ACM annual conference - Volume 2Higher-order programming languages (i.e., languages in which procedures or labels can occur as values) are usually defined by interpreters which are themselves written in a programming language based on the lambda calculus (i.e., an applicative language ...
Babel and SOAP applications of extensible compilers
This paper describes a method of writing compilers which can easily be extended or altered. Two applications of the method are described; the first is a conventional programming language called Babel and the second is a program called SOAP which ...
Comments