EDBT 2026 Demo / reviewers in the wild / expert
Lorin Hochstein
dblp:75/1187
· DBLP profile ↗
17ranked-venue papers
8as first author
0since 2021 · last 2016
0000-0002-2006-5317ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11 · 5 first-authorSystems, architecture and hardware · 6 · 3 first-author
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
6 papers |
Empirical software engineering · 78% Software testing · 11% Program verification · 11% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Parallel and multicore computing · 100% | |
| Interdisciplinary, comprehensive, and emerging computing
2 papers |
Computational science and engineering · 100% |
Topics — the 9 heaviest of 12, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Parallel and multicore computing › parallel computing › parallel software engineering
parallel programmer productivity |
0.1 | 2 | 2008 | The role of MPI in development time: a case study · SC 2008 Parallel Programmer Productivity: A Case Study of Novice Parallel Programmers · SC 2005 |
Program verification
assertions |
0.1 | 1 | 2008 | Using assertions to help end-user programmers create dependable web macros · SIGSOFT FSE 2008 |
Empirical software engineering
mining software repositories |
0.1 | 1 | 2008 | The role of MPI in development time: a case study · SC 2008 |
Software testing
test adequacy |
0.1 | 1 | 2008 | Using assertions to help end-user programmers create dependable web macros · SIGSOFT FSE 2008 |
Empirical software engineering › mining software repositories
version history analysis |
0.1 | 1 | 2008 | The role of MPI in development time: a case study · SC 2008 |
Empirical software engineering
developer studies |
0.1 | 1 | 2005 | Parallel Programmer Productivity: A Case Study of Novice Parallel Programmers · SC 2005 |
Parallel and multicore computing
parallel programming models |
0.0 | 2 | 2008 | The role of MPI in development time: a case study · SC 2008 Parallel Programmer Productivity: A Case Study of Novice Parallel Programmers · SC 2005 |
Empirical software engineering
end-user programming |
0.0 | 1 | 2008 | Using assertions to help end-user programmers create dependable web macros · SIGSOFT FSE 2008 |
Parallel and multicore computing
MPI |
0.0 | 1 | 2008 | The role of MPI in development time: a case study · SC 2008 |
Methods — techniques the papers use, named apart from their topics
source code analysis · 0.2regression testing history · 0.2instrumented development process · 0.1case study · 0.1empirical study · 0.1assertion generation · 0.1self-reported data · 0.1automatic data collection · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | Automating Failure Testing Research at Internet ScaleabstractLarge-scale distributed systems must be built to anticipate and mitigate a variety of hardware and software failures. In order to build confidence that fault-tolerant systems are correctly implemented, Netflix (and similar enterprises) regularly run failure drills in which faults are deliberately injected in their production system. The combinatorial space of failure scenarios is too large to explore exhaustively. Existing failure testing approaches either randomly explore the space of potential failures randomly or exploit the "hunches" of domain experts to guide the search. Random strategies waste resources testing "uninteresting" faults, while programmer-guided approaches are only as good as human intuition and only scale with human effort. Peter Alvaro, Kolton Andrus, Chris Sanden, Casey Rosenthal, Ali Basiri, Lorin Hochstein |
SoCC | 6 |
| 2014 | Peer impressions in open source organizations: A survey
Amiangshu Bosu, Jeffrey C. Carver, Rosanna E. Guadagno, Blake Bassett, Debra McCallum, Lorin Hochstein |
J. Syst. Softw. | 6 |
| 2013 | 5th international workshop on software engineering for computational science and engineering (SE-CSE 2013)
Jeffrey C. Carver, Tom Epperly, Lorin Hochstein, Valerie Maxville, Dietmar Pfahl, Jonathan Sillito |
ICSE | 3 |
| 2013 | Poncho: Enabling Smart Administration of Full Private Clouds
Scott Devoid, Narayan Desai, Lorin Hochstein |
LISA | 3 |
| 2011 | Heterogeneous Cloud ComputingabstractCurrent cloud computing infrastructure typically assumes a homogeneous collection of commodity hardware, with details about hardware variation intentionally hidden from users. In this paper, we present our approach for extending the traditional notions of cloud computing to provide a cloud-based access model to clusters that contain a heterogeneous architectures and accelerators. We describe our ongoing work extending the Open Stack cloud computing stack to support heterogeneous architectures and accelerators, and our experiences running Open Stack on our local heterogeneous cluster testbed. Stephen P. Crago, Kyle Dunn, Patrick Eads, Lorin Hochstein, Dong-In Kang 0001, Mikyung Kang, Devendra Modium, Karandeep Singh, Jinwoo Suh, John Paul Walters |
CLUSTER | 4 |
| 2011 | The Cost of the Build Tax in Scientific SoftwareabstractAll compiled software systems require a build system: a set of scripts to invoke compilers and linkers to generate the final executable binaries. For scientific software, these build scripts can become extremely complex. Anecdotes suggest that scientific programmers have long been dissatisfied with the current software build tool chains. In this paper, we describe preliminary results from a case study of two projects to estimate the fraction of effort devoted to maintaining these scripts, which we refer to as the `build tax'. While estimates based on line counts are on the order of only 5%, estimates based on activity-related metrics suggest much higher values. Lorin Hochstein |
ESEM | 1 |
| 2011 | Fourth international workshop on software engineering for computational science and engineering: (SE-CSE2011)abstractComputational Science and Engineering (CSE) software supports a wide variety of domains including nuclear physics, crash simulation, satellite data processing, fluid dynamics, climate modeling, bioinformatics, and vehicle development. The increase in the importance of CSE software motivates the need to identify and understand appropriate software engineering (SE) practices for CSE. Because of the uniqueness of CSE software development, existing SE tools and techniques developed for the business/IT community are often not efficient or effective. Appropriate SE solutions must account for the salient characteristics of the CSE development environment. This situation creates an opportunity for members of the SE community to interact with members of the CSE community to address this need. This workshop facilitates that collaboration by bringing together members of the SE community and the CSE community to share perspectives and present findings from research and practice relevant to CSE software. A significant portion of the workshop is devoted to focused interaction among the participants with the goal of generating a research agenda to improve tools, techniques, and experimental methods for studying CSE software engineering. Jeffrey C. Carver, Roscoe A. Bartlett, Ian Gorton, Lorin Hochstein, Diane Kelly 0002, Judith Segal |
ICSE | 4 |
| 2009 | Fitting a workflow model to captured development dataabstractIn this paper, we introduce a semi-automated process called software engineering workflow analysis (SEWA) for developing heuristics that analyze captured data to identify where programmers spend their time. To evaluate our process, we ran two case studies in the domain of high-performance computing to generate programmer workflow models for small problems, cross-checking our results against direct observations. Lorin Hochstein |
ESEM | 2 |
| 2008 | The role of MPI in development time: a case studyabstractThere is widespread belief in the computer science community that MPI is a difficult and time-intensive approach to developing parallel software. Nevertheless, MPI remains the dominant programming model for HPC systems, and many projects have made effective use of it. It remains unknown how much impact the use of MPI truly has on the productivity of computational scientists. In this paper, we examine a mature, ongoing HPC project, the Flash Center at the University of Chicago, to understand how MPI is used and to estimate the time that programmers spend on MPI-related issues during development. Our analysis is based on an examination of the source code, version control history, and regression testing history of the software. Based on our study, we estimate that about 20% of the development effort is related to MPI. This implies a maximum productivity improvement of 25% for switching to an alternate parallel programming model. Lorin Hochstein, Forrest Shull, Lynn B. Reid |
SC | 1 |
| 2008 | Using assertions to help end-user programmers create dependable web macrosabstractWeb macros give web browser users ways to "program" tedious tasks, allowing those tasks to be repeated more quickly and reliably than when performed by hand. Web macros face dependability problems of their own, however: changes in websites or failure on the part of end-user programmers to anticipate possible macro behaviors can cause macros to act incorrectly, often in ways that are difficult to detect. We would like to provide at least some of the benefits of software engineering methodologies to the creators of web macros. To do this we adapt assertions to web-macro programming scenarios. While assertions are well-known to professional software engineers, our web macro assertions are unique in their focus on website evolution, are generated automatically, and encode the expectations and assumptions of a rapidly growing group of users who often have limited formal programming expertise. We have integrated our techniques for assertion generation and evaluation into a web macro tool, and performed an empirical study investigating its use. Our results show that the assertions can help web macro users detect macro failures and correct macro faults. Andhy Koesnandar, Sebastian G. Elbaum, Gregg Rothermel, Lorin Hochstein, Christopher Scaffidi, Kathryn T. Stolee |
SIGSOFT FSE | 4 |
| 2008 | A pilot study to compare programming effort for two parallel programming models
Lorin Hochstein, Victor R. Basili, Uzi Vishkin, John R. Gilbert |
J. Syst. Softw. | 1 |
| 2007 | Experimenting with software testbeds for evaluating new technologies
Mikael Lindvall, Ioana Rus, Paolo Donzelli, Atif M. Memon, Marvin V. Zelkowitz, Aysu Betin Can, Tevfik Bultan, Christopher Ackermann, Bettina Anders, Sima Asgari, Victor R. Basili, Lorin Hochstein, Jörg Fellmann, Forrest Shull, Roseanne Tesoriero Tvedt, Daniel Pech, Daniel Hirschbach |
Empir. Softw. Eng. | 12 |
| 2006 | An empirical study to compare two parallel programming modelsabstractWhile there are strong beliefs within the community about whether one particular parallel programming model is easier to use than another, there has been little research to analyze these claims empirically. Currently, the most popular paradigm is message-passing, as implemented by the MPI library [1]. However, MPI is considered to be difficult for developing programs, because it forces the programmer to work at a very low level of abstraction. One alternative parallel programming model is the PRAM model, which supports fine-grained parallelism and has a substantial history of algorithmic theory [2]. It is not possible to program current parallel machines using the PRAM model because modern architectures are not designed to support such a model efficiently. However, current trends towards multicore chips suggest that large-scale, fine-grained uniform-memory access parallel machines may soon be feasible. XMT-C is an extension of the C language that supports parallel directives to provide a PRAM-like model to the programmer. A prototype compiler exists that generates code which runs on a simulator for an XMT architecture [3].To better understand how much benefit a PRAM-like model could provide over a message-passing model, we conducted a feasibility study in an academic setting to compare the effort required to solve a particular problem. The questions under study were: can we measure the effort in developing a program using these two programming models and can we differentiate the amount of effort for each model?.The subjects participating in the study were divided up into two groups. One group solved a problem using the MPI library in either C,C++, or Fortran, and the other group solved the problem using XMT-C. The task was to write a function to multiply a sparse matrix with a dense vector. To obtain subjects, we leveraged existing graduate-level parallel programming courses at two different universities: University of California, Santa Barbara (UCSB), and University of Maryland (UMD). At UCSB, the students solved the problem in MPI, and at UMD, the students solved the same problem in XMT-C. The focus of the UCSB class was on developing parallel programs to run on the current generation of architectures, and the students were taught MPI, as well as other models. The focus of the UMD class was parallel algorithms in the PRAM model, and the students were taught XMT-C. The students were assigned to treatment groups by class. The study was integrated into each class, as the problem was a required assignment in each class.Subjects kept track of their effort with a self-reported effort log. We also collected automatic effort data by instrumenting the compilers, which recorded data at each compile. We computed three effort measures: self-reported, instrumented, and combined. Self-reported effort measures are based entirely on effort logs, instrumented effort measures are based entirely on timestamps from the instrumented compilers, and combined effort measures are based on compiler timestamps when the subject is working on the instrumented machine, and self-reported effort when the subject is working off the instrumented machine.The results of this preliminary study answer both of our questions in the positive. In this case, on average, students required less effort to solve the problem using XMT-C compared to MPI. The reduction in mean effort was approximately 50% for all three measures, which was statistically significant at the level of p < .05 using a t-test.This study demonstrates that the effect of programming model on effort can be directly measured through empirical studies with human subjects. While no single study can conclusively demonstrate the advantage of one programming model over another, a series of studies examining different models and different problems can provide insights into the relative strengths of parallel programming models in different contexts. The study described above is one of a series of such studies that we are currently conducting. Lorin Hochstein, Victor R. Basili |
SPAA | 1 |
| 2005 | Parallel Programmer Productivity: A Case Study of Novice Parallel ProgrammersabstractIn developing High-Performance Computing (HPC) software, time to solution is an important metric. This metric is comprised of two main components: the human effort required developing the software, plus the amount of machine time required to execute it. To date, little empirical work has been done to study the first component: the human effort required and the effects of approaches and practices that may be used to reduce it. In this paper, we describe a series of studies that address this problem. We instrumented the development process used in multiple HPC classroom environments. We analyzed data within and across such studies, varying factors such as the parallel programming model used and the application being developed, to understand their impact on the development process. Lorin Hochstein, Jeffrey C. Carver, Forrest Shull, Sima Asgari, Victor R. Basili |
SC | 1 |
| 2005 | Combining self-reported and automatic data to improve programming effort measurementabstractMeasuring effort accurately and consistently across subjects in a programming experiment can be a surprisingly difficult task. In particular, measures based on self-reported data may differ significantly from measures based on data which is recorded automatically from a subject's computing environment. Since self-reports can be unreliable, and not all activities can be captured automatically, a complete measure of programming effort should incorporate both classes of data. In this paper, we show how self-reported and automatic effort can be combined to perform validation and to measure total programming effort. Lorin Hochstein, Victor R. Basili, Marvin V. Zelkowitz, Jeffrey K. Hollingsworth, Jeffrey C. Carver |
ESEC/SIGSOFT FSE | 1 |
| 2005 | Combating architectural degeneration: a survey
Lorin Hochstein, Mikael Lindvall |
Inf. Softw. Technol. | 1 |
| 2003 | Diagnosing architectural degenerationabstractSoftware systems evolve over time and undergo changes that can lead to a degeneration of the systems' architecture. Degeneration may eventually reach a level where a complete redesign of the software system is necessary, which is a task that requires significant effort. In this paper, we start by presenting examples of such degeneration and continue with an analysis of technologies that can be used to diagnose degeneration. These technologies can be employed in identifying, degeneration so that it can be treated as early as possible, before it is too late and the system has to undergo a costly redesign. Lorin Hochstein, Mikael Lindvall |
SEW | 1 |