(ray_start_regular)
| 8 | |
| 9 | |
| 10 | def test_timing(ray_start_regular): |
| 11 | @ray.remote |
| 12 | def empty_function(): |
| 13 | pass |
| 14 | |
| 15 | @ray.remote |
| 16 | def trivial_function(): |
| 17 | return 1 |
| 18 | |
| 19 | # Measure the time required to submit a remote task to the scheduler. |
| 20 | elapsed_times = [] |
| 21 | for _ in range(1000): |
| 22 | start_time = time.time() |
| 23 | empty_function.remote() |
| 24 | end_time = time.time() |
| 25 | elapsed_times.append(end_time - start_time) |
| 26 | elapsed_times = np.sort(elapsed_times) |
| 27 | average_elapsed_time = sum(elapsed_times) / 1000 |
| 28 | print("Time required to submit an empty function call:") |
| 29 | print(" Average: {}".format(average_elapsed_time)) |
| 30 | print(" 90th percentile: {}".format(elapsed_times[900])) |
| 31 | print(" 99th percentile: {}".format(elapsed_times[990])) |
| 32 | print(" worst: {}".format(elapsed_times[999])) |
| 33 | # average_elapsed_time should be about 0.00038. |
| 34 | |
| 35 | # Measure the time required to submit a remote task to the scheduler |
| 36 | # (where the remote task returns one value). |
| 37 | elapsed_times = [] |
| 38 | for _ in range(1000): |
| 39 | start_time = time.time() |
| 40 | trivial_function.remote() |
| 41 | end_time = time.time() |
| 42 | elapsed_times.append(end_time - start_time) |
| 43 | elapsed_times = np.sort(elapsed_times) |
| 44 | average_elapsed_time = sum(elapsed_times) / 1000 |
| 45 | print("Time required to submit a trivial function call:") |
| 46 | print(" Average: {}".format(average_elapsed_time)) |
| 47 | print(" 90th percentile: {}".format(elapsed_times[900])) |
| 48 | print(" 99th percentile: {}".format(elapsed_times[990])) |
| 49 | print(" worst: {}".format(elapsed_times[999])) |
| 50 | # average_elapsed_time should be about 0.001. |
| 51 | |
| 52 | # Measure the time required to submit a remote task to the scheduler |
| 53 | # and get the result. |
| 54 | elapsed_times = [] |
| 55 | for _ in range(1000): |
| 56 | start_time = time.time() |
| 57 | x = trivial_function.remote() |
| 58 | ray.get(x) |
| 59 | end_time = time.time() |
| 60 | elapsed_times.append(end_time - start_time) |
| 61 | elapsed_times = np.sort(elapsed_times) |
| 62 | average_elapsed_time = sum(elapsed_times) / 1000 |
| 63 | print("Time required to submit a trivial function call and get the result:") |
| 64 | print(" Average: {}".format(average_elapsed_time)) |
| 65 | print(" 90th percentile: {}".format(elapsed_times[900])) |
| 66 | print(" 99th percentile: {}".format(elapsed_times[990])) |
| 67 | print(" worst: {}".format(elapsed_times[999])) |
nothing calls this directly
no test coverage detected
searching dependent graphs…