.. only:: html
.. note::
:class: sphx-glr-download-link-note
Click :ref:`here ` to download the full example code
.. rst-class:: sphx-glr-example-title
.. _sphx_glr_examples_pipelines_kfp_dist_pipeline.py:
Distributed KubeFlow Pipelines Example
======================================
This is an example KFP pipeline that uses resource_from_app to launch a
distributed operator using the kubernetes/volcano job scheduler. This only works
in Kubernetes KFP clusters with https://volcano.sh/en/docs/ installed on them.
.. code-block:: default
import kfp
from torchx import specs
from torchx.pipelines.kfp.adapter import resource_from_app
def pipeline() -> None:
# First we define our AppDef for the component, we set
echo_app = specs.AppDef(
name="test-dist",
roles=[
specs.Role(
name="dist-echo",
image="alpine",
entrypoint="/bin/echo",
args=["hello dist!"],
num_replicas=3,
),
],
)
# To convert the TorchX AppDef into a KFP container we use
# the resource_from_app adapter. This takes generates a KFP Kubernetes
# resource operator definition from the TorchX app def and instantiates it.
echo_container: kfp.dsl.BaseOp = resource_from_app(echo_app, queue="default")
To generate the pipeline definition file we need to call into the KFP compiler
with our pipeline function.
.. code-block:: default
kfp.compiler.Compiler().compile(
pipeline_func=pipeline,
package_path="pipeline.yaml",
)
with open("pipeline.yaml", "rt") as f:
print(f.read())
Once this has all run you should have a pipeline file (typically
pipeline.yaml) that you can upload to your KFP cluster via the UI or
a kfp.Client.
See the
`KFP SDK Examples `_
for more info on launching KFP pipelines.
See the :ref:`examples_pipelines/kfp/advanced_pipeline:Advanced KubeFlow Pipelines Example` for how to chain multiple
components together and use builtin components.
.. code-block:: default
# sphinx_gallery_thumbnail_path = '_static/img/gallery-kfp.png'
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 0.000 seconds)
.. _sphx_glr_download_examples_pipelines_kfp_dist_pipeline.py:
.. only :: html
.. container:: sphx-glr-footer
:class: sphx-glr-footer-example
.. container:: sphx-glr-download sphx-glr-download-python
:download:`Download Python source code: dist_pipeline.py `
.. container:: sphx-glr-download sphx-glr-download-jupyter
:download:`Download Jupyter notebook: dist_pipeline.ipynb `
.. only:: html
.. rst-class:: sphx-glr-signature
`Gallery generated by Sphinx-Gallery `_