iT邦幫忙

2025 iThome 鐵人賽

0

可實現目標

  • 可透過k8s呼叫slurm叢集執行任務。
  • slurm batch結果可作為flyte workflow的一部分。

Slurm

支援HPC、MPI、資源調度的lunix原生分散式平台。
我使用multipass在主機上建立單點叢集。

Code

目前有flytekit官方範例,需要修改,但物件名稱與參數不對。(過幾天會提issue上去)

import os

from flytekit import task, workflow
from flytekitplugins.slurm import SlurmTask, SlurmScriptConfig

slurm_task = SlurmTask(
    name="basic",
    task_config=SlurmScriptConfig(
        ssh_config={
            "host": "127.0.0.1",
            "username": "ubuntu",
        },
        sbatch_config={
            "partition": "debug",
            "job-name": "job0",
            "time": "00:01:00",
            "output": "/home/ubuntu/slurm-100.out",
        },
        batch_script_path="/home/ubuntu/echo.sh",
    ),
)


@workflow
def basic_wf() -> None:
    slurm_task()


if __name__ == "__main__":
    from click.testing import CliRunner
    from flytekit.clis.sdk_in_container import pyflyte

    runner = CliRunner()
    path = os.path.realpath(__file__)

    print(">>> LOCAL EXEC <<<")
    result = runner.invoke(pyflyte.main, ["run", path, "basic_wf"])
    print(result.output)

上一篇
Day 24: 在image階段將data打包
系列文
新興k8s工作流flyte與MLOps。26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言