Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support parallel execution of tmt tests #2798

Open
thrix opened this issue Mar 27, 2024 · 2 comments
Open

Support parallel execution of tmt tests #2798

thrix opened this issue Mar 27, 2024 · 2 comments
Assignees
Labels
step | execute Stuff related to the execute step

Comments

@thrix
Copy link
Collaborator

thrix commented Mar 27, 2024

We now have a very beefy bare-metal (96 CPUs, 256Gi RAM) machine available for testing, and we would like to advise teams to use the beefy HW as much as possible. A common scenario for this machines will be teams running local VMs for their testing. Once they onboard to tmt including test metadata, they would want to run the tests in parallel.

For these cases, it seems it would be valuable if tmt would provide a way to parallelize test execution.
Note that currently one possible issue here is that each test run execution is run in the same test dir, teams have to implement workarounds like RHSecurityCompliance/contest@fd519da to workraound the problem.

@thrix thrix self-assigned this Mar 27, 2024
@thrix thrix added the step | execute Stuff related to the execute step label Mar 27, 2024
@comps
Copy link
Contributor

comps commented Mar 27, 2024

Note that the linked RHSecurityCompliance/contest@fd519da is functionally equivalent to

    rlPhaseStartSetup
        rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
        rlRun "pushd $TmpDir"
    rlPhaseEnd

    ...

    rlPhaseStartCleanup
        rlRun "popd"
        rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
    rlPhaseEnd

which most Beakerlib users are likely familiar with.

@LecrisUT
Copy link
Contributor

LecrisUT commented Apr 2, 2024

Related to #2755. Over there I point out that it can be disastrous in MPI tests if the inner test parallelization is not considered. I like ctest approach where you can define individual test's processor and other resources and then it queues accordingly, where the -j accounts both for test mpi parallelization and ctest workers combined. Tmt should have a similar interface.

Concrete numbers: 16h vs 30min

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
step | execute Stuff related to the execute step
Projects
None yet
Development

No branches or pull requests

3 participants