Portfolio item number 1
Short description of portfolio item number 1
Short description of portfolio item number 1
Short description of portfolio item number 2
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.
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
Published in Computer Science and Information Systems, 2014
This is an extended journal version of the paper presented FedCSIS in 2013.
Recommended citation: Reed Milewicz, Marjan Mernik, and Peter Pirkelbauer. Simpleconcepts: A lightweight extension to c++ to support constraints on generic types. Computer Science and Information Systems, 11(4):1361–1379, 2014 http://rmmilewi.github.io/files/comsis14.pdf
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
Published in Computer Languages, Systems and Structures, 2016
This is a journal version of the RTC paper presented at SAC’15.
Recommended citation: Reed Milewicz, Rajesh Vanka, James Tuck, Daniel Quinlan, and Peter Pirkelbauer. Lightweight runtime checking of C programs with RTC. In Computer Languages, Systems and Structures, 2016. http://rmmilewi.github.io/files/sac15j.pdf
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
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
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
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
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
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
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
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
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
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
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
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 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
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
Published:
This is the talk I gave at ICST17 in Japan on hybridizing directed model checking with static analysis via source code instrumentation.
Published:
This is my talk which I presented at at the 2017 Java Pathfinder Workshop on a Monte Carlo Tree Search approach for distributed state space exploration in the context of directed model checking.
Published:
This is a poster presentation I gave at the 2018 Annual ECP Meeting in Knoxville about our productivity and sustainability planning activities across the Exascale Computing Project.
Published:
This is the talk I gave at WSSSPE6.1 on knowledge and knowledge management in large-scale scientific software development. Earlier versions of this talk were given at the 2018 Trilinos Users’ Group meeting as well as the 2018 CCR Summer Seminar Series.
Published:
This is a poster presentation I gave at WSSSPE6.1 showcasing the work of the IDEAS-ECP project.
Published:
This is a poster presentation put together that Jeffery Carver and I put together for a minisymposterium at SIAM CSE’19 in Spokane.
Published:
This is a poster presentation put together for the Collegeville 2019 Workshop at St John’s University.
Published:
Tutorial on software development practices for the student program at Supercomputing’19.
Published:
Progress tracking card tutorial held at the 2020 Exascale Computing Project meeting.
Published:
Productivity and Sustainability Improvement Planning tutorial held at the 2020 Collegeville Workshop.
Published:
Watch the Panel Discussion Here Skip Ahead to My Opening Remarks at 17:05
Undergraduate course, University 1, Department, 2014
This is a description of a teaching experience. You can use markdown like any other post.
Workshop, University 1, Department, 2015
This is a description of a teaching experience. You can use markdown like any other post.