Andrew C. Loheac, Ph.D.

Analytical Consultant, SAS Institute
Computational Physicist, University of North Carolina at Chapel Hill

Scimitar: A Scripting Tool for Parameter Space Exploration

Scimitar is a small software application which provides a robust but simple scripting language to define a highly-dimensional parameter space over which to execute a numerical simulation. This tool automates the process of configuring, organizing, executing, and monitoring a large number of simulation jobs on compute resources. In practice, the Scimitar compiler generates a Python script which will execute an instance of a program for each combination of selected parameters in an organized fashion, which helps to simplify data reduction and post-processing.

The scripting language used to define the parameter space to be explored and configure available options provides functionality including:

Sample Script

The following sample script highlights some of the features available in Scimitar. More details are available in the documentation.

// Define a constant integer NTAU with value 200, and a constant
// floating-point parameter beta with value 2.5.
param int NTAU 200;
param real beta 2.5;

// Define a calculated parameter dtau, where dtau = beta / NTAU.
param function dtau beta / NTAU;

// Iterate floating-point parameter mu from -5 to 5 in steps of 0.1.
// This value will be written out using one decimal point, and the
// parameter will appear first in the hierarchical directory structure.
param real mu -5:0.1:5 {format=%.1f dir=1};

// Define parameter U which will iterate over values (0, 0.5, 1.0, 1.5, and 4).
param real U [0.0:0.5:2.0, 4.0] {dir=2};

// Choose to only execute runs where mu is between (U / 2) + 3 and (U / 2) - 3.
run {
    if ( mu < ( U / 2 - 3 ) or mu > ( U / 2 + 3 ) ) { remove; }
}

Download

The latest release of Scimitar is available on GitHub.

Please note this software is in beta and may contain bugs, may have incomplete documentation, or could use improvement. The content of this project is continually evolving. However, it is made available in the hope it will be useful. Feedback is most welcome.