In a distributed computing system (I)CS), we need to allocate a number of modules to different processors for execution. It is desired to maximize the processor synergism in order to achieve various objectives, such as throughput maximization, reliability maximization, and cost minimization. There may also exist a set of system constraints related to memory and communication link capacity. The considered problem has been shown to be NP-hard. Most existing approaches for task allocation deal with a single objective only. This paper presents a multi-objective task allocation algorithm with presence of system constraints. The algorithm is based on the particle swarm optimization which is a new metaheuristic and has delivered many successful applications. We further devise a hybrid strategy for expediting the convergence process. We assess our algorithm by comparing to a genetic algorithm and a mathematical programming approach. The experimental results manifest that the proposed algorithm performs the best under different problem scales, task interaction densities, and network topologies.