The multiprocessor scheduling problem with communication delays that we consider in this paper consists of finding a static schedule of an arbitrary task graph onto a homogeneous multiprocessor system, such that the total execution time (i.e. the time when all tasks are completed) is minimum. The task graph contains precedence relations as well as communication delays (or data transferring time) between tasks if they are executed on different processors. The multiprocessor architecture is assumed to contain identical processors connected in an arbitrary way, which is defined by a symmetric matrix containing minimum distances between every two processors. The solution is represented by a feasible permutation of tasks. In order to obtain the objective function value (i.e. schedule length, makespan), the feasible permutation has to be transformed into the actual schedule by the use of some heuristic method. For solving this NP-hard problem, we develop basic tabu search and variable neighborhood search heuristics, where various types of reduced Or-opt-like neighborhood structures are used for local search. A genetic search approach based on the same solution space is also developed. Comparative computational results on random graphs with up to 500 tasks and 8 processors are reported. On average, it appears that variable neighborhood search outperforms the other metaheuristics. In addition, a detailed performance analysis of both the proposed solution representation and heuristic methods is presented.