Introduction Java Multi-Version Execution (JMVX) is a tool for performing Multi-Version Execution (MVX) and Record Replay (RR) in Java. Most tools for MVX and RR observe the behavior of a program at a low level, e.g., by looking at system calls. Unfortunately, this approach fails for high level language virtual machines due to benign divergences (differences in behavior that accomplish that same result) introduced by the virtual machine -- particularly by garbage collection and just-in-time compilation. In other words, the management of the virtual machines creates differing sequences of system calls that lead existing tools to believe a program has diverged, when in practice, the application running on top of the VM has not. JMVX takes a different approach, opting instead to add MVX and RR logic into the bytecode of compiled programs running in the VM to avoid benign divergences related to VM management. This artifact is a docker image that will create a container holding our source code, compiled system, and experiments with JMVX. The image allows you to run the experiments we used to address the research questions from the paper (from Section 4). This artifact is desiged to show: [Supported] JMVX performs MVX for Java [Supported] JMVX performs RR for Java [Supported] JMVX is performant In the "Step by Step" section, we will point out how to run experiments to generate data supporting these claims. The 3rd claim is supported, however, it may not be easily reproducible. For the paper we measured performance on bare metal rather than in a docker container. When testing the containerized artifact on a Macbook (Sonoma v14.5), JMVX ran slower than expected. Similarly, see the section on "Differences From Experiment" to see properties of the artifact that were altered (and could affect runtime results). Thanks for taking the time to explore our artifact. Hardware Requirements x86 machine running Linux, preferably Ubuntu 22.04 (Jammy) 120 Gb of storage About 10 Gb of RAM to spare 2+ cores Getting Started Guide Section is broken into 2 parts, setting up the docker container and running a quick experiment to test if everything is working. Container Setup Download the container image (DOI 10.5281/zenodo.12637140). If using docker desktop, increase the size of the virtual disk to 120 gb. In the GUI goto Settings > Resources > Virtual Disk (should be a slider). From the terminal, modify `diskSizeMiB` field in docker's `settings.json` and restart docker. Linux location: ~/.docker/desktop/settings.json. Mac location : ~/Library/Group Containers/group.com.docker/settings.json. Install with docker load -i java-mvx-image.tar.gz This process takes can take 30 minutes to 1 hour. Start the container via: docker run --name jmvx -it --shm-size="10g" java-mvx The `--shm-size` parameter is important as JMVX will crash the JVM if not enough space is available (detected via a SIGBUS error). Quick Start The container starts you off in an environment with JMVX already prepared, e.g., JMVX has been built and the instrumentation is done. The script test-quick.sh will test all of JMVX's features for DaCapo's avrora benchmark. The script has comments explaining each command. It should take about 10 minutes to run. The script starts by running our system call tracer tool. This phase of the script will create the directory /java-mvx/artifact/trace, which will contain: natives-avrora.log -- (serialized) map of methods, that resulted in system calls, to the stack trace that generated the call. /java-mvx/artifact/scripts/tracer/analyze2.sh is used to analyze this log and generate other files in this directory. table.txt - a table showing how many unique stack traces led to the invocation of a native method that called a system call. recommended.txt - A list of methods JMVX recommends to instrument for the benchmark. dump.txt - A textual dump of the last 8 methods from every stack trace logged. This allows us to reduce the number of methods we need to instrument by choosing a wrapper that can handle multiple system calls. `FileSystemProvider.checkAccess` is an example of this. JMVX will recommend functions to instrument, these are included in recommended.txt. If you inspect the file, you'll see some simple candidates for instrumentation, e.g., available, open, and read, from FileInputStream. The instrumentation code for FileInputInputStream can be found in /java-mvx/src/main/java/edu/uic/cs/jmvx/bytecode/FileInputStreamClassVisitor.java. The recommendations work in many cases, but for some, e.g. FileDescriptor.closeAll, we chose a different method (e.g., FileInputStream.close) by manually inspecting dump.txt. After tracing, runtime data is gathered, starting with measuring the overhead caused by instrumentation. Next it will move onto getting data on MVX, and finally RR. The raw output of the benchmark runs for these phases is saved in /java-mvx/artifact/data/quick. Tables showing the benchmark's runtime performance will be placed in /java-mvx/artifact/tables/quick. That directory will contain: instr.txt -- Measures the overhead of instrumentation. mvx.txt -- Performance for multi-version execution mode. rec.txt -- Performance for recording. rep.txt -- Performance for replaying. This script captures data for research claims 1-3 albeit for a single benchmark and with a single iteration. Note, data is captured for the benchmark's memory usage, but the txt tables only display runtime data. For more, see readme.pdf or readme.md.
more »
« less
Artifact - Semantic Analysis of Macro Usage for Portability
This is the artifact abstract for the ICSE 2024 paper, *Semantic Analysis of Macro Usage for Portability*. This artifact provides the source code of Maki, the tool described in the paper, and instructions on how to run Maki to replicate the results originally reported in the paper. The paper's original results are also included so that one may cross-reference them against the results they obtain while attempting to replicate them. We claim the **available** and **reusable** badges. We believe this artifact deserves the available badge because it is publicly available on Zenodo at https://doi.org/10.5281/zenodo.7783131 (DOI 10.5281/zenodo.7783131). We believe this artifact deserves the reusable badge because it includes instructions for reproducing all the paper's major results, along with a dataset one may verify them against. This artifact also utilizes Docker to facilitate reuse, as recommended in the ICSE 2024 Call for Artifact Submissions. A reviewer who wishes to evaluate this artifact must be familiar with Docker and the Linux command line. Clang and Python experience is advised, but not essential. A reviewer will need Docker to run the artifact, and should have a device with at least 8 threads and 8GB of RAM. "Kicking the tires" and replicating a portion of the paper's original results should take about 20 minutes of time and 2GB of storage memory. Replicating the paper's full results would require over two weeks of time and 620GB of storage memory. The artifact does not require any specific operating system or environment to run.
more »
« less
- Award ID(s):
- 1941816
- PAR ID:
- 10583170
- Publisher / Repository:
- Zenodo
- Date Published:
- Subject(s) / Keyword(s):
- macros c program analysis
- Format(s):
- Medium: X
- Right(s):
- GNU General Public License v2.0 or later; Open Access
- Sponsoring Org:
- National Science Foundation
More Like this
-
-
Methane (CH4) emissions in Stordalen Mire (northern Sweden), estimated via two different approaches: "Paint by number" (field ch4_modified_prj.tif): CH4 emission across the landscape calculated via “paint-by-number” approach, using 2014 autochamber-based flux measurements (https://doi.org/10.5281/zenodo.14052690) mapped to landcover classifications (https://doi.org/10.5281/zenodo.15042233). DNDC-modeled (Modeled CH4.tif): CH4 emission across the landscape modeled via Wetland-DNDC (https://www.dndc.sr.unh.edu/), driven by remotely sensed landcover classifications (https://doi.org/10.5281/zenodo.15042233), water table depth (https://doi.org/10.5281/zenodo.15092752), climate data (provided by the Abisko Scientific Research Station), and soil parameters (defined as in Deng et al. 2014, 2017). The DNDC model was run on vegetation and water table clusters (determined by k-means clustering), and model output was spatially assigned to each map pixel. Modeled CH4 emissions account for CH4 production from DOC (Randomforest_stack_epsg32634_extent_kmeansclass10_CH4 prod from DOC.tif) and from CO2 (Randomforest_stack_epsg32634_extent_kmeansclass10_CH4 prod from CO2.tif), minus oxidation (Randomforest_stack_epsg32634_extent_kmeansclass10_CH4 oxid.tif). The model also outputs a map of CH4 isotopic composition (δ13C-CH4) of emissions (Randomforest_stack_epsg32634_extent_kmeansclass10_Delta CH4 flux.tif). The difference between these approaches is provided as a difference map (CH4diff.tif), calculated as the "paint-by-number" (PBN) emissions (field ch4_modified_prj.tif) minus the Wetland-DNDC modeled emissions (Modeled CH4.tif). These images are GeoTIFFs with embedded georeferencing information. FUNDING: National Aeronautics and Space Administration, Interdisciplinary Science program: From Archaea to the Atmosphere (award # NNX17AK10G). National Science Foundation, Biology Integration Institutes Program: EMERGE Biology Integration Institute (award # 2022070). United States Department of Energy Office of Biological and Environmental Research, Genomic Science Program: The IsoGenie Project (grant #s DE-SC0004632, DE-SC0010580, and DE-SC0016440). National Science Foundation, MacroSystems program (grant # EF-1241037). We thank the Swedish Polar Research Secretariat and SITES for the support of the work done at the Abisko Scientific Research Station. SITES is supported by the Swedish Research Council's grant 4.3-2021-00164.more » « less
-
{"Abstract":["This dataset consists of weekly trajectory information of Gulf Stream Warm Core Rings from 2000-2010. This work builds upon Silver et al. (2022a) ( https://doi.org/10.5281/zenodo.6436380) which contained Warm Core Ring trajectory information from 2011 to 2020. Combining the two datasets a total of 21 years of weekly Warm Core Ring trajectories can be obtained. An example of how to use such a dataset can be found in Silver et al. (2022b).<\/p>\n\nThe format of the dataset is similar to that of Silver et al. (2022a), and the following description is adapted from their dataset. This dataset is comprised of individual files containing each ring\u2019s weekly center location and its area for 374 WCRs present between January 1, 2000 and December 31, 2010. Each Warm Core Ring is identified by a unique alphanumeric code 'WEyyyymmddA', where 'WE' represents a Warm Eddy (as identified in the analysis charts); 'yyyymmdd' is the year, month and day of formation; and the last character 'A' represents the sequential sighting of the eddies in a particular year. Continuity of a ring which passes from one year to the next is maintained by the same character in the first sighting. For example, the first ring in 2002 having a trailing alphabet of 'F' indicates that five rings were carried over from 2001 which were still observed on January 1, 2002. Each ring has its own netCDF (.nc) filename following its alphanumeric code. Each file contains 4 variables, \u201cLon\u201d- the ring center\u2019s weekly longitude, \u201cLat\u201d- the ring center\u2019s weekly latitude, \u201cArea\u201d - the rings weekly size in km2<\/sup>, and \u201cDate\u201d in days - representing the days since Jan 01, 0000. <\/p>\n\nThe process of creating the WCR tracking dataset follows the same methodology of the previously generated WCR census (Gangopadhyay et al., 2019, 2020). The Jenifer Clark\u2019s Gulf Stream Charts used to create this dataset are 2-3 times a week from 2000-2010. Thus, we used approximately 1560 Charts for the 10 years of analysis. All of these charts were reanalyzed between 75° and 55°W using QGIS 2.18.16 (2016) and geo-referenced on a WGS84 coordinate system (Decker, 1986). <\/p>\n\n <\/p>\n\nSilver, A., Gangopadhyay, A, & Gawarkiewicz, G. (2022a). Warm Core Ring Trajectories in the Northwest Atlantic Slope Sea (2011-2020) (1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.6436380<\/p>\n\nSilver, A., Gangopadhyay, A., Gawarkiewicz, G., Andres, M., Flierl, G., & Clark, J. (2022b). Spatial Variability of Movement, Structure, and Formation of Warm Core Rings in the Northwest Atlantic Slope Sea. Journal of Geophysical Research: Oceans<\/em>, 127<\/em>(8), e2022JC018737. https://doi.org/10.1029/2022JC018737 <\/p>\n\nGangopadhyay, A., G. Gawarkiewicz, N. Etige, M. Monim and J. Clark, 2019. An Observed Regime Shift in the Formation of Warm Core Rings from the Gulf Stream, Nature - Scientific Reports, https://doi.org/10.1038/s41598-019-48661-9. www.nature.com/articles/s41598-019-48661-9.<\/p>\n\nGangopadhyay, A., N. Etige, G. Gawarkiewicz, A. M. Silver, M. Monim and J. Clark, 2020. A Census of the Warm Core Rings of the Gulf Stream (1980-2017). Journal of Geophysical Research, Oceans, 125, e2019JC016033. https://doi.org/10.1029/2019JC016033.<\/p>\n\nQGIS Development Team. QGIS Geographic Information System (2016).<\/p>\n\nDecker, B. L. World Geodetic System 1984. World geodetic system 1984 (1986).<\/p>\n\n <\/p>"],"Other":["Funded by two NSF US grants OCE-1851242, OCE-212328","{"references": ["Silver, A., Gangopadhyay, A, & Gawarkiewicz, G. (2022). Warm Core Ring Trajectories in the Northwest Atlantic Slope Sea (2011-2020) (1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.6436380", "Silver, A., Gangopadhyay, A., Gawarkiewicz, G., Andres, M., Flierl, G., & Clark, J. (2022b). Spatial Variability of Movement, Structure, and Formation of Warm Core Rings in the Northwest Atlantic Slope Sea.\\u00a0Journal of Geophysical Research: Oceans,\\u00a0127(8), e2022JC018737.\\u00a0https://doi.org/10.1029/2022JC018737", "Gangopadhyay, A., G. Gawarkiewicz, N. Etige, M. Monim and J. Clark, 2019. An Observed Regime Shift in the Formation of Warm Core Rings from the Gulf Stream, Nature - Scientific Reports, https://doi.org/10.1038/s41598-019-48661-9. www.nature.com/articles/s41598-019-48661-9.", "Gangopadhyay, A., N. Etige, G. Gawarkiewicz, A. M. Silver, M. Monim and J. Clark, 2020. A Census of the Warm Core Rings of the Gulf Stream (1980-2017). Journal of Geophysical Research, Oceans, 125, e2019JC016033. https://doi.org/10.1029/2019JC016033.", "QGIS Development Team. QGIS Geographic Information System (2016).", "Decker, B. L. World Geodetic System 1984. World geodetic system 1984 (1986)."]}"]}more » « less
-
In December 2021, we installed four groundwater monitoring wells in Imperial Beach, California, to study the effects of sea level variability and implications for flood risks. We collected time series of groundwater table elevation (GWT) relative to a fixed vertical datum and local land surface elevation from 8 December 2021 through 14 May 2024. In each groundwater monitoring well, a single unvented pressure sensor (RBR Solo) was attached to Kevlar line and submerged ~1 m below the GWT. From 8 December 2021 through 21 November 2023, total pressure was recorded at 1 Hz; from 22 November 2023 through 14 May 2024, sampling occurred at 0.1 Hz. Gaps in sampling are a result of battery failures leading to data loss. To estimate hydrostatic pressure from total pressure measurements we subtracted atmospheric pressure measurements that were collected every 6 min from NOAA's National Data Buoy Center (NDBC) station SDBC1-9410170 at the San Diego airport and linearly interpolated to match sensor samples. Hydrostatic pressure is converted to sensor depth below the water table. We determined an average well water density, ρ, using intermittent vertical profiles of conductivity-temperature-depth (CTD) and the TEOS-10 conversion (Roquet et al. 2015). This object includes MATLAB (.mat) and HDF5 (.h5) files that contain the raw total pressure measurements from unvented RBR solos. The original Ruskin files (.rsk) are not included and have been converted to MATLAB files without loss of fidelity. Intermittent CTD profiles used to estimate well water density structure are included as CSV files. GWT that have been processed using atmospheric pressure and vertical datum measurements are included as HDF5 files. The object has five main directories, one for each of the four groundwater wells and one for data downloaded from other sources for archival and reproducibility purposes. Code for generating these files may be found on the GitHub repository (https://github.com/aubarnes/ImperialBeachGroundwater) or on Zenodo (https://doi.org/10.5281/zenodo.14969632). Code run with Python v3.12.7 Pastas v1.5.0 UTide v0.3.0 GSW v3.6.19 NumPy v1.26.4 Pandas v2.1.4 MatPlotLib v3.9.2 SciPy v 1.13.1 requests v2.32.3 intake v0.7.0 datetime pickle osmore » « less
-
Pairwise geographic distances (m) between mire-wide plots in Stordalen Mire, northern Sweden. Distances are in the file Mirewide_Plots_distances-m.csv. This file was generated with the script Mirewide_Plots_Distances.R, using Mirewide_Plots_GPS.csv as input, and geosphere package version 1.5-10. Details of the plots, including latitude, longitude, and vegetation cover, are in the dataset "Stordalen Mire mire-wide survey: Vegetation cover" (https://doi.org/10.5281/zenodo.15048198). The latitude & longitude provided in that dataset represent more precise versions of the coordinates in Mirewide_Plots_GPS.csv (which also omits plot 8); the coordinates are otherwise identical in both datasets. FUNDING: National Aeronautics and Space Administration, Interdisciplinary Science program: From Archaea to the Atmosphere (award # NNX17AK10G). National Science Foundation, Biology Integration Institutes Program: EMERGE Biology Integration Institute (award # 2022070). United States Department of Energy Office of Biological and Environmental Research, Genomic Science Program: The IsoGenie Project (grant #s DE-SC0004632, DE-SC0010580, and DE-SC0016440). We thank the Swedish Polar Research Secretariat and SITES for the support of the work done at the Abisko Scientific Research Station. SITES is supported by the Swedish Research Council's grant 4.3-2021-00164.more » « less
An official website of the United States government
