This paper proposes efficient algorithms for implementing multicast in heterogeneous workstation/PC clusters. Multicast is an important operation in many scientific and industrial applications. Its efficient implementation on distributed-memory machines plays a critical role in the performance of distributed-memory parallel computing applications. Our work distinguishs itself between others in two aspects: (1) In contrast to the blocking communication model used by existing works, we model communication on heterogeneous clusters more accurately by a non-blocking model, and design multicast algorithms that can fully exploit the advantage of non-blocking communication, (2) While existing works only solve single-node multicast problem, we propose efficient algorithms for implementing general multinode multicast (in which single-node multicast is a special case). Our simulation results demonstrate performance improvement of multicast by 20% to 160% compared to existing algorithms.