Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

Posts

Future Blog Post

less than 1 minute read

Published:

This post will show up by default. To disable scheduling of future posts, edit config.yml and set future: false.

Blog Post number 4

less than 1 minute read

Published:

This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool.

Blog Post number 3

less than 1 minute read

Published:

This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool.

Blog Post number 2

less than 1 minute read

Published:

This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool.

Blog Post number 1

less than 1 minute read

Published:

This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool.

portfolio

publications

Developing New Head Models from an Existing Template Using Thin-plate Splines.

Published in 19th Annual Argonne Symposium For Undergraduates in Science, Engineering, and Mathematics, 2008

This was work done as part of the 2008-2009 BACHE Scholars in Computer Science program at Birmingham-Southern College.

Recommended citation: Reed Milewicz and Marietta Cameron. Developing new head models from an existing template using thin-plate splines. Presented at the 19th Annual Argonne Symposium For Undergraduates in Science, Engineering, and Mathematics, 2008.

Simpleconcepts: Support for Constraints on Generic Types in C++

Published in FedCSIS, 2013

This paper introduces SimpleConcepts, an extension to C++11 that provides support for concepts, sets of constraints on generic types.

Recommended citation: Reed Milewicz, Marjan Mernik, and Peter Pirkelbauer. SimpleConcepts: Support for constraints on generic types in C++. In Maria Ganzha, Leszek A. Maciaszek, and Marcin Paprzycki, editors, Proceedings of the 2013 Federated Conference on Computer Science and Information Systems, pages 1535–1540, 2013. http://rmmilewi.github.io/files/simpleconcepts13.pdf

Runtime Checking C Programs

Published in 30th Annual ACM Symposium on Applied Computing, 2015

In this paper, we present RTC, a runtime monitoring tool that instruments unsafe code and monitors the program execution. RTC is built on top of the ROSE compiler infrastructure. RTC finds memory bugs and arithmetic overflows and underflows, and run-time type violations.

Recommended citation: Reed Milewicz, Rajesh Vanka, James Tuck, Daniel Quinlan, and Peter Pirkelbauer. Runtime checking C programs. In Proceedings of the 30th Annual ACM Symposium on Applied Computing, pages 2107–2114. ACM, 2015. http://academicpages.github.io/files/sac15.pdf

Refinement of Structural Heuristics for Model Checking of Concurrent Programs through Data Mining

Published in Computer Languages, Systems and Structures: Special Issue on Search-based Techniques and their Hybridizations in Software Engineering, 2016

Detecting concurrency bugs in multi-threaded programs through model-checking is complicated by the combinatorial explosion in the number of ways that different threads can be interleaved to produce different combinations of behaviors. In this work, patterns of read–write sequences are mined from a single execution of the target program to produce a quantitative, categorical model of thread behaviors. Experiments with a proof-of-concept implementation, built using Java Pathfinder and WEKA, demonstrate a novel structural heuristic that locates bugs faster and more reliably than a conventional counterpart.

Recommended citation: Reed Milewicz and Peter Pirkelbauer. Refinement of structural heuristics for model checking of concurrent programs through data mining. In Computer Languages, Systems and Structures: Special Issue on Search-based Techniques and their Hybridizations in Software Engineering, 2016. http://rmmilewi.github.io/files/structuralheuristics16.pdf

Memory Management for Concurrent Data Structures on Hardware Transactional Memory

Published in 16th International Conference on Algorithms and Architectures for Parallel Processing, 2016

Attaining efficient and portable lock-free containers is challenging as almost any CPU family implements slightly different memory models and atomic read-modify-write operations. C++11 offers a memory model and operation abstractions that enable portable implementations of non-blocking algorithms. In this paper, we present a first scalable and portable lock-free bounded queue supporting multiple readers and multiple writers. Our design uses unique empty values to decouple writing an element from incrementing the tail during enqueue. Dequeue employs a helping scheme that delays helping in the regular case, thereby reducing contention on shared memory. We evaluate our implementation on a range of architectures featuring weak and strong memory consistency models. Our comparisons with known blocking designs and another novel alternative lock-free design demonstrate that the presented implementation performs well on architectures that implement a weak memory consistency model.

Recommended citation: Peter Pirkelbauer, Reed Milewicz, and Juan Felipe Gonzalez. A portable lock-free bounded queue. In 16th International Conference on Algorithms and Architectures for Parallel Processing, Springer, LCNS 10048, pp 55--73, 2016. http://rmmilewi.github.io/files/lockfreequeue16.pdf

Memory Management for Concurrent Data Structures on Hardware Transactional Memory

Published in Transact 2017, 2017

In this paper, we revisit epochs, another popular memory management technique, and offer an interpretation for HTM systems. HTM helps avoid a common problem of quiescent techniques where delayed or failed threads prevent memory reclamation. In transactional mode, HTM allows threads to interrupt other delayed threads that prevent progress otherwise. This paper describes the design and implementation of this technique and discusses trade-offs compared to other techniques. Experiments were conducted on Intel Haswell and Power8 architectures. The described technique is competitive with other HTM based techniques. Our results also demonstrate that under many scenarios, HTM based algorithms can be as fast as other optimized algorithms.

Recommended citation: Peter Pirkelbauer, Amalee Wilson, Hadia Ahmed, and Reed Milewicz. Memory Management for Concurrent Data Structures on Hardware Transactional Memory. In Transact 2017, workshop at PPoPP17, 2017. http://rmmilewi.github.io/files/memorymanagement17.pdf

Ariadne: Hybridizing Directed Model Checking and Static Analysis

Published in 10th IEEE International Conference on Software Testing, Verification and Validation, 2017

We introduce an open-source tool, Ariadne, which translates reports of suspected race conditions of a static analyzer (Petablox) to instrumentation using a source-to-source compiler (ROSE) that can be exploited by a model checker (Java Pathfinder). We detail the algorithm used, present experimental results, and outline directions for future research.

Recommended citation: Reed Milewicz and Peter Pirkelbauer: Ariadne: Hybridizing Directed Model Checking and Static Analysis. Proceedings of the 10th IEEE International Conference on Software Testing, Verification and Validation, (ICST'17), pp 442-447, 2017. http://rmmilewi.github.io/files/icst17.pdf

First International Competition on Runtime Verification: Rules, Benchmarks, Tools, and Final results of CRV 2014

Published in International Journal on Software Tools for Technology Transfer, 2017

The first international Competition on Runtime Verification (CRV) was held in September 2014, in Toronto, Canada, as a satellite event of the 14th international conference on Runtime Verification (RV14). The event was organized in three tracks: (1) offline monitoring, (2) online monitoring of C programs, and (3) online monitoring of Java programs. In this paper, we report on the phases and rules, a description of the participating teams and their submitted benchmark, the (full) results, as well as the lessons learned from the competition.

Recommended citation: Bartocci, E., Falcone, Y., Bonakdarpour, B. et al. International Journal Software Tools Technology Transfer (2019) 21: 31. https://doi.org/10.1007/s10009-017-0454-5. https://link.springer.com/article/10.1007/s10009-017-0454-5

Comparing Artificial Neural Network and Cohort-Component Models for Population Forecasts

Published in Population Association of America, Annual Meeting 2017, 2017

Artificial neural network (ANN) models are rarely used to forecast population in spite of their growing prominence in other fields. We compare the forecasts generated by ANN long short-term memory models (LSTM) with population projections from traditional cohort-component method (CCM) for counties in Alabama. The evaluation includes forecasts for all 67 counties that offer diversity in terms of population and socioeconomic characteristics. When comparing projected values with total population counts from the 2010 decennial census, the CCM used by the Center for Business and Economic Research at the University of Alabama in 2001 produced more accurate results than a basic multi-county ANN LSTM model. Only when we use single-county models or proxy for a forecaster’s experience and personal judgment with potential economic forecasts, results from ANN models improve. The results indicate the significance of forecaster’s experience and judgment for CCM and difficulty, but not impossibility of substituting these insights with available data.

Recommended citation: Viktoria Riiman, Amalee Wilson, Reed Milewicz, and Peter Pirkelbauer. Comparing Artificial Neural Network and Cohort-Component Models for Population Forecasts. Population Association of America, Annual Meeting 2017. http://rmmilewi.github.io/files/pp17.pdf

Scalable Parallel Model Checking via Monte-Carlo Tree Search.

Published in 2017 Java Pathfinder Workshop, 2017

The future of model checking lies in parallel and distributed computing, but parallel graph search algorithms tailored to directed model checking remains an underdeveloped area of research. In this work, we examine the application of parallel Monte Carlo Tree Search algorithms. We demonstrate how exploratory, randomly sampled rollouts of the search space, coordinated through a minimally communicating work-sharing protocol, can enable us to push the boundaries on the scope and scale of problems amenable to serial search.

Recommended citation: Reed Milewicz and Simon Poulding. Scalable Parallel Model Checking via Monte-Carlo Tree Search. ACM SIGSOFT Software Engineering Notes 42.4 (2017): 1-5. http://rmmilewi.github.io/files/mcts17.pdf

Talk to Me: A Case Study on Coordinating Expertise in Large-Scale Scientific Software Projects

Published in 2018 IEEE 14th International Conference on e-Science (e-Science), 2018

Large-scale collaborative scientific software projects require more knowledge than any one person typically possesses. This makes coordination and communication of knowledge and expertise a key factor in creating and safeguarding software quality, without which we cannot have sustainable software. However, as researchers attempt to scale up the production of software, they are confronted by problems of awareness and understanding. This presents an opportunity to develop better practices and tools that directly address these challenges. To that end, we conducted a case study of developers of the Trilinos project. We surveyed the software development challenges addressed and show how those problems are connected with what they know and how they communicate. Based on these data, we provide a series of practicable recommendations, and outline a path forward for future research.

Recommended citation: Milewicz, Reed, and Elaine Raybourn. Talk to Me: A Case Study on Coordinating Expertise in Large-Scale Scientific Software Projects. 2018 IEEE 14th International Conference on e-Science (e-Science). IEEE, 2018. http://rmmilewi.github.io/files/talktome18.pdf

Characterizing the Roles of Contributors in Open-source Scientific Software Projects

Published in Mining Software Repositories 2019, 2019

The development of scientific software is, more than ever, critical to the practice of science, and this is accompanied by a trend towards more open and collaborative efforts. Unfortunately, there has been little investigation into who is driving the evolution of such scientific software or how the collaboration happens. In this paper, we address this problem. We present an extensive analysis of seven open-source scientific software projects in order to develop an empirically-informed model of the development process. This analysis was complemented by a survey of 72 scientific software developers.

Recommended citation: Milewicz, Reed, Gustavo Pinto, and Paige Rodeghero. Characterizing the Roles of Contributors in Open-source Scientific Software Projects. Mining Software Repositories 2019 (MSR19). 2019. http://rmmilewi.github.io/files/msr19.pdf

How Remote Work Can Foster a More Inclusive Environment for Transgender Developers

Published in 2019 International Workshop on Software Engineering for Science, 2019

In this position paper, we claim that remote work offers a mechanism of control for identity disclosure and empowerment of software developers from marginalized communities. By talking to several transgender software developers we identified three themes that resonate across the trans experience and intersect with the advantages to working in software development remotely: identity disclosure, high-impact technical work and the autonomy to disengage and re-engage. Based on these themes we identify several open questions that the research community should address.

Recommended citation: Ford, Denae, Reed Milewicz, and Alexander Serebrenik. How Remote Work Can Foster a More Inclusive Environment for Transgender Developers. Proceedings of the Second Workshop on Gender Equality in Software Engineering (GE@ICSE19). 2019. http://rmmilewi.github.io/files/ge2019.pdf

Position Paper: Towards Usability as a First-Class Quality of HPC Scientific Software

Published in 2019 International Workshop on Software Engineering for Science, 2019

The modern HPC scientific software ecosystem is instrumental to the practice of science. However, software can only fulfill that role if it is readily usable. In this position paper, we discuss usability in the context of scientific software development, how usability engineering can be incorporated into current practice, and how software engineering research can help satisfy that objective.

Recommended citation: Milewicz, Reed, and Paige Rodeghero. Position Paper: Towards Usability as a First-Class Quality of HPC Scientific Software. Proceedings of the 2019 International Workshop on Software Engineering for Science. 2019. http://rmmilewi.github.io/files/se4science2019.pdf

Lightweight Software Process Improvement using Productivity and Sustainability Improvement Planning (PSIP)

Published in 2019 International Workshop on Software Engineering for HPC-Enabled Research (SE-HER) held in conjunction with SC 2019, 2019

Productivity and Sustainability Improvement Planning (PSIP) is a lightweight, iterative workflow that allows software development teams to identify development bottlenecks and track progress to overcome them. In this paper, we present an overview of PSIP and how it compares to other software process improvement (SPI) methodologies, and provide two case studies that describe how the use of PSIP lead to successful improvements in team effectiveness and efficiency.

Recommended citation: Heroux, Michael A., et al. "Lightweight Software Process Improvement Using Productivity and Sustainability Improvement Planning (PSIP)." Tools and Techniques for High Performance Computing. Springer, Cham, 2019. 98-110. http://rmmilewi.github.io/files/seher2019.pdf

Published in , 1900

Towards Evidence-Based Practice in Scientific Software Development

Published in 2020 Collegeville Workshop on Scientific Software, 2020

In this paper, we argue that the scientific software community should leverage this wealth of resources in software engineering research through evidence-based practice. The evidence-based practice movement in software engineering advocates integrating current best evidence from research with practical experience and human values to improve decision-making related to software development and maintenance.

Recommended citation: Milewicz, Reed. 2020. Towards Evidence Based Practice in Scientific Software Development. 2020 Collegeville Workshop on Scientific Software. SAND2020-6644 C. http://rmmilewi.github.io/files/cw2020a.pdf

Moving Forward Together: How a Software Engineering Depart- ment Can Impact Developer Productivity in a Research Organization

Published in 2020 Collegeville Workshop on Scientific Software, 2020

In this white paper, we summarize the ongoing work of the Software Engineering and Research Department at Sandia National Laboratories. We hold that cross-cutting, software-focused teams like ours are an effective way of bringing software engineering expertise into scientific software organizations.

Recommended citation: Willenbring J., Milewicz R. 2020. Moving Forward Together: How a Software Engineering Department Can Impact Developer Productivity in a Research Organization. 2020 Collegeville Workshop on Scientific Software. SAND2020-1014 C. http://rmmilewi.github.io/files/cw2020b.pdf

talks

teaching

Teaching experience 1

Undergraduate course, University 1, Department, 2014

This is a description of a teaching experience. You can use markdown like any other post.

Teaching experience 2

Workshop, University 1, Department, 2015

This is a description of a teaching experience. You can use markdown like any other post.