{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:08:30Z","timestamp":1750219710653,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":59,"publisher":"ACM","license":[{"start":{"date-parts":[[2023,11,30]],"date-time":"2023-11-30T00:00:00Z","timestamp":1701302400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2023,11,30]]},"DOI":"10.1145\/3611643.3616259","type":"proceedings-article","created":{"date-parts":[[2023,11,30]],"date-time":"2023-11-30T23:14:38Z","timestamp":1701386078000},"page":"832-844","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Discovering Parallelisms in Python Programs"],"prefix":"10.1145","author":[{"ORCID":"https:\/\/orcid.org\/0009-0003-3073-3117","authenticated-orcid":false,"given":"Siwei","family":"Wei","sequence":"first","affiliation":[{"name":"Institute of Software at Chinese Academy of Sciences, Beijing, China \/ University of Chinese Academy of Sciences, Beijing, China"}]},{"ORCID":"https:\/\/orcid.org\/0009-0002-1358-073X","authenticated-orcid":false,"given":"Guyang","family":"Song","sequence":"additional","affiliation":[{"name":"AntGroup, Beijing, China"}]},{"ORCID":"https:\/\/orcid.org\/0009-0009-8913-944X","authenticated-orcid":false,"given":"Senlin","family":"Zhu","sequence":"additional","affiliation":[{"name":"AntGroup, Hangzhou, China"}]},{"ORCID":"https:\/\/orcid.org\/0009-0004-2786-0956","authenticated-orcid":false,"given":"Ruoyi","family":"Ruan","sequence":"additional","affiliation":[{"name":"AntGroup, Hangzhou, China"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-9973-9871","authenticated-orcid":false,"given":"Shihao","family":"Zhu","sequence":"additional","affiliation":[{"name":"Institute of Software at Chinese Academy of Sciences, Beijing, China \/ University of Chinese Academy of Sciences, Beijing, China"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4768-0272","authenticated-orcid":false,"given":"Yan","family":"Cai","sequence":"additional","affiliation":[{"name":"Institute of Software at Chinese Academy of Sciences, Beijing, China \/ University of Chinese Academy of Sciences, Beijing, China"}]}],"member":"320","published-online":{"date-parts":[[2023,11,30]]},"reference":[{"key":"e_1_3_2_2_1_1","unstructured":"[n. d.]. ast \u2014 Abstract Syntax Trees. https:\/\/docs.python.org\/3\/library\/ast.html Accessed: 2022-12-21"},{"key":"e_1_3_2_2_2_1","unstructured":"[n. d.]. ast \u2014 Abstract Syntax Trees. https:\/\/docs.python.org\/3\/library\/ast.html#ast.comprehension Accessed: 2022-12-21"},{"key":"e_1_3_2_2_3_1","unstructured":"[n. d.]. Awesome Python. https:\/\/github.com\/vinta\/awesome-python Accessed: 2022-12-21"},{"key":"e_1_3_2_2_4_1","unstructured":"[n. d.]. Awesome Scientific Computing. https:\/\/github.com\/nschloe\/awesome-scientific-computing Accessed: 2022-12-21"},{"key":"e_1_3_2_2_5_1","unstructured":"[n. d.]. Basic Installation - trimesh 3.17.1 documentation. https:\/\/trimsh.org\/ Accessed: 2022-12-21"},{"key":"e_1_3_2_2_6_1","unstructured":"[n. d.]. concurrent.futures \u2014 Launching parallel tasks. https:\/\/docs.python.org\/3\/library\/concurrent.futures.html Accessed: 2022-12-21"},{"key":"e_1_3_2_2_7_1","unstructured":"[n. d.]. Joblib: running Python functions as pipeline jobs. https:\/\/joblib.readthedocs.io\/en\/latest\/ Accessed: 2022-12-21"},{"key":"e_1_3_2_2_8_1","unstructured":"[n. d.]. multiprocessing \u2014 Process-based parallelism. https:\/\/docs.python.org\/3\/library\/multiprocessing.html Accessed: 2022-12-21"},{"key":"e_1_3_2_2_9_1","unstructured":"[n. d.]. threading \u2014 Thread-based parallelism. https:\/\/docs.python.org\/3\/library\/threading.html Accessed: 2022-12-21"},{"key":"e_1_3_2_2_10_1","unstructured":"[n. d.]. TIOBE Index - TIOBE. https:\/\/www.tiobe.com\/tiobe-index\/programminglanguages_definition\/ Accessed: 2022-12-21"},{"key":"e_1_3_2_2_11_1","unstructured":"[n. d.]. trace \u2014 Trace or track Python statement execution. https:\/\/docs.python.org\/3\/library\/trace.html Accessed: 2022-12-21"},{"key":"e_1_3_2_2_12_1","unstructured":"Mart\u00edn Abadi Ashish Agarwal Paul Barham Eugene Brevdo Zhifeng Chen Craig Citro Greg S. Corrado Andy Davis Jeffrey Dean Matthieu Devin Sanjay Ghemawat Ian Goodfellow Andrew Harp Geoffrey Irving Michael Isard Yangqing Jia Rafal Jozefowicz Lukasz Kaiser Manjunath Kudlur Josh Levenberg Dandelion Man\u00e9 Rajat Monga Sherry Moore Derek Murray Chris Olah Mike Schuster Jonathon Shlens Benoit Steiner Ilya Sutskever Kunal Talwar Paul Tucker Vincent Vanhoucke Vijay Vasudevan Fernanda Vi\u00e9gas Oriol Vinyals Pete Warden Martin Wattenberg Martin Wicke Yuan Yu and Xiaoqiang Zheng. 2015. TensorFlow: Large-Scale Machine Learning on Heterogeneous Systems. https:\/\/www.tensorflow.org\/ Software available from tensorflow.org"},{"key":"e_1_3_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3446804.3446842"},{"key":"e_1_3_2_2_14_1","volume-title":"Ullman","author":"Aho Alfred V.","year":"2006","unstructured":"Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. 2006. Compilers: Principles, Techniques, and Tools (2nd Edition). Compilers: Principles, Techniques, and Tools (2nd Edition)."},{"key":"e_1_3_2_2_15_1","volume-title":"2nd International Workshop on Polyhedral Compilation Techniques, Impact (Jan","author":"Amini Mehdi","year":"2012","unstructured":"Mehdi Amini, B\u00e9atrice Creusillet, St\u00e9phanie Even, Ronan Keryell, Onig Goubier, Serge Guelton, Janice Onanian McMahon, Fran\u00e7ois-Xavier Pasquier, Gr\u00e9goire P\u00e9an, and Pierre Villalon. 2012. Par4all: From convex array regions to heterogeneous computing. In 2nd International Workshop on Polyhedral Compilation Techniques, Impact (Jan 2012)."},{"key":"e_1_3_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.25007\/ajnu.v10n3a1145"},{"key":"e_1_3_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/bf00128174"},{"key":"e_1_3_2_2_18_1","volume-title":"PyCON Python Conference","author":"Beazley David","year":"2010","unstructured":"David Beazley. 2010. Understanding the python gil. In PyCON Python Conference. Atlanta, Georgia."},{"key":"e_1_3_2_2_19_1","volume-title":"Proceedings of the Seventh Workshop on Languages and Compilers for Parallel Computing. 141\u2013154","author":"Blume Bill","year":"1994","unstructured":"Bill Blume, Rudolf Eigenmann, Keith Faigin, John Grout, Jay Hoeflinger, David Padua, Paul Petersen, Bill Pottenger, Lawrence Rauchwerger, and Peng Tu. 1994. Polaris: The next generation in parallelizing compilers. In Proceedings of the Seventh Workshop on Languages and Compilers for Parallel Computing. 141\u2013154."},{"key":"e_1_3_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-78791-4_9"},{"key":"e_1_3_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375595"},{"key":"e_1_3_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1155\/2005"},{"key":"e_1_3_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2007.09.005"},{"key":"e_1_3_2_2_24_1","first-page":"515","article-title":"Python code parallelization, challenges and alternatives","author":"Gonzalez Justo","year":"2019","unstructured":"Justo Gonzalez, Julian Taylor, Sandra Castro, Jeff Kern, Jens Knudstrup, Stefano Zampieri, Alisdair Manning, Sanjay Bhatnagar, Lindsey Davis, and Kumar Golap. 2019. Python code parallelization, challenges and alternatives. Astronomical Data Analysis Software and Systems XXVI, 521 (2019), 515.","journal-title":"Astronomical Data Analysis Software and Systems"},{"key":"e_1_3_2_2_25_1","volume-title":"Proceedings of the First International Workshop on Polyhedral Compilation Techniques (IMPACT).","author":"Grosser Tobias","year":"2011","unstructured":"Tobias Grosser, Hongbin Zheng, Raghesh Aloor, Andreas Simb\u00fcrger, Armin Gr\u00f6\u00df linger, and Louis-No\u00ebl Pouchet. 2011. Polly-Polyhedral optimization in LLVM. In Proceedings of the First International Workshop on Polyhedral Compilation Techniques (IMPACT). 2011, 1."},{"key":"e_1_3_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1016\/0026-2692(93)90111-q"},{"key":"e_1_3_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-24644-2_35"},{"key":"e_1_3_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/113445.113447"},{"key":"e_1_3_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.25080\/majora-7b98e3ed-003"},{"key":"e_1_3_2_2_30_1","volume-title":"pandas: a foundational Python library for data analysis and statistics. Python for high performance and scientific computing, 14, 9","author":"McKinney Wes","year":"2011","unstructured":"Wes McKinney. 2011. pandas: a foundational Python library for data analysis and statistics. Python for high performance and scientific computing, 14, 9 (2011), 1\u20139."},{"key":"e_1_3_2_2_31_1","volume-title":"13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18)","author":"Moritz Philipp","year":"2018","unstructured":"Philipp Moritz, Robert Nishihara, Stephanie Wang, Alexey Tumanov, Richard Liaw, Eric Liang, Melih Elibol, Zongheng Yang, William Paul, and Michael I Jordan. 2018. Ray: A distributed framework for emerging AI applications. In 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18). 561\u2013577."},{"key":"e_1_3_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/mc.2014.262"},{"key":"e_1_3_2_2_33_1","doi-asserted-by":"publisher","unstructured":"Flemming Nielson Hanne R Nielson and Chris Hankin. 2015. Principles of program analysis. springer. https:\/\/doi.org\/10.1007\/978-3-662-03811-6","DOI":"10.1007\/978-3-662-03811-6"},{"key":"e_1_3_2_2_34_1","unstructured":"Brian Okken. 2022. Python Testing with pytest. Pragmatic Bookshelf."},{"volume-title":"A guide to NumPy. 1","author":"Oliphant Travis E","key":"e_1_3_2_2_35_1","unstructured":"Travis E Oliphant. 2006. A guide to NumPy. 1, Trelgol Publishing USA."},{"key":"e_1_3_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.5555\/1953048.2078195"},{"key":"e_1_3_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1379022.1375594"},{"key":"e_1_3_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/1925844.1926449"},{"key":"e_1_3_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1177\/1094342020937050"},{"key":"e_1_3_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.25080\/majora-7b98e3ed-013"},{"key":"e_1_3_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-12597-3_22"},{"key":"e_1_3_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/230514.571645"},{"key":"e_1_3_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/swat.1971.10"},{"key":"e_1_3_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3079079.3079099"},{"key":"e_1_3_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.7287\/peerj.preprints.336v2"},{"key":"e_1_3_2_2_46_1","volume-title":"Drake","author":"Rossum Guido Van","year":"2009","unstructured":"Guido Van Rossum and Fred L. Drake. 2009. Python 3 Reference Manual. CreateSpace, Scotts Valley, CA. isbn:1441412697"},{"key":"e_1_3_2_2_47_1","unstructured":"Guido Van Rossum and Fred L Drake Jr. 1995. Python Reference Manual. Centrum voor Wiskunde en Informatica Amsterdam."},{"key":"e_1_3_2_2_48_1","unstructured":"Guido Van Rossum and Fred L Drake Jr. 1995. Python tutorial. Centrum voor Wiskunde en Informatica Amsterdam The Netherlands."},{"key":"e_1_3_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1038\/s41592-019-0686-2"},{"key":"e_1_3_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.procs.2017.05.203"},{"key":"e_1_3_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.21105\/joss.03021"},{"key":"e_1_3_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1984.5010248"},{"key":"e_1_3_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.7326\/0003-4819-110-11-916"},{"key":"e_1_3_2_2_54_1","unstructured":"Michael Edward Wolf. 1992. Improving locality and parallelism in nested loops. stanford university."},{"key":"e_1_3_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1007\/bf01379099"},{"key":"e_1_3_2_2_56_1","unstructured":"Raymond E Wright. 1995. Logistic regression.."},{"volume-title":"Python parallel programming cookbook","author":"Zaccone Giancarlo","key":"e_1_3_2_2_57_1","unstructured":"Giancarlo Zaccone. 2015. Python parallel programming cookbook. Packt Publishing Ltd."},{"key":"e_1_3_2_2_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/2934664"},{"key":"e_1_3_2_2_59_1","doi-asserted-by":"publisher","DOI":"10.1109\/QRS.2018.00052"}],"event":{"name":"ESEC\/FSE '23: 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering"],"location":"San Francisco CA USA","acronym":"ESEC\/FSE '23"},"container-title":["Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3611643.3616259","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3611643.3616259","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:36:03Z","timestamp":1750178163000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3611643.3616259"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,11,30]]},"references-count":59,"alternative-id":["10.1145\/3611643.3616259","10.1145\/3611643"],"URL":"https:\/\/doi.org\/10.1145\/3611643.3616259","relation":{},"subject":[],"published":{"date-parts":[[2023,11,30]]},"assertion":[{"value":"2023-11-30","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}