Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Bruce Collie

dblp:245/0025 · DBLP profile ↗
← Back
5ranked-venue papers
4as first author
1since 2021 · last 2021
0000-0003-0589-9652ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 3 · 2 first-authorSystems, architecture and hardware · 2 · 2 first-author · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
1 paper
Software maintenance and evolution · 92% Program analysis · 8%

Topics — the 5 heaviest of 5, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › software reengineering › software modernization › software migration
API migration
0.412020
M3: Semantic API Migrations · ASE 2020
Software maintenance and evolution › software reengineering › software modernization › software migration
library migration
0.412020
M3: Semantic API Migrations · ASE 2020
Software maintenance and evolution
software evolution
0.412020
M3: Semantic API Migrations · ASE 2020
Software maintenance and evolution › API usage
API usage analysis
0.112020
M3: Semantic API Migrations · ASE 2020
Program analysis
static analysis
0.112020
M3: Semantic API Migrations · ASE 2020

Methods — techniques the papers use, named apart from their topics

statistical model · 0.4changelog analysis · 0.4
YearPublicationVenuePosition
2021 Program Lifting using Gray-Box Behavior
abstract
Porting specialized application components to new platforms is difficult. This is particularly true if the components depend on proprietary libraries, or specific hardware. To tackle this, existing work has sought to recover high-level descriptions of application components to ease their retargeting. However, existing schemes are either too limited, targeting just one application domain, or too weak, making them ill-suited to recovering real-world programs. Additionally, many rely on help in the form of problem-specific user annotations or complex specifications. This paper develops a new approach using gray-box program synthesis, which recovers code by automatically constructing a program to match the behavior of an unknown component. However, unlike other synthesis approaches, it exploits the dynamic or gray-box behavior of a component to guide recovery. For example, the execution time, memory access patterns or observed instruction traces can all be used to direct synthesis. We evaluate our technique (HAZE) extensively against existing program synthesizers and a domain-specific lifter. Our scheme is able to generalize effectively across domains, synthesizing and lifting more programs than prior techniques, without any external assistance. We validate our methodology using bounded model checking, demonstrating that our synthesized programs are correct. Finally, we apply our approach to machine learning workloads, obtaining significant speedups automatically.
Bruce Collie, Michael F. P. O'Boyle
PACT1
2020 Automatically harnessing sparse acceleration
abstract
Sparse linear algebra is central to many scientific programs, yet compilers fail to optimize it well. High-performance libraries are available, but adoption costs are significant. Moreover, libraries tie programs into vendor-specific software and hardware ecosystems, creating non-portable code.
Philip Ginsbach, Bruce Collie, Michael F. P. O'Boyle
CC2
2020 Modeling black-box components with probabilistic synthesis
abstract
This paper is concerned with synthesizing programs based on black-box oracles: we are interested in the case where there exists an executable implementation of a component or library, but its internal structure is unknown. We are provided with just an API or function signature, and aim to synthesize a program with equivalent behavior.
Bruce Collie, Jackson Woodruff, Michael F. P. O'Boyle
GPCE1
2020 M3: Semantic API Migrations
abstract
Library migration is a challenging problem, where most existing approaches rely on prior knowledge. This can be, for example, information derived from changelogs or statistical models of API usage.
Bruce Collie, Philip Ginsbach, Jackson Woodruff, Ajitha Rajan, Michael F. P. O'Boyle
ASE1
2019 Type-Directed Program Synthesis and Constraint Generation for Library Portability
abstract
Fast numerical libraries have been a cornerstone of scientific computing for decades, but this comes at a price. Programs may be tied to vendor specific software ecosystems resulting in polluted, non-portable code. As we enter an era of heterogeneous computing, there is an explosion in the number of accelerator libraries required to harness specialized hardware. We need a system that allows developers to exploit ever-changing accelerator libraries, without over-specializing their code. As we cannot know the behavior of future libraries ahead of time, this paper develops a scheme that assists developers in matching their code to new libraries, without requiring the source code for these libraries. Furthermore, it can recover equivalent code from programs that use existing libraries and automatically port them to new interfaces. It first uses program synthesis to determine the meaning of a library, then maps the synthesized description into generalized constraints which are used to search the program for replacement opportunities to present to the developer. We applied this approach to existing large applications from the scientific computing and deep learning domains. Using our approach, we show speedups ranging from 1.1× to over 10× on end to end performance when using accelerator libraries.
Bruce Collie, Philip Ginsbach, Michael F. P. O'Boyle
PACT1