This document discusses software for parallel programming, including parallel programming models, languages, compilers, and environments. It covers shared memory and message passing models, as well as data parallel programming. It also discusses language features that support parallelism, parallel language constructs, optimizing compilers for parallelism, and integrated parallel programming environments. Key topics are parallel debugging, performance monitoring, and program visualization tools. Representative parallel programming environments including Cray, Intel Paragon, and CM-5 software are also summarized.