Show simple item record

dc.contributor.authorWillis, B.R.
dc.contributor.authorShrivastava, A.
dc.contributor.authorMack, J.
dc.contributor.authorDave, S.
dc.contributor.authorChakrabarti, C.
dc.contributor.authorBrunhaver, J.
dc.date.accessioned2024-03-22T17:33:53Z
dc.date.available2024-03-22T17:33:53Z
dc.date.issued2023-10-30
dc.identifier.citationB. R. Willis, A. Shrivastava, J. Mack, S. Dave, C. Chakrabarti and J. Brunhaver, "Cyclebite: Extracting Task Graphs From Unstructured Compute-Programs," in IEEE Transactions on Computers, vol. 73, no. 1, pp. 221-234, Jan. 2024, doi: 10.1109/TC.2023.3327504.
dc.identifier.issn0018-9340
dc.identifier.doi10.1109/TC.2023.3327504
dc.identifier.urihttp://hdl.handle.net/10150/671690
dc.description.abstract—Extracting portable performance in an application requires structuring that program into a data-flow graph of coarse-grained tasks (CGTs). Structuring applications that interconnect multiple external libraries and custom code (i.e., “Code From The Wild” (CFTW)) is challenging. When experts manually restructure a program, they trivialize the extraction of structure; however, this expertise is not broadly available. Automatic structuring approaches focus on the intersection of hot code and static loops, ignoring the data dependencies between tasks and significantly reducing the scope of analyzeable programs. This work addresses the problem of extracting the data-flow graph of CGTs from CFTW. To that end, we present Cyclebite. Our approach extracts CGTs from unstructured compute-programs by detecting CGT candidates in the simplified Markov Control Graph (MCG), and localizing CGTs in an epoch profile. Additionally, the epoch profile extracts the data dependence between CGTs required to build the data-flow graph of CGTs. Cyclebite demonstrates a robust selectivity for critical CGTs relative to the state-of-the-art (SoA), leading to a potential speedup of 12x on average and thread-scaling of 24x on average compared to modern compiler optimizers. We validate the results of Cyclebite and compare them to two SoA techniques using an input corpus of 25 open-source C/C++ libraries with 2,019 unique execution profiles. © 2023 The Authors. This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/
dc.language.isoen
dc.publisherIEEE Computer Society
dc.rights© 2023 The Authors. This work is licensed under a Creative Commons Attribution 4.0 License.
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/
dc.subjectdynamic control flow graph
dc.subjectepoch
dc.subjectmemory dependency analysis
dc.subjectProduce-consume task graph
dc.subjecttask partitioning
dc.titleCyclebite: Extracting Task Graphs From Unstructured Compute-Programs
dc.typeArticle
dc.typetext
dc.contributor.departmentElectrical and Computer Engineering Department, University of Arizona
dc.identifier.journalIEEE Transactions on Computers
dc.description.noteOpen access article
dc.description.collectioninformationThis item from the UA Faculty Publications collection is made available by the University of Arizona with support from the University of Arizona Libraries. If you have questions, please contact us at repository@u.library.arizona.edu.
dc.eprint.versionFinal Published Version
dc.source.journaltitleIEEE Transactions on Computers
refterms.dateFOA2024-03-22T17:33:53Z


Files in this item

Thumbnail
Name:
Cyclebite_Extracting.pdf
Size:
2.324Mb
Format:
PDF
Description:
Final Published Version

This item appears in the following Collection(s)

Show simple item record

© 2023 The Authors. This work is licensed under a Creative Commons Attribution 4.0 License.
Except where otherwise noted, this item's license is described as © 2023 The Authors. This work is licensed under a Creative Commons Attribution 4.0 License.