lenskit.schemas.settings.ParallelSettings#

class lenskit.schemas.settings.ParallelSettings(_case_sensitive=None, _nested_model_default_partial_update=None, _env_prefix=None, _env_prefix_target=None, _env_file=ENV_FILE_SENTINEL, _env_file_encoding=None, _env_ignore_empty=None, _env_nested_delimiter=None, _env_nested_max_split=None, _env_parse_none_str=None, _env_parse_enums=None, _cli_prog_name=None, _cli_parse_args=None, _cli_settings_source=None, _cli_parse_none_str=None, _cli_hide_none_type=None, _cli_avoid_json=None, _cli_enforce_required=None, _cli_use_class_docs_for_groups=None, _cli_show_env_vars=None, _cli_exit_on_error=None, _cli_prefix=None, _cli_flag_prefix_char=None, _cli_implicit_flags=None, _cli_ignore_unknown_args=None, _cli_kebab_case=None, _cli_shortcuts=None, _secrets_dir=None, _build_sources=None, **values)#

Bases: pydantic_settings.BaseSettings

Configuration for LensKit’s parallel processing. These settings are in the [parallel] table in lenskit.toml.

Parameters:
  • _case_sensitive (bool | None)

  • _nested_model_default_partial_update (bool | None)

  • _env_prefix (str | None)

  • _env_prefix_target (pydantic_settings.sources.EnvPrefixTarget | None)

  • _env_file (pydantic_settings.sources.DotenvType | None)

  • _env_file_encoding (str | None)

  • _env_ignore_empty (bool | None)

  • _env_nested_delimiter (str | None)

  • _env_nested_max_split (int | None)

  • _env_parse_none_str (str | None)

  • _env_parse_enums (bool | None)

  • _cli_prog_name (str | None)

  • _cli_parse_args (bool | list[str] | tuple[str, ...] | None)

  • _cli_settings_source (pydantic_settings.sources.CliSettingsSource[Any] | None)

  • _cli_parse_none_str (str | None)

  • _cli_hide_none_type (bool | None)

  • _cli_avoid_json (bool | None)

  • _cli_enforce_required (bool | None)

  • _cli_use_class_docs_for_groups (bool | None)

  • _cli_show_env_vars (bool | None)

  • _cli_exit_on_error (bool | None)

  • _cli_prefix (str | None)

  • _cli_flag_prefix_char (str | None)

  • _cli_implicit_flags (bool | Literal['dual', 'toggle'] | None)

  • _cli_ignore_unknown_args (bool | None)

  • _cli_kebab_case (bool | Literal['all', 'no_enums'] | None)

  • _cli_shortcuts (collections.abc.Mapping[str, str | list[str]] | None)

  • _secrets_dir (pydantic_settings.sources.PathType | None)

  • _build_sources (tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, ...], dict[str, Any]] | None)

  • values (Any)

model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

num_cpus: int = 0#

The number of CPUs LensKit should consider using. This is auto-detected from the system environment, and should only be configured manually if you want to override LensKit’s CPU detection for some reason. Note that the auto-detected values do account for operating system scheduling affinities and CPU limits.

This value is not used directly as a limit, but is used to derive the default values for the other concurrency controls (threads, etc.).

use_ray: bool = False#

Use Ray to parallelize batch operations, hyperparameter tuning, etc.

num_batch_jobs: int = 0#

Number of batch inference jobs to run in parallel. Can be overridden with the LK_NUM_BATCH_JOBS environment variable.

num_procs: int = 0#

Number of processes to use.

num_threads: int = 0#

Number of threads to use. Can be overridden with the LK_NUM_THREADS environment variable. Specify -1 to use all available threads.

num_backend_threads: int = 0#

Number of threads for compute backends to use. Can be overridden with the LK_NUM_BACKEND_THREADS environment variable. Specify -1 to leave threading limits unmodified.

tune_jobs: int | None = None#

Maximum number of hyperparamter tuning jobs. Alias for TuneSettings.jobs.

property total_threads#
resolve_defaults()#

Resolve default values for thread/process counts.

env_vars()#

Get the parallel configuration as a set of environment variables to configure a child process. The set also includes OMP_NUM_THREADS and related variables for BLAS and MKL to configure OMP early.

Return type:

dict[str, str]