mlos-core


Namemlos-core JSON
Version 0.5.0 PyPI version JSON
download
home_pagehttps://github.com/microsoft/MLOS
SummaryMLOS Core Python interface for parameter optimization.
upload_time2024-02-09 23:14:24
maintainer
docs_urlNone
authorMicrosoft
requires_python>=3.8
licenseMIT
keywords autotuning optimization
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # mlos-core

This [directory](https://github.com/microsoft/MLOS/tree/main/mlos_core/./) contains the code for the `mlos-core` optimizer package.

It's available for `pip install` via the pypi repository at [mlos-core](https://pypi.org/project/mlos-core/).

## Description

`mlos-core` is an optimizer package, wrapping other libraries like FLAML and SMAC to use techniques like Bayesian optimization and others to identify & sample tunable configuration parameters and propose optimal parameter values with a consistent API: `suggest` and `register`.

These can be evaluated by [`mlos-bench`](https://github.com/microsoft/MLOS/tree/main/mlos_core/../mlos_bench/), generating and tracking experiment results (proposed parameters, benchmark results & telemetry) to update the optimization loop, or used independently.

## Features

Since the tunable parameter search space is often extremely large, `mlos-core` automates the following steps to efficiently generate optimal task-specific kernel and application configurations.

1. Reduce the search space by identifying a promising set of tunable parameters
    - Map out the configuration search space: Automatically track and manage the discovery of new Linux kernel parameters and their default values across versions.
    Filter out non-tunable parameters (e.g., not writable) and track which kernel parameters exist for a given kernel version.
    - Leverage parameter knowledge for optimization: Information on ranges, sampling intervals, parameter correlations, workload type sensitivities for tunable parameters are tracked and currently manually curated.
    In the future, this can be automatically maintained by scraping documentation pages on kernel parameters.
    - Tailored to application: Consider prior knowledge of the parameter's impact & an application's workload profile (e.g. network heavy, disk heavy, CPU bound, multi-threaded, latency sensitive, throughput oriented, etc.) to identify likely impactful candidates of tunable parameters, specific to a particular application.
2. Sampling to warm-start optimization in a high dimensional search space
3. Produce optimal configurations through Bayesian optimization
    - Support for various optimizer algorithms (default Bayesian optimizer, Flaml, SMAC, and random for baseline comparison), that handle multiple types of constraints.
    This includes cost-aware optimization, that considers experiment costs given current tunable parameters.
    - Integrated with `mlos-bench`, proposed configurations are logged and evaluated.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/microsoft/MLOS",
    "name": "mlos-core",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "autotuning,optimization",
    "author": "Microsoft",
    "author_email": "mlos-maintainers@service.microsoft.com",
    "download_url": "https://files.pythonhosted.org/packages/55/fe/4c8c73fa1b27cbb1d0aa1a7293139c94f7ccb9ade45b7dc92f594c1a4a80/mlos-core-0.5.0.tar.gz",
    "platform": null,
    "description": "# mlos-core\n\nThis [directory](https://github.com/microsoft/MLOS/tree/main/mlos_core/./) contains the code for the `mlos-core` optimizer package.\n\nIt's available for `pip install` via the pypi repository at [mlos-core](https://pypi.org/project/mlos-core/).\n\n## Description\n\n`mlos-core` is an optimizer package, wrapping other libraries like FLAML and SMAC to use techniques like Bayesian optimization and others to identify & sample tunable configuration parameters and propose optimal parameter values with a consistent API: `suggest` and `register`.\n\nThese can be evaluated by [`mlos-bench`](https://github.com/microsoft/MLOS/tree/main/mlos_core/../mlos_bench/), generating and tracking experiment results (proposed parameters, benchmark results & telemetry) to update the optimization loop, or used independently.\n\n## Features\n\nSince the tunable parameter search space is often extremely large, `mlos-core` automates the following steps to efficiently generate optimal task-specific kernel and application configurations.\n\n1. Reduce the search space by identifying a promising set of tunable parameters\n    - Map out the configuration search space: Automatically track and manage the discovery of new Linux kernel parameters and their default values across versions.\n    Filter out non-tunable parameters (e.g., not writable) and track which kernel parameters exist for a given kernel version.\n    - Leverage parameter knowledge for optimization: Information on ranges, sampling intervals, parameter correlations, workload type sensitivities for tunable parameters are tracked and currently manually curated.\n    In the future, this can be automatically maintained by scraping documentation pages on kernel parameters.\n    - Tailored to application: Consider prior knowledge of the parameter's impact & an application's workload profile (e.g. network heavy, disk heavy, CPU bound, multi-threaded, latency sensitive, throughput oriented, etc.) to identify likely impactful candidates of tunable parameters, specific to a particular application.\n2. Sampling to warm-start optimization in a high dimensional search space\n3. Produce optimal configurations through Bayesian optimization\n    - Support for various optimizer algorithms (default Bayesian optimizer, Flaml, SMAC, and random for baseline comparison), that handle multiple types of constraints.\n    This includes cost-aware optimization, that considers experiment costs given current tunable parameters.\n    - Integrated with `mlos-bench`, proposed configurations are logged and evaluated.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "MLOS Core Python interface for parameter optimization.",
    "version": "0.5.0",
    "project_urls": {
        "Documentation": "https://microsoft.github.io/MLOS",
        "Homepage": "https://github.com/microsoft/MLOS",
        "Package Source": "https://github.com/microsoft/MLOS/tree/main/mlos_core/"
    },
    "split_keywords": [
        "autotuning",
        "optimization"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d1a42d6bdb8ec4408bb4087b733837db596c71f54306e1b4227cad22e1398b96",
                "md5": "d15239cf4a7fe43d3519fb819dd8f106",
                "sha256": "339a47e660fcff4ba85ad79028d1f5bfb1b636ed2b6a98923e758eb1903ef6e7"
            },
            "downloads": -1,
            "filename": "mlos_core-0.5.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d15239cf4a7fe43d3519fb819dd8f106",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 26699,
            "upload_time": "2024-02-09T23:14:19",
            "upload_time_iso_8601": "2024-02-09T23:14:19.963804Z",
            "url": "https://files.pythonhosted.org/packages/d1/a4/2d6bdb8ec4408bb4087b733837db596c71f54306e1b4227cad22e1398b96/mlos_core-0.5.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "55fe4c8c73fa1b27cbb1d0aa1a7293139c94f7ccb9ade45b7dc92f594c1a4a80",
                "md5": "3a8ec2d3738d22402dcb3cefcfc57021",
                "sha256": "dfea5c40533fc233616c1007393aa05d798f757094acb989820b760e2030420c"
            },
            "downloads": -1,
            "filename": "mlos-core-0.5.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3a8ec2d3738d22402dcb3cefcfc57021",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 119132,
            "upload_time": "2024-02-09T23:14:24",
            "upload_time_iso_8601": "2024-02-09T23:14:24.688568Z",
            "url": "https://files.pythonhosted.org/packages/55/fe/4c8c73fa1b27cbb1d0aa1a7293139c94f7ccb9ade45b7dc92f594c1a4a80/mlos-core-0.5.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-09 23:14:24",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "microsoft",
    "github_project": "MLOS",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mlos-core"
}
        
Elapsed time: 0.17698s