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 addressmmc_username: MMCloud OpCenter usernamemmc_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"andmem="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)
| File | Size | Uploaded | |
|---|---|---|---|
| flytekitplugins_mmcloud-1.16.29.tar.gz | 8.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|