Skip to main content

Flytekit Memory Machine Cloud Plugin

Flyte Connector plugin to allow executing Flyte tasks using MemVerge Memory Machine Cloud.

To install the plugin, run the following command:

pip install flytekitplugins-mmcloud

To get started with MMCloud, refer to the MMCloud User Guide.

Getting Started

This plugin allows executing PythonFunctionTask using MMCloud without changing any function code.

Resource (cpu and mem) requests and limits, container images, and environment variable specifications are supported.

ImageSpec may be used to define images to run tasks.

Credentials

The following secrets are required to be defined for the connector server:

  • mmc_address: MMCloud OpCenter address
  • mmc_username: MMCloud OpCenter username
  • mmc_password: MMCloud OpCenter password

Defaults

Compute resources:

  • If only requests are specified, there are no limits.
  • If only limits are specified, the requests are equal to the limits.
  • If neither resource requests nor limits are specified, the default requests used for job submission are cpu="1" and mem="1Gi", and there are no limits.

Example

example.py workflow example:

import pandas as pd
from flytekit import ImageSpec, Resources, task, workflow
from sklearn.datasets import load_wine
from sklearn.linear_model import LogisticRegression

from flytekitplugins.mmcloud import MMCloudConfig

image_spec = ImageSpec(packages=["scikit-learn"], registry="docker.io/memverge")


@task
def get_data() -> pd.DataFrame:
    """Get the wine dataset."""
    return load_wine(as_frame=True).frame


@task(task_config=MMCloudConfig(), container_image=image_spec)  # Task will be submitted as MMCloud job
def process_data(data: pd.DataFrame) -> pd.DataFrame:
    """Simplify the task from a 3-class to a binary classification problem."""
    return data.assign(target=lambda x: x["target"].where(x["target"] == 0, 1))


@task(
    task_config=MMCloudConfig(submit_extra="--migratePolicy [enable=true]"),
    requests=Resources(cpu="1", mem="1Gi"),
    limits=Resources(cpu="2", mem="4Gi"),
    container_image=image_spec,
    environment={"KEY": "value"},
)
def train_model(data: pd.DataFrame, hyperparameters: dict) -> LogisticRegression:
    """Train a model on the wine dataset."""
    features = data.drop("target", axis="columns")
    target = data["target"]
    return LogisticRegression(max_iter=3000, **hyperparameters).fit(features, target)


@workflow
def training_workflow(hyperparameters: dict) -> LogisticRegression:
    """Put all of the steps together into a single workflow."""
    data = get_data()
    processed_data = process_data(data=data)
    return train_model(
        data=processed_data,
        hyperparameters=hyperparameters,
    )

Connector Image

Install flytekitplugins-mmcloud in the connector image.

A float binary (obtainable via the OpCenter) is required. Copy it to the connector image PATH.

Sample Dockerfile for building an connector image:

FROM python:3.11-slim-bookworm

WORKDIR /root
ENV PYTHONPATH /root

# flytekit will autoload the connector if package is installed.
RUN pip install flytekitplugins-mmcloud
COPY float /usr/local/bin/float

CMD pyflyte serve connector --port 8000

Metadata

Release files for flytekitplugins-mmcloud 1.16.29

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flytekitplugins-mmcloud 1.16.29
File Size Uploaded
flytekitplugins_mmcloud-1.16.29.tar.gz 8.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flytekitplugins-mmcloud 1.16.29
File Interpreter ABI Platform
flytekitplugins_mmcloud-1.16.29-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / flytekitplugins_mmcloud-1.16.29.tar.gz

Download URL flytekitplugins_mmcloud-1.16.29.tar.gz
Size 8.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0bd769810c4d27475d14fa10dddd3c59263ba25296a9b32766234dee5d8c53ef
BLAKE2b-256 checksum
How to use checksums
a254e1b12181812849b7b6e3e71c94dc2d5d4749237777cde26507e8bfb5529c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / flytekitplugins_mmcloud-1.16.29-py3-none-any.whl

Download URL flytekitplugins_mmcloud-1.16.29-py3-none-any.whl
Size 8.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b096fe72fa723295f21f8585c2cfde0afe77bb15bc019954aa29c38f4e76ebb8
BLAKE2b-256 checksum
How to use checksums
5433818053c7884449034d1a655a1a1f12db5f3f6e672bfd29955e388998b22b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

This release

1.16.29 This release

2 release files

1.16.8

2 release files

1.16.7

2 release files

1.16.6

2 release files

1.16.5

2 release files

1.16.4

2 release files

1.16.3

2 release files

1.16.2

2 release files

1.16.1

2 release files

1.16.0

2 release files

1.15.4

2 release files

1.15.3

2 release files

1.15.2

2 release files

1.15.0

2 release files

1.14.9

2 release files

1.14.8

2 release files

1.14.7

2 release files

1.14.6

2 release files

1.14.5

2 release files

1.14.4

2 release files

1.14.3

2 release files

1.14.2

2 release files

1.14.1

2 release files

1.13.10

1 release file

1.13.9

2 release files

1.13.5

2 release files

1.13.4

2 release files

1.13.1

2 release files

1.12.3

2 release files

1.11.0

2 release files

1.10.7

2 release files

1.10.3

2 release files

1.10.1

2 release files

1.10.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page