Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[sumo-user] Multiple TraCI calls for multiprocessing

Dear community,

I am attempting to run multiple parallel processes using multiprocessing along with Optuna for hyperparameter optimization. While each individual run executes correctly, I am encountering an issue where traci fails to connect to SUMO when running in parallel (via n_jobs > 1).

To manage separate instances, I ensure each process uses a different TCP port by calling a get_free_port() function (see snippet below), and I pass this port into my function, which initializes the SUMO simulation and connects via traci.

def get_free_port() -> int:
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.bind(('', 0))
        return s.getsockname()[1]

Despite assigning unique ports to each trial, the subprocesses fail to establish a connection to SUMO. The error typically occurs at the point where traci tries to connect.

I'm using:

  • multiprocessing.set_start_method("spawn", force=True)

  • Separate ports for each run

  • Latest SUMO version

Do you have any insight into what might be causing traci to fail under parallel execution? Are there known issues or best practices for handling multiple simultaneous SUMO instances?

Any guidance or suggestions would be greatly appreciated.

Thanks and regards,
Rohan

Back to the top