I did some work with CM in early 1990s. Parallel programming ("fundamental algorithms") was based on using a special version of C language (C*) with a bit of parallel syntax. (Other groups worked on parallel compilers which could support automatic parallelization of Fortran programs.) As usual, the real trick was not to use this or that language, but to develop interesting algorithms, specific for the parallel environment. So the effort was in developing the algorithms first, then mapping them on the underlying software platform. The latter was almost straightforward, partially because we took the platform into consideration when working on the algorithms.
We also used a Cray machines, do not remember the model numbers now, which were physically located on the other side of the country. Our CM-5 was just two floors below us; I looked at it several times, just to get a pleasant feeling.