“…The data gatherer evaluates current and future CPU availability by connecting to an external Network Weather Service (NWS) [50], if present, or directly employing the hosts' descriptions. To assess network performances the scheduler adopts the NWS as well, if present, or a simple probing technique such as those in [42]. Finally, computational costs are computed as compTime(ds, s, p, h, t) = req (ds, s, p) per f (h)·avail(h, t) , where req(ds, s, p) represents the processing requirements (with respect to a reference host) of software s run with parameters p on datasets ds, per f (h) is the no-load performance of host h, and avail(h, t) is the fraction of processing cycles available on host h at time t; this process is based on task profiling and analytical benchmarking [21,28,39].…”