Abstract
The advent of multicore systems, joined to the potential acceleration of the graphics processing units, has given us a low cost computation capability unprecedented. The new systems alleviate some well-known important architectural problems at the expense of a considerable increment of the programmability wall. Heterogeneity, at both the architectural and programming levels, poses a great challenge to programmers. As a contribution, we propose a development methodology for the automatic source-to-source transformation on specific domains. This methodology is successfully instantiated as a framework to solve Dynamic Programming problems. As a result of applying our framework, the end user (a physicist, a mathematician or a biologist) can express her problem through a latex equation and automatically derive efficient parallel codes for current homogeneous or heterogeneous architectures. The approach allows an easy portability to new emergent architectures.
Similar content being viewed by others
References
Schordan M, Quinlan DJ (2003) A source-to-source architecture for user-defined optimizations. In: JMLC, pp 214–223
Dooley I (2006) Automated source-to-source translations to assist parallel programmers. Master’s thesis, Dept. of Computer Science, University of Illinois. http://charm.cs.uiuc.edu/papers/DooleyMSThesis06.shtml
Ueng SZ, Lathara M, Baghsorkhi SS, Hwu WMW (2008) Cuda-lite: reducing gpu programming complexity. In: LCPC08. LNCS, vol 5335. Springer, Berlin, pp 1–15
Bischof H, Gorlatch S (2002) Double-scan: introducing and implementing a new data-parallel skeleton. In: Proceedings of the 8th international Euro-Par conference on parallel processing, Euro-Par’02. Springer, London, pp 640–647
Cole M (2004) Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming. Parallel Comput 30:389–406
González-Vélez H, Leyton M. A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers. Softw Pract Exper
ROSE. www.rosecompiler.org
Benkner S, Mehofer E, Pllana S (2008) Towards an intelligent environment for programming multi-core computing systems. In: Proceedings of the 2nd workshop on highly parallel processing on a chip (HPPC 2008), in conjunction with Euro-Par 2008
Dave C, Bae H, Min S-J, Lee S, Eigenmann R, Midkiff SP (2009) Cetus: a source-to-source compiler infrastructure for multicores. IEEE Comput 42(11):36–42
Nascimento J, Powell W (2010) Dynamic programming models and algorithms for the mutual fund cash balance problem. Manag Sci 56:801–815
Erdelyi A, Topaloglu H (2010) A dynamic programming decomposition method for making overbooking decisions over an airline network. INFORMS J Comput 22:443–456
Huang K, Liang Y-T (2011) A dynamic programming algorithm based on expected revenue approximation for the network revenue management problem. Transp Res, Part E, Log Transp Rev 47(3):333–341
Ibaraki T (1988) Enumerative approaches to combinatorial optimization, part II. Ann Oper Res 11:1–4
Andonov R, Rajopadhye S (1997) Optimal orthogonal tiling of 2-D iterations. J Parallel Distrib Comput 45:159–165
Morales D, Almeida F, Rodríguez C, Roda J, Delgado A, Coloma I (2000) Parallel dynamic programming and automata theory. In: Parallel computing
Eckstein J, Phillips CA, Hart WE (2000) In: PIcO: an object-oriented framework for parallel branch and bound. Technical report, RUTCOR
Le Cun B (2001) Bob++ library illustrated by VRP. In: European operational research conference (EURO’2001), Rotterdam, p 157
Lubow BC (1997) SDP: generalized software for solving stochastic dynamic optimization problems. Wildl Soc Bull 23:738–742
Peláez I, Almeida F, Suárez F (2007) Dpskel: a skeleton based tool for parallel dynamic programming. In: Seventh international conference on parallel processing and applied mathematics, PPAM2007
Peláez I, Almeida F, González D (2006) An xml specification for automatic parallel dynamic programming. In: International conference on computational science (1), pp 872–875
TtM a TeX to MathML translator. http://hutchinson.belmont.ma.us/tth/mml/
W3C. W3c math home. http://www.w3.org/Math/
Galindo I, Almeida F, Blanco V, Badía JM (2008) Dynamic load balancing on dedicated heterogeneous systems. In: Lastovetsky A, Kechadi T, Dongarra J (eds) Recent advances in parallel virtual machine and message passing interface, EuroPVM/MPI 2009, pp 64–74
Santos A, Almeida F, Blanco V, Díez D, Regueira J, Sicilia E (2008) Towards automatic service generation and scheduling in the OpenCF project. Int J Web Grid Serv 4(4):367–378
Acknowledgements
This work has been supported by the EC (FEDER) and the Spanish MEC with the I+D+I contract number TIN2008-06570-C04-03 and TIN2011-24598, and by the Canary Government project SolSubC200801000307.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Acosta, A., Almeida, F. & Peláez, I. From latex specifications to parallel codes. J Supercomput 64, 167–176 (2013). https://doi.org/10.1007/s11227-012-0797-3
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-012-0797-3