Multi-objective task allocation in distributed computing systems by hybrid particle swarm optimization