Application of heuristic and metaheuristics to the bi-objective task scheduling problem on heterogeneous distributed computing systems