Matthew J. Sottile

Matthew J. Sottile
Lawrence Livermore National Laboratory | LLNL · Center for Applied Scientific Computing

Doctor of Philosophy

About

83
Publications
8,520
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
728
Citations
Additional affiliations
July 2020 - present
Lawrence Livermore National Laboratory
Position
  • Researcher
December 2016 - July 2020
noddle.io
Position
  • Senior Researcher
January 2015 - January 2017
Sailfan Research, Inc.
Position
  • Principal Investigator

Publications

Publications (83)
Preprint
We introduce a new, and quite general variational model for opinion dynamics based on pairwise interaction potentials and a range of opinion evolution protocols ranging from random interactions to global synchronous flows in the opinion state space. The model supports the concept of topic “coupling”, allowing opinions held by individuals to be chan...
Preprint
Rapid and accurate sorting of biological samples is extremely useful in a wide variety of applications. The model nematode Caenorhabditis elegans lends itself to automated fluid-flow based sorting because of its ability to live in aqueous solutions. Here, we build upon previous developments to construct a microfluidic device capable of sorting indi...
Article
Full-text available
We introduce a new, and quite general variational model for opinion dynamics based on pairwise interaction potentials and a range of opinion evolution protocols ranging from random interactions to global synchronous flows in the opinion state space. The model supports the concept of topic “coupling”, allowing opinions held by individuals to be chan...
Article
The design of high-performance computing architectures requires performance analysis of large-scale parallel applications to derive various parameters concerning hardware design and software development. The process of performance analysis and benchmarking an application can be done in several ways with varying degrees of fidelity. One of the most...
Article
Full-text available
Emerging hybrid accelerator architectures for high performance computing are often suited for the use of a data-parallel programming model. Unfortunately, programmers of these architectures face a steep learning curve that frequently requires learning a new language (e.g., OpenCL). Furthermore, the distributed (and frequently multi-level) nature of...
Article
Full-text available
This paper presents a novel method for identifying indentations on the boundary of solid 2D shape. It uses the signed curvature at a set of points along the boundary to identify indentations and provides one parameter for tuning the selection mechanism for discriminating indentations from other boundary irregularities. An efficient implementation i...
Article
Full-text available
Traditional algorithms for detecting differences in source code focus on differences between lines. As such, little can be learned about abstract changes that occur over time within a project. Structural differencing on the program's abstract syntax tree reveals changes at the syntactic level within code, which allows us to further process the diff...
Conference Paper
The design of high-performance computing architectures requires performance analysis of large-scale parallel applications to derive various parameters concerning hardware design and software development. The process of performance analysis and benchmarking an application can be done in several ways with varying degrees of fidelity. One of the most...
Article
Twig is a language for writing typemaps , programs which transform the type of a value while preserving its underlying meaning. Typemaps are typically used by tools that generate code, such as multi-language wrapper generators, to automatically convert types as needed. Twig builds on existing typemap tools in a few key ways. Twig's typemaps are com...
Article
Full-text available
Automatic code transformation in which transformations are tuned for specific applications and contexts are difficult to achieve in an accessible manner. In this paper, we present an approach to build application specific code transformations. Our approach is based on analysis of the abstract syntax representation of exemplars of the essential chan...
Article
Twig is a language for writing typemaps, programs which transform the type of a value while preserving its underlying meaning. Typemaps are typically used by tools that generate code, such as multi-language wrapper generators, to automatically convert types as needed. Twig builds on existing typemap tools in a few key ways. Twig's typemaps are comp...
Conference Paper
Numerous programming models have been introduced to allow programmers to utilize new accelerator-based architectures. While OpenCL and CUDA provide low-level access to accelerator programming, the task cries out for a higher-level abstraction. Of the higher-level programming models which have emerged, few are intended to co-exist with mainstream, g...
Article
Full-text available
In this paper, we characterize a new class of computationally expensive optimization problems and introduce an approach for solving them. In this class of problems, objective function values may be directly related to the computational time required to obtain them, so that, as the optimal solution is approached, the computational time required to e...
Data
Full-text available
Photomask design for the chemosensory device. (PDF)
Data
Full-text available
Photomask design for the thermosemsory device, upper layer. (PDF)
Data
Full-text available
Photomask design for the thermosensory device, lower layer. (PDF)
Article
Full-text available
This article describes the fabrication and use of microfluidic devices for investigating spatial orientation behaviors in nematode worms (Caenorhabditis elegans). Until now, spatial orientation has been studied in freely moving nematodes in which the frequency and nature of encounters with the gradient are uncontrolled experimental variables. In th...
Data
Video of a larval C. elegans crawling at high speeds in a fluid-filled matrix created in a microfluidic chamber. The animal was tracked by recentering its pharynx, which was labeled with the fluorescent protein tdTomato under the control of the myo-2 promoter. The lower panel shows velocity versus time with a cursor indicating the velocity at the t...
Data
Video of a Drosophila larva crawling at speeds up to 500 µm/s on an agar surface. The animal was tracked by recentering glutamatergic neurons, which were labeled with the fluorescent indicator YC3.60. The lower panel shows velocity versus time with a cursor indicating the velocity at the time of the current frame in the movie. (MOV)
Data
Block diagram of the tracking module. Analog signals from the four PMT quadrants (a–d) were amplified and digitized. Light intensity values for the four quadrants were individually subjected to a background substraction and a gain compensation. The four corrected intensity values A–D were used to compute Sx and Sy, the skew in the distribution of l...
Data
Simultaneous recording of the activity of the command neuron AVA and the locomotory behavior of a freely moving animal. Upper left: video output of the spotting camera. The bright ring is reflectance from the 63× objective beneath the preparation. Upper right: x-y trajectory of the tracking target with a cursor indicating the x-y location at the ti...
Data
Simultaneous recording of the activity of the command neuron AVB and the locomotory behavior of a freely moving animal. Upper left: video output of the spotting camera. The bright ring is reflectance from the 63× objective beneath the preparation. Upper right: x-y trajectory of the tracking target with a cursor indicating the x-y location at the ti...
Data
Step response performance test. A fluorescent particle was placed 80 µm from the center of the field of view, and the tracking mode was engaged. Stage position is reported by the stage controller at the servo-loop rate, every 0.5 ms. The position of the stage is plotted over time for four different gain settings. Visual inspection of the curves ind...
Data
Simultaneous recording of the activity of the motor neurons VA4 and VB5 and the locomotory behavior of a freely moving animal. Upper left: video output of the spotting camera. Red lines show the line segments that define the bending angle θ. Upper right: x-y trajectory of the tracking target with a cursor indicating the x-y location at the time of...
Data
Summary of motoneuron recordings showing the number of instances in which a motor neuron of the indicated type was recorded and the number of instances in which it exhibited ratio amplitude modulations that were correlated with dorsoventral undulations. Recordings from motor neurons that could not be positively identified are included for completen...
Article
Full-text available
Non-invasive recording in untethered animals is arguably the ultimate step in the analysis of neuronal function, but such recordings remain elusive. To address this problem, we devised a system that tracks neuron-sized fluorescent targets in real time. The system can be used to create virtual environments by optogenetic activation of sensory neuron...
Article
Full-text available
Emerging GPU architectures for high performance computing are well suited to a data-parallel programming model. This paper presents preliminary work examining a programming methodology that provides Fortran programmers with access to these emerging systems. We use array constructs in Fortran to show how this infrequently exploited, standardized lan...
Conference Paper
Acute inflammation of the placenta is associated with an increased rate of perinatal morbidity and mortality. This paper presents a novel method for analyzing digitized images of hematoxylin and eosin (H&E) stained histology slides to detect and quantify inflammatory polymorphonuclear leukocytes (PMLs). The first step is isolating the tissue by rem...
Book
Exploring how concurrent programming can be assisted by language-level techniques, Introduction to Concurrency in Programming Languages presents high-level language techniques for dealing with concurrency in a general context. It provides an understanding of programming languages that offer concurrency features as part of the language definition. T...
Article
Full-text available
Multi-core accelerators offer significant potential to improve the perfor-mance of parallel applications. However, tools to help the parallel application de-veloper understand accelerator performance and its impact are scarce. An approach is presented to measure the performance of GPU computations programmed using CUDA and integrate this informatio...
Article
Full-text available
This paper introduces improvements to a now classical family of image denoising methods through rather minimal changes to the way derivatives are computed. In particular, we ask, and answer, the ques-tion "How much can we improve the common denoising methods by local, completely non-parametric modifications to image graphs?" We present the concept...
Article
Full-text available
Application development environments offering high-level programming support for accelerators will need to integrate instrumentation and measurement capabilities to enable full, consistent performance views for analysis and tuning. We describe early experiences with the integration of a parallel performance system (TAU) and accelerator performance...
Conference Paper
Full-text available
In scientific domains where discovery is driven by simulation modeling there are found common methodologies and procedures applied for scientific investigation. ODESSI (Open Domain-extensible Environment for Simulation-based Scientific Investigation) is an environment to facilitate the representation and automatic conduction of scientific studies b...
Conference Paper
Workflows are a successful model for building both distributed and tightly-coupled programs based on a dataflow-oriented coordination of computations. Multiple programming languages have been proposed to represent workflow-based programs in the past. In this paper, we discuss a representation of workflows based on lazy functional streams implemente...
Article
Full-text available
Often the adoption of component-based scientific software requires the developer to abandon comfortable practices and embrace an unfamiliar software methodology. OnRamp pro-vides a mechanism for the developer to generate CCA com-ponents, through commented markup in their original soft-ware, and keep their familiar software development prac-tices. T...
Conference Paper
Full-text available
Workflows offer scientists a simple but flexible programming model at a level of abstraction closer to the domain-specific activities that they seek to perform. However, languages for describing workflows tend to be highly complex, or specialized towards a particular domain, or both. WOOL is an abstract workflow language with human-readable syntax,...
Article
OBJECTIVE: Better understanding of the placental factors that are key to ade- quate fetal growth may allow clearer distinction of those infants who may be growth restricted, as well as potentially allow development of interventions to optimize fetal growth STUDY DESIGN: We studied 20 term placentas, 10 with birthweight centile (BW%) 10th and 10 75...
Article
Full-text available
In this paper, we characterize a new class of optimization problems in which objective function values are correlated with the computational time required to obtain these values. That is, as the optimal solution is approached, the computational time required to compute an objective function values decreases significantly. This is mo-tivated by an a...
Conference Paper
Full-text available
Online application performance monitoring allows tracking performance characteristics during execution as opposed to doing so post-mortem. This opens up several possibilities otherwise unavailable such as real-time visualization and application performance steering that can be useful in the context of long-running applications. As HPC systems grow...
Conference Paper
Full-text available
The performance of a parallel application on a scalable HPC system is determined by user-level execution of the appli- cation code and system-level (OS kernel) operations. To understand the influences of system-level factors on applica- tion performance, the measurement of OS kernel activities is key. We describe a technology to observe kernel acti...
Chapter
The chapter presents a simplified component programming model that provides a gentle migration path to component-based application development. Most existing component models (CCA INtegration framework [CCAIN]) require a relatively large leap from current software practices. The simple CCAIN proposed in the chapter allows scientific software develo...
Chapter
Computational environments used by scientists should provide high-level support for scientific processes that involve the integrated and systematic use of familiar abstractions from a laboratory setting, including notebooks, instruments, experiments, and analysis tools. However, doing so while hiding the complexities of the underlying computational...
Conference Paper
Full-text available
We have built a detector capable of locating high Z objects in the sampling (middle) region of the detector. As atomic number increases, radiation length rapidly decreases, yielding larger variance in scattering angle. Cosmic ray muon tomography works by tracking muons above the sampling region, and tracking them below the region as well. The diffe...
Conference Paper
Full-text available
Co-array notation provides a compact syntax for program- ming parallel programs. Co-array Fortran (CAF) introduced and imple- ments this notation, and CAF is currently proposed as an extension to the Fortran language standard. We believe that co-array notation re- quires a revised semantic definition beyond that specified by CAF for both pragmatic...
Conference Paper
Full-text available
The ability to understand the factors contributing to parallel program performance are vital for understanding the impact of machine parameters on the performance of specific applications. We propose a methodology for analyzing the performance characteristics of parallel programs based, on message-passing traces of their execution on a set of proce...
Article
Full-text available
In this paper, we describe a Python-based framework for the rapid prototyping of scientic applica- tions. A case study was performed using a problem specication developed for Marmot, a project at the Los Alamos National Laboratory aimed at re-factoring standard physics codes into reusable and exten- sible components. Components were written in Pyth...
Article
Full-text available
DOE has put forth a considerable e! ort into light-weight kernels for high performance computing, yet there has been a lack of acceptance and use, perhaps due to the limited sup- port for hardware and software. The arguments for light- weight kernels have been based on the problem of interfer- ence, i.e. changes in application performance that occu...
Article
The Common Component Architecture (CCA) is a component model for high-performance computing, developed by a grass-roots effort of computational scientists. Although the CCA is usable with CORBA-like distributed-object components, its main purpose is to set forth a component model for high-performance, parallel computing. Traditional component model...
Article
Full-text available
Chasm is a toolkit providing seamless language interoperability between Fortran 95 and C++. Language interoperability is important to scientific programmers because scientific applications are predominantly written in Fortran, while software tools are mostly written in C++. Two design features differentiate Chasm from other related tools. First, we...
Article
This work targets the emerging use of software component technology for high-performance scientific parallel and distributed computing. While component software engineering will benefit the construction of complex science applications, its use presents several challenges to performance measurement, analysis, and optimization. The performance of a c...
Article
Chasm is a toolkit providing seamless language interoperability between Fortran 95 and C++. Language interoperability is important to scientific programmers because scientific applications are predominantly written in Fortran, while software tools are mostly written in C++. Two design features differentiate Chasm from other related tools. First, we...
Conference Paper
Full-text available
Microbenchmarks, i.e. very small computational kernels, have become commonly used for quantitative measures of node performance in clusters. For example, a commonly used benchmark measures the amount of time required to perform a fixed quantum of work. Unfortunately, this benchmark is one of many that violate well known rules from sampling theory,...
Conference Paper
Full-text available
A parallel extension to the Python language is introduced that is modeled after the Co-Array Fortran extensions to Fortran 95. A new Python module, CoArray, has been developed to provide co-array syntax that allows a Python programmer to address co-array data on a remote processor. An example of Jacobi iteration using the CoArray module is shown an...
Conference Paper
Full-text available
This work describes our experience of designing and building Pink, a 1024-node (2048 processor) Myrinet-based single-system image Linux cluster that was installed in January 2003 at the Los Alamos National Laboratory. At the time of its installation, Pink was the largest single-system image Linux cluster in the world, and was based entirely on open...
Article
Full-text available
Scattering muon radiography was proposed recently as a technique of detection and 3-d imaging for dense high-Z objects. High-energy cosmic ray muons are deflected in matter in the process of multiple Coulomb scattering. By measuring the deflection angles we are able to reconstruct the configuration of high-Z material in the object. We discuss the m...
Conference Paper
Full-text available
This work targets the emerging use of software com-ponent technology for high-performance scientific parallel and distributed computing. While component software en-gineering will benefit the construction of complex science applications, its use presents several challenges to perfor-mance optimization. A component application is composed of a set o...
Article
Full-text available
To aid in building high-performance computational environments, INTERLACE oers a framework for linking reusable computational engines in a heterogeneous distributed system. The INTERLACE model provides clients with access to computational servers which interface with wrapped" computational engines. An API is dened for establishing the server interc...
Article
Full-text available
With the growth of modern high-performance computing systems, scientists are able to simulate larger and more complex systems. The most straightforward way to do this is to couple existing computational models to create models of larger systems composed of smaller sub-systems. Unfortunately, no general method exists for automating the process of co...
Article
this paper is implemented in C++ utilizing the standard template library (STL) for data management, and HPC++ libraries for communication. This, in conjunction with the STL implementation within the servers themselves allows for a consistent set of data structures throughout the environment for future code maintenance. Before introducing each regis...
Conference Paper
Full-text available
In this paper, we describe experiences with our 127-node/161-processor Alpha cluster testbed, Ed. Ed is unique for two distinct reasons. First, we have replaced the standard BIOS on the cluster nodes with the LinuxBIOS which loads Linux directly from non-volatile memory (Flash RAM). Second, the operating system provides a single-system image of the...
Conference Paper
Full-text available
Supermon is a flexible set of tools for high speed, scalable cluster monitoring. Node behavior can be monitored much faster than with other commonly used methods (e.g., rstatd). In addition, Supermon uses a data protocol based on symbolic expressions (S-expressions) at all levels of Supermon, from individual nodes to entire clusters. This contribut...
Conference Paper
A significant amount of work has been spent creating component models and programming environments, but little support exists for automation in the process of creating components from existing codes. To entice users to adopt the component-based paradigm over traditional programming models, integration of legacy codes must be as simple and fast as p...
Conference Paper
Full-text available
Computational environments used by scientists should provide high-level support for scientific processes that involve the integrated and systematic use of familiar abstractions from a laboratory setting, including notebooks, instruments, experiments, and analysis tools. However, doing so while hiding the complexities of the underlying computational...
Conference Paper
To aid in building high-performance computational environments, INTERLACE offers a framework for linking reusable computational engines in a heterogeneous distributed system. The INTERLACE model provides clients with access to computational servers which interface with “wrapped” computational engines. An API is defined for establishing the server i...
Conference Paper
Full-text available
The Virtual Notebook Environment (ViNE) is a platform-independent, web-based interface designed to support a range of scientific activities across distributed, heterogeneous computing platforms. ViNE provides scientists with a web-based version of the common paper-based lab notebook, but in addition, it provides support for collaboration and manage...