Following #680 which is related to processors, it would be good to reduce the number of memory kinds we have to the bare necessities, having applications rely on capability and affinity queries instead of some set features based on the KIND.
A good example of this is, instead of multiple SOCKET_MEM memories, have multiple SYSTEM memories that are bound to the various numa nodes, with their affinities reflected by their numa bindings.
Another example would be ZCMEM, which will eventually need to support NUMA affinities to specific GPU processors. In this case, we plan to expose multiple ZCMEM memories with stronger affinities to their associated GPUs rather than introduce a new kind.
This should make Realm internal logic much easier to work with, Realm-based libraries easier to compose and handle compatibility cases, and Realm applications much easier to develop.
Following #680 which is related to processors, it would be good to reduce the number of memory kinds we have to the bare necessities, having applications rely on capability and affinity queries instead of some set features based on the KIND.
A good example of this is, instead of multiple SOCKET_MEM memories, have multiple SYSTEM memories that are bound to the various numa nodes, with their affinities reflected by their numa bindings.
Another example would be ZCMEM, which will eventually need to support NUMA affinities to specific GPU processors. In this case, we plan to expose multiple ZCMEM memories with stronger affinities to their associated GPUs rather than introduce a new kind.
This should make Realm internal logic much easier to work with, Realm-based libraries easier to compose and handle compatibility cases, and Realm applications much easier to develop.