# Run multiple tune jobs on one server

**URL:** <https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834>\
**Category:** Ray Tune\
**Created:** [February 11, 2021, 3:18am UTC](https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834 "2021-02-11T03:18:56Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![richardrl](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/richardrl/32/435_2.png) [@richardrl](https://discuss.ray.io/u/richardrl)\
**Post date:** [February 11, 2021, 3:18am UTC](https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834/1 "2021-02-11T03:18:56Z")

</div>

If I do:

`ray start --head`

Then I run my tune job.

It works one time.

But while that job is running, if I run another job it says:

`OSError: [Errno 98] Address already in use`

How can I run multiple tune jobs? My machine has plenty of extra resources

---

<div class="post-metadata">

**Author:** ![sangcho](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/sangcho/32/425_2.png) [@sangcho](https://discuss.ray.io/u/sangcho)\
**Post date:** [February 11, 2021, 3:24am UTC](https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834/2 "2021-02-11T03:24:23Z")

</div>

What do you mean by multiple jobs in this case? Did you run ray start --head again?

---

<div class="post-metadata">

**Author:** ![richardrl](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/richardrl/32/435_2.png) [@richardrl](https://discuss.ray.io/u/richardrl)\
**Post date:** [February 12, 2021, 12:18am UTC](https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834/3 "2021-02-12T00:18:39Z")

</div>

No I did not. I mean, run ray start once, run my training script (corresponds to a set of hyperparams). Then run my training script a second time with another set of hyperparams in a new terminal window @sangcho

---

<div class="post-metadata">

**Author:** ![sangcho](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/sangcho/32/425_2.png) [@sangcho](https://discuss.ray.io/u/sangcho)\
**Post date:** [February 12, 2021, 7:02am UTC](https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834/4 "2021-02-12T07:02:12Z")

</div>

Do you have a full stacktrace for the error?

---

<div class="post-metadata">

**Author:** ![richardrl](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/richardrl/32/435_2.png) [@richardrl](https://discuss.ray.io/u/richardrl)\
**Post date:** [February 19, 2021, 12:48am UTC](https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834/5 "2021-02-19T00:48:48Z")

</div>

@sangcho

```
Traceback (most recent call last):
  File "bandu/torch/train_ray_simple.py", line 841, in <module>
    tune_bandu(num_workers=args.num_workers, use_gpu=args.use_gpu) # If number of GPUs does not match the EC2 GPUs, we may get an error...
  File "bandu/torch/train_ray_simple.py", line 747, in tune_bandu
    queue_trials=True
  File "/home/richard/improbable/venvs/minimum_bandu_venv/lib/python3.6/site-packages/ray/tune/tune.py", line 377, in run
    metric=metric)
  File "/home/richard/improbable/venvs/minimum_bandu_venv/lib/python3.6/site-packages/ray/tune/trial_runner.py", line 140, in __init__
    self._server = TuneServer(self, self._server_port)
  File "/home/richard/improbable/venvs/minimum_bandu_venv/lib/python3.6/site-packages/ray/tune/web_server.py", line 243, in __init__
    self._server = HTTPServer(address, RunnerHandler(runner))
  File "/usr/lib/python3.6/socketserver.py", line 456, in __init__
    self.server_bind()
  File "/usr/lib/python3.6/http/server.py", line 136, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "/usr/lib/python3.6/socketserver.py", line 470, in server_bind
    self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
```

---

<div class="post-metadata">

**Author:** ![richardrl](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/richardrl/32/435_2.png) [@richardrl](https://discuss.ray.io/u/richardrl)\
**Post date:** [February 19, 2021, 1:11am UTC](https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834/6 "2021-02-19T01:11:03Z")

</div>

The solution is to change the port in tune.run(…). You can just randomize this port.

Thanks @rliaw @sangcho

---

<div class="post-metadata">

**Author:** ![richardrl](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/richardrl/32/435_2.png) [@richardrl](https://discuss.ray.io/u/richardrl)\
**Post date:** [February 19, 2021, 2:59am UTC](https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834/7 "2021-02-19T02:59:19Z")

</div>

Actually you can’t randomize the port. this happens:

```
2021-02-18 21:55:37,843 INFO web_server.py:242 -- Starting Tune Server...
500 response executing GraphQL.
{"error":"Error 1040: Too many connections"}

500 response executing GraphQL.
{"error":"Error 1040: Too many connections"}

500 response executing GraphQL.
{"error":"Error 1040: Too many connections"}
```

---

<div class="post-metadata">

**Author:** ![sangcho](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/sangcho/32/425_2.png) [@sangcho](https://discuss.ray.io/u/sangcho)\
**Post date:** [February 19, 2021, 8:25am UTC](https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834/8 "2021-02-19T08:25:21Z")

</div>

cc @rliaw Is this port confliction from Tuen?

---

<div class="post-metadata">

**Author:** ![rliaw](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/rliaw/32/24_2.png) [@rliaw](https://discuss.ray.io/u/rliaw)\
**Post date:** [February 19, 2021, 8:28am UTC](https://discuss.ray.io/t/run-multiple-tune-jobs-on-one-server/834/9 "2021-02-19T08:28:36Z")

</div>

> [@richardrl](#):
>
> ```auto
> 500 response executing GraphQL.
> 
> ```

This seems to be a Wandb error, not a Tune server error…
