MultiRun

Configuration

Environment variables and MultiRunConfig.

Configuration

Environment variables

VariableDescriptionDefault
MULTIRUN_ENDPOINTRuntime service URLhttp://localhost:8989
MULTIRUN_API_KEYAPI key for authenticationNone
MULTIRUN_TIMEOUTRequest timeout in seconds30.0
MULTIRUN_SERIALIZERState serializer (cloudpickle, pickle, json)cloudpickle
MULTIRUN_REQUEST_RETRIESMax retries for transient failures (429, 5xx)3
MULTIRUN_DEBUGEnable debug logging (1, true, yes)false

MultiRunConfig

Programmatic configuration. Constructed automatically by multirun.init() / MultiRunClient.connect(), or built manually.

from multirun import MultiRunConfig

config = MultiRunConfig(
    endpoint="http://localhost:8989",
    api_key="your-key",
    timeout=60.0,
    serializer="cloudpickle",
    request_retries=3,
)

Fields

FieldTypeDefaultDescription
endpointstrhttp://localhost:8989Runtime service URL
api_keystr | NoneNoneAPI key for auth
timeoutfloat30.0Request timeout (seconds)
serializerstrcloudpickleSerializer for state/checkpoints
default_budgetBudget | NoneNoneDefault budget applied to all runs
default_policyPolicy | NoneNoneDefault policy applied to all runs
connect_retriesint3Retries when establishing connection
connect_retry_delayfloat1.0Delay between connection retries (seconds)
request_retriesint3Retries for transient request failures
request_retry_base_delayfloat0.5Base delay for request retry backoff
request_retry_max_delayfloat30.0Max delay ceiling for request retry backoff
debugboolFalseEnable debug logging on init

from_env()

config = MultiRunConfig.from_env()

Reads all supported MULTIRUN_* environment variables and returns a configured instance.

Debug logging

from multirun import enable_debug_logging

enable_debug_logging()

Sets up a console handler on the multirun logger with DEBUG level. Call at script start to see SDK internals.

Serializers

The SDK uses serializers for step inputs/outputs and checkpoint state. Three built-in options:

SerializerProsCons
cloudpickle (default)Handles lambdas, closures, complex typesNot portable across Python versions
pickleFast, standard libraryNot portable, security risk with untrusted data
jsonPortable, human-readableOnly supports JSON-serializable types

Set via MULTIRUN_SERIALIZER env var or MultiRunConfig(serializer=...).

On this page