ray_cluster_perf.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. """This is the script for `ray clusterbenchmark`."""
  2. import time
  3. import numpy as np
  4. import ray
  5. from ray.cluster_utils import Cluster
  6. def main():
  7. cluster = Cluster(
  8. initialize_head=True,
  9. connect=True,
  10. head_node_args={"object_store_memory": 20 * 1024 * 1024 * 1024, "num_cpus": 16},
  11. )
  12. cluster.add_node(
  13. object_store_memory=20 * 1024 * 1024 * 1024, num_gpus=1, num_cpus=16
  14. )
  15. object_ref_list = []
  16. for i in range(0, 10):
  17. object_ref = ray.put(np.random.rand(1024 * 128, 1024))
  18. object_ref_list.append(object_ref)
  19. @ray.remote(num_gpus=1)
  20. def f(object_ref_list):
  21. diffs = []
  22. for object_ref in object_ref_list:
  23. before = time.time()
  24. ray.get(object_ref)
  25. after = time.time()
  26. diffs.append(after - before)
  27. time.sleep(1)
  28. return np.mean(diffs), np.std(diffs)
  29. time_diff, time_diff_std = ray.get(f.remote(object_ref_list))
  30. print(
  31. "latency to get an 1G object over network",
  32. round(time_diff, 2),
  33. "+-",
  34. round(time_diff_std, 2),
  35. )
  36. ray.shutdown()
  37. cluster.shutdown()
  38. if __name__ == "__main__":
  39. main()