{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,9]],"date-time":"2024-09-09T07:36:00Z","timestamp":1725867360911},"publisher-location":"Cham","reference-count":33,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783319460789"},{"type":"electronic","value":"9783319460796"}],"license":[{"start":{"date-parts":[[2016,1,1]],"date-time":"2016-01-01T00:00:00Z","timestamp":1451606400000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2016]]},"DOI":"10.1007\/978-3-319-46079-6_32","type":"book-chapter","created":{"date-parts":[[2016,10,5]],"date-time":"2016-10-05T16:01:40Z","timestamp":1475683300000},"page":"451-469","source":"Crossref","is-referenced-by-count":2,"title":["Battling Memory Requirements of Array Programming Through Streaming"],"prefix":"10.1007","author":[{"given":"Mads R. B.","family":"Kristensen","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"James","family":"Avery","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Troels","family":"Blum","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Simon Andreas Frimann","family":"Lund","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Brian","family":"Vinter","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2016,10,6]]},"reference":[{"issue":"2","key":"32_CR1","doi-asserted-by":"crossref","first-page":"211","DOI":"10.1080\/00268970500275780","volume":"104","author":"AA Auer","year":"2006","unstructured":"Auer, A.A., Baumgartner, G., Bernholdt, D.E., Bibireata, A., Choppella, V., Cociorva, D., Gao, X., Harrison, R., Krishnamoorthy, S., Krishnan, S., et al.: Automatic code generation for many-body electronic structure methods: the tensor contraction engine. Mol. Phy. 104(2), 211\u2013228 (2006)","journal-title":"Mol. Phy."},{"key":"32_CR2","doi-asserted-by":"crossref","first-page":"S48","DOI":"10.1017\/S0885715614000931","volume":"29","author":"VM Ayer","year":"2014","unstructured":"Ayer, V.M., Miguez, S., Toby, B.H.: Why scientists should learn to program in python. Powder Diffr. 29, S48\u2013S64 (2014)","journal-title":"Powder Diffr."},{"issue":"2","key":"32_CR3","doi-asserted-by":"crossref","first-page":"31","DOI":"10.1109\/MCSE.2010.118","volume":"13","author":"S Behnel","year":"2011","unstructured":"Behnel, S., Bradshaw, R., Citro, C., Dalcin, L., Seljebotn, D.S., Smith, K.: Cython: the best of both worlds. Comput. Sci. Eng. 13(2), 31\u201339 (2011)","journal-title":"Comput. Sci. Eng."},{"key":"32_CR4","doi-asserted-by":"crossref","unstructured":"Bergstra, J., Breuleux, O., Bastien, F., Lamblin, P., Pascanu, R., Desjardins, G., Turian, J., Warde-Farley, D., Bengio, Y.: Theano: a CPU and GPU math expression compiler. In: Proceedings of the Python for Scientific Computing Conference (SciPy), June 2010. Oral Presentation","DOI":"10.25080\/Majora-92bf1922-003"},{"key":"32_CR5","doi-asserted-by":"crossref","unstructured":"Blum, T., Kristensen, M.R.B., Vinter, B.: Transparent GPU execution of NumPy applications. In: 2014 IEEE 28th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW). IEEE (2014)","DOI":"10.1109\/IPDPSW.2014.114"},{"key":"32_CR6","unstructured":"Cooke, D., Hochberg, T.: Numexpr. Fast evaluation of array expressions by using a vector-based virtual machine"},{"key":"32_CR7","doi-asserted-by":"crossref","unstructured":"Darte, A., Huard, G.: New results on array contraction [memory optimization]. In: Proceedings of the IEEE International Conference on Application-Specific Systems, Architectures and Processors, pp. 359\u2013370. IEEE (2002)","DOI":"10.1109\/ASAP.2002.1030735"},{"key":"32_CR8","doi-asserted-by":"crossref","first-page":"17","DOI":"10.1016\/j.procs.2011.04.003","volume":"4","author":"J Enkovaara","year":"2011","unstructured":"Enkovaara, J., Romero, N.A., Shende, S., Mortensen, J.J.: Gpaw-massively parallel electronic structure calculations with python-based software. Procedia Comput. Sci. 4, 17\u201325 (2011)","journal-title":"Procedia Comput. Sci."},{"key":"32_CR9","volume-title":"IronPython in Action","author":"M Foord","year":"2009","unstructured":"Foord, M., Muirhead, C.: IronPython in Action. Manning Publications Co., Greenwich (2009)"},{"issue":"1","key":"32_CR10","doi-asserted-by":"crossref","first-page":"014001","DOI":"10.1088\/1749-4680\/8\/1\/014001","volume":"8","author":"S Guelton","year":"2015","unstructured":"Guelton, S., Brunet, P., Amini, M., Merlini, A., Corbillon, X., Raynaud, A.: Pythran: enabling static optimization of scientific python programs. Comput. Sci. Discov. 8(1), 014001 (2015)","journal-title":"Comput. Sci. Discov."},{"issue":"3","key":"32_CR11","doi-asserted-by":"crossref","first-page":"299","DOI":"10.1080\/10618600.1996.10474713","volume":"5","author":"R Ihaka","year":"1996","unstructured":"Ihaka, R., Gentleman, R.: R: a language for data analysis and graphics. J. Comput. Graph. Stat. 5(3), 299\u2013314 (1996)","journal-title":"J. Comput. Graph. Stat."},{"key":"32_CR12","unstructured":"Jones, E., Miller, P.J.: Weaveinlining C\/C++ in Python. OReilly Open Source Convention (2002)"},{"issue":"3","key":"32_CR13","doi-asserted-by":"crossref","first-page":"157","DOI":"10.1016\/j.parco.2011.09.001","volume":"38","author":"A Klckner","year":"2012","unstructured":"Klckner, A., Pinto, N., Lee, Y., Catanzaro, B., Ivanov, P., Fasih, A.: PyCUDA and PyOpenCL: a scripting-based approach to GPU run-time code generation. Parallel Comput. 38(3), 157\u2013174 (2012)","journal-title":"Parallel Comput."},{"key":"32_CR14","doi-asserted-by":"crossref","unstructured":"Kristensen, M.R.B., Happe, H., Vinter, B.: GPAW optimized for Blue Gene\/P using hybrid programming. In: IEEE International Symposium on Parallel Distributed Processing, IPDPS 2009, pp. 1\u20136 (2009)","DOI":"10.1109\/IPDPS.2009.5160936"},{"key":"32_CR15","doi-asserted-by":"crossref","unstructured":"Kristensen, M.R.B., Lund, S.A.F., Blum, T., Avery, J.: Fusion of array operations at runtime. In: Proceedings of the 25th International Conference on Parallel Architectures and Compilation Techniques (PACT 2016). ACM (2016)","DOI":"10.1145\/2967938.2967945"},{"key":"32_CR16","unstructured":"Kristensen, M.R.B., Lund, S.A.F., Blum, T., Skovhede, K.: Separating NumPy API from implementation. In: 5th Workshop on Python for High Performance and Scientific Computing (PyHPC 2014) (2014)"},{"key":"32_CR17","unstructured":"Kristensen, M.R.B., Lund, S.A.F., Blum, T., Skovhede, K., Vinter, B.: Bohrium: unmodified NumPy code on CPU, GPU, and cluster. In: 4th Workshop on Python for High Performance and Scientific Computing (PyHPC 2013) (2013)"},{"key":"32_CR18","doi-asserted-by":"crossref","unstructured":"Kristensen, M.R.B., Lund, S.A.F., Blum, T., Skovhede, K., Vinter, B.: Bohrium: a virtual machine approach to portable parallelism. In: 2014 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), pp. 312\u2013321. IEEE (2014)","DOI":"10.1109\/IPDPSW.2014.44"},{"key":"32_CR19","doi-asserted-by":"crossref","unstructured":"Kristensen, M.R.B., Vinter, B.: Numerical python for scalable architectures. In: Proceedings of the Fourth Conference on Partitioned Global Address Space Programming Model, PGAS 2010, pp. 15:1\u201315:9. ACM, New York (2010)","DOI":"10.1145\/2020373.2020388"},{"key":"32_CR20","doi-asserted-by":"crossref","unstructured":"Kristensen, M.R.B., Zheng, Y., Vinter, B.: PGAS for distributed numerical python targeting multi-core clusters. In: International Parallel and Distributed Processing Symposium, pp. 680\u2013690 (2012)","DOI":"10.1109\/IPDPS.2012.67"},{"key":"32_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"350","DOI":"10.1007\/3-540-44905-1_22","volume-title":"Languages and Compilers for Parallel Computing","author":"C-C Lam","year":"2000","unstructured":"Lam, C.-C., Cociorva, D., Baumgartner, G., Sadayappan, P.: Optimization of memory usage requirement for a class of loops implementing multi-dimensional integrals. In: Carter, L., Ferrante, J. (eds.) LCPC 1999. LNCS, vol. 1863, pp. 350\u2013364. Springer, Heidelberg (2000). doi: 10.1007\/3-540-44905-1_22"},{"key":"32_CR22","doi-asserted-by":"crossref","unstructured":"Madsen, F.M., Clifton-Everest, R., Chakravarty, M.M.T., Keller, G.: Functional array streams. In: Proceedings of the 4th ACM SIGPLAN Workshop on FunctionalHigh-Performance Computing, FHPC 2015, pp. 23\u201334. ACM, New York (2015)","DOI":"10.1145\/2808091.2808094"},{"key":"32_CR23","doi-asserted-by":"crossref","unstructured":"Madsen, F.M., Filinski, A.: Towards a streaming model for nested data parallelism. In: Proceedings of the 2nd ACM SIGPLAN Workshop on Functional High-Performance Computing, pp. 13\u201324. ACM (2013)","DOI":"10.1145\/2502323.2502330"},{"key":"32_CR24","unstructured":"MATLAB. version 7.10.0 (R2010a). The MathWorks Inc., Natick, Massachusetts (2010)"},{"key":"32_CR25","unstructured":"Mnih, V.: Cudamat: a cuda-based matrix class for python. Department of Computer Science, University of Toronto, Technical report, UTML TR, 4 (2009)"},{"key":"32_CR26","first-page":"11","volume":"1","author":"A Munshi","year":"2009","unstructured":"Munshi, A., et al.: The OpenCL specification. Khronos OpenCL Working Group 1, 11\u201315 (2009)","journal-title":"Khronos OpenCL Working Group"},{"key":"32_CR27","unstructured":"NVIDIA Corporation. NVIDIA CUDA Programming Guide 2.0 (2008)"},{"key":"32_CR28","unstructured":"Oliphant, T.: Numba python bytecode to llvm translator. In: Proceedings of the Python for Scientific Computing Conference (SciPy) (2012)"},{"key":"32_CR29","volume-title":"Jython Essentials: Rapid Scripting in Java","author":"S Pedroni","year":"2002","unstructured":"Pedroni, S., Rappin, N.: Jython Essentials: Rapid Scripting in Java, 1st edn. O\u2019Reilly & Associates Inc., Sebastopol (2002)","edition":"1"},{"issue":"2","key":"32_CR30","doi-asserted-by":"crossref","first-page":"123","DOI":"10.1007\/s11227-006-7953-6","volume":"36","author":"CD Rickett","year":"2006","unstructured":"Rickett, C.D., Choi, S.-E., Rasmussen, C.E., Sottile, M.J.: Rapid prototyping frameworks for developing scientific applications: a case study. J. Supercomput. 36(2), 123\u2013134 (2006)","journal-title":"J. Supercomput."},{"key":"32_CR31","unstructured":"Tieleman, T.: Gnumpy: an easy way to use gpu boards in python (2010)"},{"issue":"2","key":"32_CR32","doi-asserted-by":"crossref","first-page":"22","DOI":"10.1109\/MCSE.2011.37","volume":"13","author":"S Walt Van Der","year":"2011","unstructured":"Van Der Walt, S., Colbert, S., Varoquaux, G.: The numpy array: a structure for efficient numerical computation. Comput. Sci. Eng. 13(2), 22\u201330 (2011)","journal-title":"Comput. Sci. Eng."},{"key":"32_CR33","unstructured":"van Rossum, G.: Glue it all together with python. In: Workshop on Compositional Software Architectures, Workshop Report, Monterey, California (1998)"}],"container-title":["Lecture Notes in Computer Science","High Performance Computing"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-319-46079-6_32","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,6,19]],"date-time":"2024-06-19T19:44:28Z","timestamp":1718826268000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-319-46079-6_32"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016]]},"ISBN":["9783319460789","9783319460796"],"references-count":33,"URL":"https:\/\/doi.org\/10.1007\/978-3-319-46079-6_32","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2016]]}}}