diff --git a/__main__.py b/__main__.py
index bd8360a9a899ff32b740647f4a995fd2eac5db89..b4b32def3c57c3864965c5f4e6393f483f491b77 100755
--- a/__main__.py
+++ b/__main__.py
@@ -124,6 +124,11 @@ def main():
     parser.add_argument(
         "--num-threads", type=int, default=1, help="number of threads to run tests in"
     )
+    parser.add_argument(
+        "--run-id",
+        default="",
+        help="Id for this run (prepended to docker containers & networks) (useful for running two versions of the test suite in parallel)",
+    )
     parser.add_argument(
         "--port-offset", type=int, default=1000, help="port offset for each test"
     )
@@ -177,7 +182,7 @@ def main():
     if args.num_threads == 1:
         print("Running tests sequentially")
         for test in TEST_SET:
-            if not run_test(test, gid="0", port_offset=0):
+            if not run_test(test, gid=f"{args.run_id}0", port_offset=0):
                 if not args.run_all:
                     print("--run-all not set, stopping at first failure")
                     break
@@ -186,7 +191,7 @@ def main():
         pool = ThreadPool(processes=args.num_threads)
         pool.map(
             lambda a: run_test(
-                a[1], gid=f"{a[0]}", port_offset=a[0] * args.port_offset
+                a[1], gid=f"{args.run_id}{a[0]}", port_offset=a[0] * args.port_offset
             ),
             enumerate(TEST_SET),
         )