OACIS (‘‘Organizing Assistant for Comprehensive and Interactive Simulations’’) is a job management software for simulation studies.
When we conduct scientific research by numerical simulations, we usually carry out many simulation jobs changing models and parameters through a trial and error process. This kind of trial-and-error approach often causes a problem of job management since a large amount of jobs are often created while we are exploring the parameter space. As the number of simulation jobs increases, it is often difficult to keep track of vast and various simulation results in an organized way and, as a result, we inevitably suffer from inefficiency and human errors.
OACIS is being developed aiming at overcoming these difficulties. For instance, submitting only one simulation job would require the following tasks.
Using OACIS, you can automate most of the above tasks, which lets you efficiently explore the parameter space. With a user-friendly interface, you can easily submit various jobs to appropriate remote hosts. After these jobs are finished, all the result files are automatically downloaded from the remote hosts and stored in a traceable way together with logs of the date, host, and elapsed time of the jobs. You can easily find the status of the jobs or results files from the browser-based UI, which lets you focus on more productive and essential parts of your research activities.
It also provides an MCP (Model Context Protocol) server so that AI agents can operate OACIS on your behalf, and Ruby APIs for writing reproducible scripts that automate parameter sweep, optimization of parameters, and sensitivity analysis etc.
OACIS ships an MCP (Model Context Protocol) server, which lets AI agents such as Claude operate OACIS on your behalf. An agent connected to the server can create parameter sets, submit runs, monitor their status, and inspect the results — you can simply ask it to “sweep parameters p1 and p2 of my simulator and report the results”. See http://crest-cassia.github.io/oacis/en/mcp.html for more details.
For scripted, reproducible workflows, use the Ruby API. A small sample of parameter sweep over parameters “p1” and “p2” of your simulator. See http://crest-cassia.github.io/oacis/en/api.html for more details.
sim = Simulator.where(name: "my_simulator").first
p1_values = [1.0,2.0,3.0,4.0,5.0] # a standard way to make an array
p2_values = [2.0,4.0,6.0,8.0,10.0]
base_param = sim.default_parameters # => {"p1"=>1.0, "p2"=>2.0, "p3"=>3.0}
host = Host.where(name: "localhost").first
host_param = host.default_host_parameters
# We are going to fix the parameters other than "p1" and "p2"
p1_values.each do |p1| # iterate over p1
p2_values.each do |p2| # iterate over p2
param = base_param.merge({"p1"=>p1,"p2"=>p2}) # => {"p1"=>p1, "p2"=>p2, "p3"=>3.0}
ps = sim.find_or_create_parameter_set( param ) # => ParameterSet of the given parameters
runs = ps.find_or_create_runs_upto(5, submitted_to: host, host_param: host_param) # creating runs under given parameter sets
end
end
This document illustrates the usage of OACIS. The remaining pages are organized as follows.
You will be able to start using OACIS if you read the first three pages. In order to fully make use of OACIS, read other pages when necessary.
If you have questions, requests, or bug reports, please send your feedback to the developers (oacis-dev _at_ googlegroups.com). Replace at with @.