{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,26]],"date-time":"2025-03-26T09:13:38Z","timestamp":1742980418515,"version":"3.40.3"},"publisher-location":"Cham","reference-count":44,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031215339"},{"type":"electronic","value":"9783031215346"}],"license":[{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2023,1,18]],"date-time":"2023-01-18T00:00:00Z","timestamp":1674000000000},"content-version":"vor","delay-in-days":382,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2022]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>GENO (generic optimization) is a domain specific language for mathematical optimization. The GENO software generates a solver from a specification of an optimization problem class. The optimization problems, that is, their objective function and constraints, are specified in a formal language. The problem specification is then translated into a general normal form. Problems in normal form are then passed on to a general purpose solver. In its Iterations, the solver evaluates expressions for the objective function, constraints, and their derivatives. Hence, computing symbolic gradients of linear algebra expressions is an important component of the GENO software stack. The expressions are evaluated on the available hardware platforms including CPUs and GPUs from different vendors. This becomes possible by compiling the expressions into BLAS (Basic Linear Algebra Subroutines) calls that have been optimized for the different hardware platforms by their vendors. The compiler, called autoBLAS, that translates formal linear algebra expressions into optimized BLAS calls is another important component in the GENO software stack. By putting all the components together the generated solvers are competitive with problem-specific hand-written solvers and orders of magnitude faster than competing approaches that offer comparable ease-of-use. While this article describes the full GENO software stack, its components are of also of interest on their own and thus have been made available independently.<\/jats:p>","DOI":"10.1007\/978-3-031-21534-6_12","type":"book-chapter","created":{"date-parts":[[2023,1,17]],"date-time":"2023-01-17T20:02:53Z","timestamp":1673985773000},"page":"213-228","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["The GENO Software Stack"],"prefix":"10.1007","author":[{"given":"Joachim","family":"Giesen","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lars","family":"Kuehne","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"S\u00f6ren","family":"Laue","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2023,1,18]]},"reference":[{"issue":"2","key":"12_CR1","doi-asserted-by":"publisher","first-page":"135","DOI":"10.1145\/567806.567807","volume":"28","author":"LS Blackford","year":"2002","unstructured":"Blackford, L.S., et al.: An updated set of basic linear algebra subprograms (BLAS). ACM Trans. Math. Softw. 28(2), 135\u2013151 (2002)","journal-title":"ACM Trans. Math. Softw."},{"issue":"1","key":"12_CR2","doi-asserted-by":"publisher","first-page":"42","DOI":"10.1080\/23307706.2017.1397554","volume":"5","author":"A Agrawal","year":"2018","unstructured":"Agrawal, A., Verschueren, R., Diamond, S., Boyd, S.: A rewriting system for convex optimization problems. J. Control Decis. 5(1), 42\u201360 (2018)","journal-title":"J. Control Decis."},{"key":"12_CR3","unstructured":"Anderson, E., et al.: LAPACK Users\u2019 Guide. 3rd edn. Society for Industrial and Applied Mathematics, Philadelphia, PA (1999)"},{"key":"12_CR4","unstructured":"various authors: clblas (2017). https:\/\/github.com\/clMathLibraries\/clBLAS. Accessed 21 Aug 2017"},{"key":"12_CR5","doi-asserted-by":"crossref","unstructured":"Banjac, G., Stellato, B., Moehle, N., Goulart, P., Bemporad, A., Boyd, S.P.: Embedded code generation using the OSQP solver. In: CDC, pp. 1906\u20131911 (2017)","DOI":"10.1109\/CDC.2017.8263928"},{"key":"12_CR6","volume-title":"Nonlinear Programming","author":"DP Bertsekas","year":"1999","unstructured":"Bertsekas, D.P.: Nonlinear Programming. Athena Scientific, Belmont, MA (1999)"},{"key":"12_CR7","doi-asserted-by":"crossref","unstructured":"Birgin, E.G., Mart\u00ednez, J.M.: Practical augmented Lagrangian methods for constrained optimization, Fundamentals of Algorithms, vol. 10. SIAM (2014)","DOI":"10.1137\/1.9781611973365"},{"key":"12_CR8","unstructured":"Brooke, A., Kendrick, D., Meeraus, A.: GAMS: release 2.25 : a user\u2019s guide. The Scientific press series, Scientific Press (1992)"},{"issue":"5","key":"12_CR9","doi-asserted-by":"publisher","first-page":"1190","DOI":"10.1137\/0916069","volume":"16","author":"RH Byrd","year":"1995","unstructured":"Byrd, R.H., Lu, P., Nocedal, J., Zhu, C.: A limited memory algorithm for bound constrained optimization. SIAM J. Sci. Comput. 16(5), 1190\u20131208 (1995)","journal-title":"SIAM J. Sci. Comput."},{"key":"12_CR10","unstructured":"Corporation, I.: Intel math kernel library (2017). https:\/\/software.intel.com\/en-us\/mkl. Accessed 21 Aug 2017"},{"key":"12_CR11","unstructured":"Corporation, N.: Nvidia cublas (2017). https:\/\/developer.nvidia.com\/cublas. Accessed 21 Aug 2017"},{"key":"12_CR12","unstructured":"CVX Research Inc: CVX: Matlab software for disciplined convex programming, version 2.1 (2018). http:\/\/cvxr.com\/cvx"},{"issue":"83","key":"12_CR13","first-page":"1","volume":"17","author":"S Diamond","year":"2016","unstructured":"Diamond, S., Boyd, S.: CVXPY: a Python-embedded modeling language for convex optimization. J. Mach. Learn. Res. 17(83), 1\u20135 (2016)","journal-title":"J. Mach. Learn. Res."},{"issue":"2","key":"12_CR14","doi-asserted-by":"publisher","first-page":"295","DOI":"10.1137\/15M1020575","volume":"59","author":"I Dunning","year":"2017","unstructured":"Dunning, I., Huchette, J., Lubin, M.: JuMP: a modeling language for mathematical optimization. SIAM Rev. 59(2), 295\u2013320 (2017)","journal-title":"SIAM Rev."},{"key":"12_CR15","unstructured":"Fourer, R., Gay, D.M., Kernighan, B.W.: AMPL: a modeling language for mathematical programming. Thomson\/Brooks\/Cole (2003)"},{"issue":"2","key":"12_CR16","doi-asserted-by":"publisher","first-page":"532","DOI":"10.1109\/TAC.2016.2564160","volume":"62","author":"P Giselsson","year":"2017","unstructured":"Giselsson, P., Boyd, S.: Linear convergence and metric selection for Douglas-Rachford splitting and ADMM. IEEE Trans. Autom. Control 62(2), 532\u2013544 (2017)","journal-title":"IEEE Trans. Autom. Control"},{"key":"12_CR17","series-title":"Lecture Notes in Control and Information Sciences","doi-asserted-by":"publisher","first-page":"95","DOI":"10.1007\/978-1-84800-155-8_7","volume-title":"Recent Advances in Learning and Control","author":"M Grant","year":"2008","unstructured":"Grant, M., Boyd, S.: Graph implementations for nonsmooth convex programs. In: Blondel, V.D., Boyd, S.P., Kimura, H. (eds.) Recent Advances in Learning and Control. Lecture Notes in Control and Information Sciences, vol. 371, pp. 95\u2013110. Springer, Cham (2008). https:\/\/doi.org\/10.1007\/978-1-84800-155-8_7"},{"key":"12_CR18","doi-asserted-by":"crossref","unstructured":"Griewank, A., Walther, A.: Evaluating derivatives - principles and techniques of algorithmic differentiation, 2 edn. SIAM (2008)","DOI":"10.1137\/1.9780898717761"},{"key":"12_CR19","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-58821-6","volume-title":"Pyomo-Optimization Modeling in Python","author":"WE Hart","year":"2017","unstructured":"Hart, W.E., et al.: Pyomo-Optimization Modeling in Python, vol. 67, 2nd edn. Springer, Cham (2017). https:\/\/doi.org\/10.1007\/978-3-319-58821-6","edition":"2"},{"issue":"3","key":"12_CR20","doi-asserted-by":"publisher","first-page":"219","DOI":"10.1007\/s12532-011-0026-8","volume":"3","author":"WE Hart","year":"2011","unstructured":"Hart, W.E., Watson, J.P., Woodruff, D.L.: Pyomo: modeling and solving mathematical programs in Python. Math. Program. Comput. 3(3), 219\u2013260 (2011)","journal-title":"Math. Program. Comput."},{"issue":"5","key":"12_CR21","doi-asserted-by":"publisher","first-page":"303","DOI":"10.1007\/BF00927673","volume":"4","author":"MR Hestenes","year":"1969","unstructured":"Hestenes, M.R.: Multiplier and gradient methods. J. Optim. Theory Appl. 4(5), 303\u2013320 (1969)","journal-title":"J. Optim. Theory Appl."},{"issue":"6","key":"12_CR22","doi-asserted-by":"publisher","first-page":"405","DOI":"10.1007\/BF00927440","volume":"5","author":"HY Huang","year":"1970","unstructured":"Huang, H.Y.: Unified approach to quadratically convergent algorithms for function minimization. J. Optim. Theory Appl. 5(6), 405\u2013423 (1970)","journal-title":"J. Optim. Theory Appl."},{"key":"12_CR23","unstructured":"Laue, S.: On the equivalence of forward mode automatic differentiation and symbolic differentiation. arXiv e-prints abs\/1904.02990 (2019)"},{"key":"12_CR24","unstructured":"Laue, S., Mitterreiter, M., Giesen, J.: Computing higher order derivatives of matrix and tensor expressions. In: NeurIPS, pp. 2755\u20132764 (2018)"},{"key":"12_CR25","unstructured":"Laue, S., Mitterreiter, M., Giesen, J.: GENO - generic optimization for classical machine learning. In: NeurIPS, pp. 2187\u20132198 (2019)"},{"key":"12_CR26","unstructured":"Laue, S., Mitterreiter, M., Giesen, J.: Matrixcalculus.org - computing derivatives of matrix and tensor expressions. In: ECML-PKDD, pp. 769\u2013772 (2019)"},{"key":"12_CR27","doi-asserted-by":"crossref","unstructured":"Laue, S., Mitterreiter, M., Giesen, J.: GENO - optimization for classical machine learning made fast and easy. In: AAAI, pp. 13620\u201313621 (2020)","DOI":"10.1609\/aaai.v34i09.7097"},{"key":"12_CR28","doi-asserted-by":"crossref","unstructured":"Laue, S., Mitterreiter, M., Giesen, J.: A simple and efficient tensor calculus. In: AAAI, pp. 4527\u20134534 (2020)","DOI":"10.1609\/aaai.v34i04.5881"},{"issue":"2","key":"12_CR29","first-page":"157","volume":"177","author":"S Laue","year":"2020","unstructured":"Laue, S., Mitterreiter, M., Giesen, J.: A simple and efficient tensor calculus for machine learning. Fund. Inform. 177(2), 157\u2013179 (2020)","journal-title":"Fund. Inform."},{"key":"12_CR30","unstructured":"Limited, A.: Arm performance libraries - optimized blas, lapack and fft (2017). https:\/\/developer.arm.com\/products\/software-development-tools\/hpc\/arm-performance-libraries. Accessed 21 Aug 2017"},{"issue":"1","key":"12_CR31","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/s11081-011-9176-9","volume":"13","author":"J Mattingley","year":"2012","unstructured":"Mattingley, J., Boyd, S.: CVXGEN: a code generator for embedded convex optimization. Optim. Eng. 13(1), 1\u201327 (2012)","journal-title":"Optim. Eng."},{"key":"12_CR32","doi-asserted-by":"crossref","unstructured":"Morales, J.L., Nocedal, J.: Remark on \u201calgorithm 778: L-BFGS-B: fortran subroutines for large-scale bound constrained optimization\u201d. ACM Trans. Math. Softw. 38(1), 7:1\u20137:4 (2011)","DOI":"10.1145\/2049662.2049669"},{"issue":"3","key":"12_CR33","doi-asserted-by":"publisher","first-page":"286","DOI":"10.1145\/192115.192132","volume":"20","author":"JJ Mor\u00e9","year":"1994","unstructured":"Mor\u00e9, J.J., Thuente, D.J.: Line search algorithms with guaranteed sufficient decrease. ACM Trans. Math. Softw. 20(3), 286\u2013307 (1994)","journal-title":"ACM Trans. Math. Softw."},{"issue":"5","key":"12_CR34","doi-asserted-by":"publisher","first-page":"794","DOI":"10.1137\/0716059","volume":"16","author":"L Nazareth","year":"1979","unstructured":"Nazareth, L.: A relationship between the BFGS and conjugate gradient algorithms and its implications for new algorithms. SIAM J. Numer. Anal. 16(5), 794\u2013800 (1979)","journal-title":"SIAM J. Numer. Anal."},{"key":"12_CR35","unstructured":"Nesterov, Y.: A method for unconstrained convex minimization problem with the rate of convergence $$O(1\/k^2)$$. Doklady AN USSR (translated as Soviet Math. Docl.) 269 (1983)"},{"issue":"1","key":"12_CR36","doi-asserted-by":"publisher","first-page":"127","DOI":"10.1007\/s10107-004-0552-5","volume":"103","author":"Y Nesterov","year":"2005","unstructured":"Nesterov, Y.: Smooth minimization of non-smooth functions. Math. Program. 103(1), 127\u2013152 (2005)","journal-title":"Math. Program."},{"key":"12_CR37","series-title":"Lecture Notes in Computational Science and Engineering","doi-asserted-by":"publisher","first-page":"71","DOI":"10.1007\/978-3-642-30023-3_7","volume-title":"Recent Advances in Algorithmic Differentiation","author":"PA Olsen","year":"2012","unstructured":"Olsen, P.A., Rennie, S.J., Goel, V.: Efficient automatic differentiation of matrix functions. In: Forth, S., Hovland, P., Phipps, E., Utke, J., Walther, A. (eds.) Recent Advances in Algorithmic Differentiation. Lecture Notes in Computational Science and Engineering, vol. 87, pp. 71\u201381. Springer, Cham (2012). https:\/\/doi.org\/10.1007\/978-3-642-30023-3_7"},{"issue":"1","key":"12_CR38","doi-asserted-by":"publisher","first-page":"224","DOI":"10.1007\/BF01588967","volume":"14","author":"MJD Powell","year":"1969","unstructured":"Powell, M.J.D.: Algorithms for nonlinear constraints that use Lagrangian functions. Math. Program. 14(1), 224\u2013248 (1969)","journal-title":"Math. Program."},{"issue":"1\u20132","key":"12_CR39","doi-asserted-by":"publisher","first-page":"125","DOI":"10.1007\/BF01454201","volume":"54","author":"G Ricci","year":"1900","unstructured":"Ricci, G., Levi-Civita, T.: M\u00e9thodes de calcul diff\u00e9rentiel absolu et leurs applications. Math. Ann. 54(1\u20132), 125\u2013201 (1900)","journal-title":"Math. Ann."},{"key":"12_CR40","unstructured":"Vasilache, N., et al.: Tensor comprehensions: framework-agnostic high-performance machine learning abstractions. arXiv preprint arXiv:1802.04730 (2018)"},{"issue":"2","key":"12_CR41","doi-asserted-by":"publisher","first-page":"226","DOI":"10.1137\/1011036","volume":"11","author":"P Wolfe","year":"1969","unstructured":"Wolfe, P.: Convergence conditions for ascent methods. SIAM Rev. 11(2), 226\u2013235 (1969)","journal-title":"SIAM Rev."},{"issue":"2","key":"12_CR42","doi-asserted-by":"publisher","first-page":"185","DOI":"10.1137\/1013035","volume":"13","author":"P Wolfe","year":"1971","unstructured":"Wolfe, P.: Convergence conditions for ascent methods. ii: some corrections. SIAM Rev. 13(2), 185\u2013188 (1971)","journal-title":"SIAM Rev."},{"issue":"3","key":"12_CR43","doi-asserted-by":"crossref","first-page":"14:1","DOI":"10.1145\/2764454","volume":"41","author":"FG Van Zee","year":"2015","unstructured":"Van Zee, F.G., van de Geijn, R.A.: BLIS: a framework for rapidly instantiating BLAS functionality. ACM Trans. Math. Softw. 41(3), 14:1-14:33 (2015)","journal-title":"ACM Trans. Math. Softw."},{"issue":"4","key":"12_CR44","doi-asserted-by":"publisher","first-page":"550","DOI":"10.1145\/279232.279236","volume":"23","author":"C Zhu","year":"1997","unstructured":"Zhu, C., Byrd, R.H., Lu, P., Nocedal, J.: Algorithm 778: L-BFGS-B: fortran subroutines for large-scale bound-constrained optimization. ACM Trans. Math. Softw. 23(4), 550\u2013560 (1997)","journal-title":"ACM Trans. Math. Softw."}],"container-title":["Lecture Notes in Computer Science","Algorithms for Big Data"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-21534-6_12","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,1,17]],"date-time":"2023-01-17T20:04:58Z","timestamp":1673985898000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-21534-6_12"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022]]},"ISBN":["9783031215339","9783031215346"],"references-count":44,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-21534-6_12","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2022]]},"assertion":[{"value":"18 January 2023","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}}]}}