docs: def _do_synchronise_jobs(walltime, machines):
      """ This returns a common reservation date for all the jobs.
  
      This reservation date is really only a hint and will be supplied to each
      oar server. Without this *common* reservation_date, one oar server can
      decide to postpone the start of the job while the other are already
      running. But this doens't prevent the start of a job on one site to drift
      (e.g because the machines need to be restarted.) But this shouldn't exceed
      few minutes.
      """
      offset = SYNCHRONISATION_OFFSET
      start = time.time() + offset
      _t = time.strptime(walltime, "%H:%M:%S")
      _walltime = _t.tm_hour * 3600 + _t.tm_min * 60 + _t.tm_sec
  
      # Compute the demand for each cluster
      demands = defaultdict(int)
      for machine in machines:
          cluster = machine["cluster"]
          demands[cluster] += machine["nodes"]
  
      # Early leave if only one cluster is there
      if len(list(demands.keys())) <= 1:
          logger.debug("Only one cluster detected: no synchronisation needed")
          return None
  
      clusters = clusters_sites_obj(list(demands.keys()))
  
      # Early leave if only one site is concerned
      sites = set(list(clusters.values()))
      if len(sites) <= 1:
          logger.debug("Only one site detected: no synchronisation needed")
          return None
  
      # Test the proposed reservation_date
      ok = True
      for cluster, nodes in demands.items():
          cluster_status = clusters[cluster].status.list()
          ok = ok and can_start_on_cluster(cluster_status.nodes,
                                           nodes,
                                           start,
                                           _walltime)
          if not ok:
              break
      if ok:
          # The proposed reservation_date fits
          logger.info("Reservation_date=%s (%s)" % (_date2h(start), sites))
          return start
  
      if start is None:
          raise EnosG5kSynchronisationError(sites)