There are three main implementation differences in the pC++ runtime system on a shared memory versus a distributed memory machine. The most obvious difference is that message communication is not required for accessing remote collection elements. All collection elements can be accessed using address pointers into the shared memory space. A related difference is that collection element tables need only be allocated once, since all processors can directly reference tables using their base address. However, it may be beneficial to have multiple copies of the tables to improve memory locality during Get_Element operations. In contrast, it is necessary to have a separate collection element table on each processor node in a distributed memory machine. The third difference is in how collections are allocated. In a distributed memory machine, the owner of elements of a collection allocates the space for those elements in the memory of the processor where it (the owner process) will execute. In a shared memory machine, the space for an entire collection is allocated out of shared memory space. Care must be taken in memory allocation to minimize the contention between local processor data (i.e., the data ``owned'' by a processor) and remote data. Achieving good memory locality in a shared memory system, using processor cache or local memory, will be important for good performance.