You can address core-local memory, memory in another core, or main memory the same way - the difference is speed.
There's no cache, and you're responsible for avoiding race conditions in memory access yourself.