Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Preparing a Compatible Replication Package

Authors
Affiliations
Cornell University
National Center for Supercomputing Applications
University of Illinois at Urbana-Champaign

You should not include any data that you are not allowed to upload to third-party systems

While SIVACOR does not publish data or replication packages, and deletes completed jobs after a short period of time, it is not a designated secure computing system.[1] You should not upload controlled data, and all uploads should be compatible with any data use agreement you signed.

If you have data that you are allowed to upload, but not publish, see the next point on how to exclude files from the final replication package.

Excluding files from final package

The final digitally signed replication package contains all data as originally included. If you need to remove files because you do not have redistribution rights, or large intermediate files, you can include a file named .sivacorignore (note the leading dot!) at the root of your project to exclude files or directories before the final replicated package is created. It follows the same pattern rules as .gitignore, so you can use glob patterns, negations, and directory-specific rules.

Your replication package should be portable.

Code must run without manual intervention, use a single controller script (e.g., main.do or master.R), and avoid hard-coded absolute paths. You can only upload the package, not edit it on the site. It should also not have inconsistently used case-sensitive file or directory names.

All dependencies must either be included or installed automatically.

If your code uses libraries or packages, you must ensure that they are installed automatically (for Stata, we suggest you include them). We strongly encourage packages that use “environments”, and packages to manage dependencies.

Tips for `R`
Stata

Possible approaches include renv or packrat. You can also include code at the top of your main R script to install any required packages that are not already installed. All code necessary to manage depenedencies must be part of the replication package, and must run unattended. For instance, if using renv, include the .Rprofile and ensure that renv::restore() is called at the start of your main R script.

Your replication package only uses a single software application per step

Each step of a SIVACOR submission only supports a single software application (e.g., Stata, R, Python), as encapsulated by containers. If your replication requires multiple applications, you will need to configure separate runs. However, your package itself can include the code for multiple applications, and you can chain them together in a highly simplified workflow system at submission, see instructions in Step 2.

Size considerations

The size available to run your code depends on the software being used, and how you manage files within your replication package. A complete run of your code needs room for more than one copy of itself: the archive you upload, the workspace it is extracted into, and anything your code writes all need to be accommodated.

The base system has about 55.5GB of space available. Software sizes differ. The table below lists free space after accounting for typical software versions. Specific sizes might differ slightly. See Available Software for the full, curated list of software.

Loading...

For more information on the system itself, see Hardware capabilities.

If free space runs low, the run is stopped and you will see an error saying the submission ran out of disk space — see the FAQ for what to do about it.

Prepare a ZIP or tar.gz file

Your replication package must be a single ZIP file or tar.gz file.

The next step is to upload your package to SIVACOR.

Footnotes
  1. SIVACOR runs on JetStream2 infrastructure. The JS2 Acceptable Use and Data Policy apply.