Parallelize regression test running

Issue #400 new
Martin Sandve Alnæs created an issue

Demos are currently run through sequentially. This can be speed up with task parallelism. Done properly, the framework can be more robust w.r.t single demos hanging through timeouts of the demo processes.

I have written code for running a process with Popen with timeout.

Comments (11)

  1. Martin Sandve Alnæs reporter

    Attached a file with tests and code using Popen and threading to run a list of commands with single-job and total timeouts, a possible solution.

    A possibly better solution than using the full call_in_parallel function in here, is to only use the get_future_call function to run each single demo with a timeout from a pytest framework parallelized with xdist.

  2. Prof Garth Wells

    How about we run the Python regression tests through pytest, and the C++ regression tests through gtest. Each has a way to run in parallel.

  3. Martin Sandve Alnæs reporter

    The demos need to run as separate processes. I don't see why pytest can't be used to launch those processes.

  4. Prof Garth Wells

    With gtest, all cpp demos could be wrapped into one binary. We can run multiple version of the binary with flags indicating which demo(s) each instance should run.

  5. Prof Garth Wells

    Python unit tests can now in parallel with pytest-xdist (used on CircleCI). C++ unit tests are very fast, so little to gain from parallel execution.

    Big win would be running regression tests in parallel.

  6. Log in to comment