Skip to main content

MARO Python Package

Project description

test build docker docs Python Versions Python Versions MARO LOGO

Multi-Agent Resource Optimization (MARO) platform is an instance of Reinforcement learning as a Service (RaaS) for real-world resource optimization. It can be applied to many important industrial domains, such as container inventory management in logistics, bike repositioning in transportation, virtual machine provisioning in data centers, and asset management in finance. Besides Reinforcement Learning (RL), it also supports other planning/decision mechanisms, such as Operations Research.

Key Components of MARO:

  • Simulation toolkit: it provides some predefined scenarios, and the reusable wheels for building new scenarios.

  • RL toolkit: it provides a full-stack abstraction for RL, such as agent manager, agent, RL algorithms, learner, actor, and various shapers.

  • Distributed toolkit: it provides distributed communication components, interface of user-defined functions for message auto-handling, cluster provision, and job orchestration.

MARO Key Components

Contents

File/folder

Description

maro

MARO source code.

docs

MARO docs, it is host on readthedocs.

examples

Showcase of MARO.

notebooks

MARO quick-start notebooks.

Install MARO from PyPI

  • Max OS / Linux

    pip install pymaro
  • Windows

    # Install torch first, if you don't have one.
    pip install torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
    
    pip install pymaro

Install MARO from Source (Editable Mode)

  • Prerequisites

  • Enable Virtual Environment

    • Mac OS / Linux

      # If your environment is not clean, create a virtual environment firstly.
      python -m venv maro_venv
      source ./maro_venv/bin/activate
    • Windows

      # If your environment is not clean, create a virtual environment firstly.
      python -m venv maro_venv
      .\maro_venv\Scripts\activate
      
      # You may need this for SecurityError in PowerShell.
      Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
  • Install MARO

    • Mac OS / Linux

      # Install MARO from source.
      bash scripts/install_maro.sh
    • Windows

      # Install MARO from source.
      .\scripts\install_maro.bat

Quick Example

from maro.simulator import Env

env = Env(scenario="cim", topology="toy.5p_ssddd_l0.0", start_tick=0, durations=100)

metrics, decision_event, is_done = env.step(None)

while not is_done:
    metrics, decision_event, is_done = env.step(None)

print(f"environment metrics: {env.metrics}")

Run Playground

  • Pull from Docker Hub

    # Run playground container.
    # Redis commander (GUI for redis) -> http://127.0.0.1:40009
    # Local host docs -> http://127.0.0.1:40010
    # Jupyter lab with maro -> http://127.0.0.1:40011
    docker run -p 40009:40009 -p 40010:40010 -p 40011:40011 arthursjiang/maro:cpu
  • Build from source

    • Mac OS / Linux

      # Build playground image.
      bash ./scripts/build_playground.sh
      
      # Run playground container.
      # Redis commander (GUI for redis) -> http://127.0.0.1:40009
      # Local host docs -> http://127.0.0.1:40010
      # Jupyter lab with maro -> http://127.0.0.1:40011
      docker run -p 40009:40009 -p 40010:40010 -p 40011:40011 maro/playground:cpu
    • Windows

      # Build playground image.
      .\scripts\build_playground.bat
      
      # Run playground container.
      # Redis commander (GUI for redis) -> http://127.0.0.1:40009
      # Local host docs -> http://127.0.0.1:40010
      # Jupyter lab with maro -> http://127.0.0.1:40011
      docker run -p 40009:40009 -p 40010:40010 -p 40011:40011 maro/playground:cpu

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

License

Copyright (c) Microsoft Corporation. All rights reserved.

Licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pymaro-0.1.1a9-cp37-cp37m-win_amd64.whl (635.2 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

pymaro-0.1.1a9-cp37-cp37m-manylinux2010_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

pymaro-0.1.1a9-cp37-cp37m-manylinux1_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.7m

pymaro-0.1.1a9-cp37-cp37m-macosx_10_14_x86_64.whl (647.5 kB view hashes)

Uploaded CPython 3.7m macOS 10.14+ x86-64

pymaro-0.1.1a9-cp36-cp36m-win_amd64.whl (634.8 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

pymaro-0.1.1a9-cp36-cp36m-manylinux2010_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

pymaro-0.1.1a9-cp36-cp36m-manylinux1_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.6m

pymaro-0.1.1a9-cp36-cp36m-macosx_10_14_x86_64.whl (651.3 kB view hashes)

Uploaded CPython 3.6m macOS 10.14+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page