Bash Command#
Bash Command workload (test_template_name is BashCmd) allows users to execute arbitrary bash commands within the CloudAI framework. This is useful for simple scripts, custom testing commands, or integrating external tools.
cmd specified in the cmd_args section will be added as-is into generated sbatch script.
Usage Examples#
Test TOML example:
name = "my_bash_test"
description = "Example bash command test"
test_template_name = "BashCmd"
[cmd_args]
cmd = "echo 'Hello from CloudAI!'"
Test Scenario example:
name = "bash-test"
[[Tests]]
id = "bash.1"
num_nodes = 1
time_limit = "00:05:00"
test_name = "my_bash_test"
Test-in-Scenario example:
name = "bash-test"
[[Tests]]
id = "bash.1"
num_nodes = 1
time_limit = "00:05:00"
name = "my_bash_test"
description = "Example bash command test"
test_template_name = "BashCmd"
[Tests.cmd_args]
cmd = "echo 'Hello from CloudAI!'"
API Documentation#
Command Arguments#
Test Definition#
- class cloudai.workloads.bash_cmd.bash_cmd.BashCmdTestDefinition(*, name: str, description: str, test_template_name: str, cmd_args: ~cloudai.workloads.bash_cmd.bash_cmd.BashCmdArgs, dse_excluded_args: list[str] = <factory>, extra_env_vars: dict[str, str | ~typing.List[str]] = {}, extra_cmd_args: dict[str, str] = {}, extra_container_mounts: list[str] = [], git_repos: list[~cloudai._core.installables.git_repo.GitRepo] = [], nsys: ~cloudai.models.workload.NsysConfiguration | None = None, predictor: ~cloudai.models.workload.PredictorConfig | None = None, agent: str = 'grid_search', agent_steps: int = 1, agent_metrics: list[str] = ['default'], agent_reward_function: str = 'inverse', agent_config: dict[str, ~typing.Any] | None = None, env_params: dict[str, ~cloudai.configurator.env_params.EnvParamSpec] = <factory>)[source]#
Bases:
TestDefinitionTest definition for a Bash command.
- property is_domain_randomization_enabled: bool#
at least one
env_paramsannotation.- Type:
Whether the config declares domain randomization
- is_dse_excluded_arg(path: str) bool#
Return whether a dot-separated cmd_args path should be ignored by DSE.
- is_env_sampled(cmd_args_path: str) bool#
Whether a cmd_args field is env-sampled (env draws it per trial, not the agent).
- validator validate_env_params » all fields#
Validate env_params annotations against cmd_args.
env_paramsis an annotation: each key names acmd_argsfield whose value is the candidate set (the single source of truth), and the entry carries only how to sample. So each key must name a realcmd_argsfield whose value is a candidate list; a scalar is already fixed, so annotating it is a meaningless label and is rejected here. Whenweightsare declared, the list needs >= 2 values and the weights must align 1:1 with it. Sampling, persistence, the per-trial cmd_args overlay, and the cache key all live inCloudAIGymEnv; keeping this shape check in core lets the overlay stay agent- and workload-agnostic rather than re-implemented per workload.