Q: Sparse arrays on C++ AMP? Some context.
Every Entity in the simulation has a series of attributes. Each attribute has a local address, and a global address. The local address points to where the attribute is on the Entity's std::vector, and the global address is what other objects ping when they want to get access to that Entity's local address.
So if "Social" is held at global 5, I can send global 5 to the entity, and it would return its local address for "Social"
Currently, my architecture conforms quite well to a multithreaded CPU solution, but I plan on moving it to GPGPU.
As of right now, the way global address are stored is through clustering. 

But, this doesn't work very well on a GPU as you could imagine if I don't have a sparse array(I would have to store [3] on Node (0,1) which would ruin the entire purpose of this architecture)
Is there any way to have a sparse array similar to std::map with C++ AMP? Or am I stuck redesigning my architecture?
