As the object of this project is to develop a compiler optimization tool, namely CASS, that provides facilities for automatic partitioning and scheduling of parallel programs on distributed memory architectures, we have so far developed two efficient clustering and scheduling algorithms, namely CASS1 (without task duplication) and CASS2 (with task duplication). Experimental results have been obtained, showing that both of our algorithms have better performance than previous best known algorithms.