Skip to content

Add UCX-Py testing - #7412

Closed
pentschev wants to merge 4 commits into
openucx:masterfrom
pentschev:ucx-py-ci
Closed

Add UCX-Py testing#7412
pentschev wants to merge 4 commits into
openucx:masterfrom
pentschev:ucx-py-ci

Conversation

@pentschev

@pentschev pentschev commented Sep 15, 2021

Copy link
Copy Markdown
Contributor

What

Add recipe to run UCX-Py tests.

Why ?

We intend to completely upstream UCX-Py to the mainline UCX repository over the next few months. By beginning to test it here, we can ensure a smooth transition.

@pentschev

Copy link
Copy Markdown
Contributor Author

@petro-rudenko could you help me validate I'm not missing anything?

@quasiben @yosefe FYI

@ghost

ghost commented Sep 15, 2021

Copy link
Copy Markdown

Can one of the admins verify this patch?

@shamisp

shamisp commented Sep 15, 2021

Copy link
Copy Markdown
Contributor

Thanks for doing this !

Comment thread buildlib/dockers/conda.Dockerfile
Comment thread buildlib/pr/main.yml Outdated
Comment thread buildlib/pr/main.yml Outdated
- stage: ucx-py
dependsOn: [Static_check]
jobs:
- template: ucx-py/ucx-py-test.yml

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should use "python" naming in the context of UCX python bindings (not "ucx-py")
it would be consistent with "java" and "go"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But java bindings are named jucx: https://github.com/openucx/ucx/tree/master/buildlib/jucx . I can rename that if you prefer, it's just that ucx-py is the package name we use currently.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer to use this opportunity to rename it to "python", as it becomes part of UCX, also to avoid confusion with the already existing ucx-py project. Re java - moving forward may we will rename it as well, but will be good to start with consistent naming for all bindings.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, for now I renamed the directory/files to python in 41155ea, but the package will continue to be named ucx-py, we will need to discuss how to better address renaming the package.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's also rename lines 180, 183, 188 and other places from "ucx-py" to python , and just keep the package name "ucx-py"

source buildlib/az-helpers.sh
az_init_modules
try_load_cuda_env
set -eE

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we set -xeE in line 18?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know, we can try, but this was copied from jucx that does it in that order:

set -x
source buildlib/az-helpers.sh
az_init_modules
try_load_cuda_env
res=0
az_module_load dev/mvn
res=$(($res+$?))
az_module_load dev/jdk-${JAVA_VERSION}
res=$(($res+$?))
if [ $res -ne 0 ]; then
exit 0;
fi
set -eE

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread buildlib/pr/ucx-py/ucx-py-test.yml Outdated
Comment thread buildlib/pr/ucx-py/ucx-py-test.yml Outdated
source buildlib/az-helpers.sh
az_init_modules
try_load_cuda_env
set -eE

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we set -xeE in line 30?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as in #7412 (comment)

Comment thread buildlib/pr/ucx-py/ucx-py-test.yml Outdated
Comment thread buildlib/pr/ucx-py/ucx-py-test.yml Outdated

@yosefe yosefe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overall LGTM, besides

  • pipeline does not really run - need to check why
  • "ucx-py" -> "python" in several places
  • "set -xeE" once in several places

Comment thread buildlib/pr/python/python-test.yml Outdated
Comment thread buildlib/pr/python/python-test.yml Outdated
@yosefe

yosefe commented Sep 16, 2021

Copy link
Copy Markdown
Member

@pentschev

Copy link
Copy Markdown
Contributor Author

What should be the module names for commits here, AZP or something else?

@yosefe

yosefe commented Sep 16, 2021

Copy link
Copy Markdown
Member

What should be the module names for commits here, AZP or something else?

AZP/PY: ...

@pentschev

Copy link
Copy Markdown
Contributor Author

Hmm, I'm not sure why codestyle commit title is still failing, is it because of the merge commit? Do I need to get rid of it as well?

@yosefe

yosefe commented Sep 16, 2021

Copy link
Copy Markdown
Member

Hmm, I'm not sure why codestyle commit title is still failing, is it because of the merge commit? Do I need to get rid of it as well?

It's probably because of missing semicolon in 76e6b75

@yosefe

yosefe commented Sep 16, 2021

Copy link
Copy Markdown
Member

BTW, better squash all those to single commit now (since needed to force push anyway in order to fix commit titles)

@pentschev
pentschev force-pushed the ucx-py-ci branch 4 times, most recently from 27f8b33 to cfa3e50 Compare September 16, 2021 22:24
@pentschev

Copy link
Copy Markdown
Contributor Author

There we go, nothing that half an hour fighting git rebase won't do...

@pentschev

Copy link
Copy Markdown
Contributor Author

The Python test seems to point out to be failing because it's missing gpuci_logger, and that's part of the conda docker image. This makes me think that for some reason the Python build is not picking up the correct container. I couldn't find any mention in the logs as to what docker container is being used, is it possible to verify that the right container is picked?

@yosefe

yosefe commented Sep 17, 2021

Copy link
Copy Markdown
Member

The Python test seems to point out to be failing because it's missing gpuci_logger, and that's part of the conda docker image. This makes me think that for some reason the Python build is not picking up the correct container. I couldn't find any mention in the logs as to what docker container is being used, is it possible to verify that the right container is picked?

Looks like it doesn't run in a container at all: the step : "Initialize containers" is missing
image

Looks like you passed the container as a parameter, but not really using it

@pentschev

pentschev commented Sep 17, 2021

Copy link
Copy Markdown
Contributor Author

Looks like it doesn't run in a container at all: the step : "Initialize containers" is missing

Do we have an example of how to do that somewhere? I thought https://github.com/openucx/ucx/pull/7412/files#diff-a467360eb428ca6bcb03d8b3b0f3f0d7f10aa1a9a1c11f23d55bffdb9a5be05fR187 should be doing that, no?

@pentschev

Copy link
Copy Markdown
Contributor Author

Looks like it doesn't run in a container at all: the step : "Initialize containers" is missing

Do we have an example of how to do that somewhere? I thought https://github.com/openucx/ucx/pull/7412/files#diff-a467360eb428ca6bcb03d8b3b0f3f0d7f10aa1a9a1c11f23d55bffdb9a5be05fR187 should be doing that, no?

Or perhaps I have to do it in the job yaml file too, as in

container: fedora
?

@yosefe

yosefe commented Sep 17, 2021

Copy link
Copy Markdown
Member

Or perhaps I have to do it in the job yaml file too, as in

Yes

@pentschev

Copy link
Copy Markdown
Contributor Author

It seems now we're running into different errors, seemingly it can't reach the docker image server:

Starting: Initialize containers
/usr/bin/docker version --format '{{.Server.APIVersion}}'
'1.41'
Docker daemon API version: '1.41'
/usr/bin/docker version --format '{{.Client.APIVersion}}'
'1.41'
Docker client API version: '1.41'
/usr/bin/docker ps --all --quiet --no-trunc --filter "label=fad461"
/usr/bin/docker network prune --force --filter "label=fad461"
/usr/bin/docker pull rdmz-harbor.rdmz.labs.mlnx/ucx/conda
Error response from daemon: Get "https://rdmz-harbor.rdmz.labs.mlnx/v2/": dial tcp 10.224.1.1:443: connect: connection refused
Using default tag: latest
##[warning]Docker pull failed with exit code 1, back off 7.605 seconds before retry.
/usr/bin/docker pull rdmz-harbor.rdmz.labs.mlnx/ucx/conda
Using default tag: latest
Error response from daemon: Get "https://rdmz-harbor.rdmz.labs.mlnx/v2/": dial tcp 10.224.1.1:443: connect: connection refused
##[warning]Docker pull failed with exit code 1, back off 4.264 seconds before retry.
/usr/bin/docker pull rdmz-harbor.rdmz.labs.mlnx/ucx/conda
Using default tag: latest
Error response from daemon: Get "https://rdmz-harbor.rdmz.labs.mlnx/v2/": dial tcp 10.224.1.1:443: connect: connection refused
##[error]Docker pull failed with exit code 1
Finishing: Initialize containers

Perhaps some network instability?

@yosefe

yosefe commented Sep 17, 2021

Copy link
Copy Markdown
Member

Perhaps some network instability?

@avildema WDYT?

@avildema

avildema commented Sep 20, 2021

Copy link
Copy Markdown
Contributor

Perhaps some network instability?

@avildema WDYT?

No , It's error in pipeline, Need to set correct tag for docker

Comment thread buildlib/pr/main.yml
image: rdmz-harbor.rdmz.labs.mlnx/ucx/fedora34:2
options: -v /hpc/local:/hpc/local -v /auto/sw_tools:/auto/sw_tools
- container: conda
image: rdmz-harbor.rdmz.labs.mlnx/ucx/conda

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please set correct tag for docker

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the correct tag here? I don't set it anywhere and believe this is done when building the Docker container, I don't know where that's handled but it doesn't seem to be from the UCX code repo.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you should build and push docker to hardor , when you push docker you set tag for your image

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think I have access to that network. Could someone from your team please do it?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@avildema can you pls assist with pushing the docker image to harbor?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, it seems that network is indeed reachable from part of the network I'm connected to. I don't have access to the machine nevertheless, so if you prefer we can sync on how I can get access to it so I can build the image.

Comment thread buildlib/pr/main.yml Outdated
- template: python/python-test.yml
parameters:
name: new
demands: ucx_new -equals yes

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make sure that docker installed for new host

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also don't know who should handle this.

Comment thread buildlib/pr/main.yml Outdated
Comment on lines +186 to +192
demands: ucx_new -equals yes
container: conda
- template: python/python-test.yml
parameters:
name: gpu
demands: ucx_gpu -equals yes
container: conda

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pentschev for this PR, please run only with this:
demands: ucx_docker -equals yes
otherwise, you would either run on a machine that does not run a docker daemon (ucx_new) or on a machine that already runs ucx bare-metal (ucx_gpu). Currently , until we fix the issue, running a docker test on the same machine as the bare metal test will cause some bare metal tests to fail because of using the temporary docker bridge interface.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll update it. Does ucx_docker have GPU(s)?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unfortunately no, but should still be able to run ucx-py right?
let's add gpu dimension in next or after fixing the above issue

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Barely, I think, I don't recall us every running on non-GPU machines.. Our main focus is indeed GPUs, so for a first pass it's ok, but we really need GPU support for any reasonable UCX-Py coverage.

@yosefe

yosefe commented Feb 3, 2022

Copy link
Copy Markdown
Member

@pentschev FYI now that we merged #7212, we are running CI GPU tests in docker containers; and issue #7412 (comment) is fixed by #7873
So we should be able to run UCX-py on "ucx_gpu" label

@pentschev

Copy link
Copy Markdown
Contributor Author

Thanks @yosefe for the ping. I'll be out next week but will follow-up here on the week after.

@gleon99

gleon99 commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Hi @pentschev - we're cleaning up the UCX PR backlog and plan to close this PR in 7 days. Please let us know if you'd like to keep it open.

@pentschev

Copy link
Copy Markdown
Contributor Author

Thanks for the ping @gleon99 . This is superseded by #11473 so no reason to keep it open. Closing.

@pentschev pentschev closed this Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants