Связанный вопрос: Этот
Я использую пространственную сетку, которая потенциально может стать большой (10 ^ 6 узлов) или даже больше. Мне регулярно придется выполнять операции смещения (например, частицу из узла в другой). Я не силен в информатике, но начинаю понимать понятия кэш-строк и пространственной локальности, хотя еще не очень хорошо. Итак, я колебался, предпочтительнее ли использовать 2D-массив (и если да, то какой? Я бы предпочел пока избегать бустинга, но, возможно, я свяжу его позже) и индексировать смещение, например, так:
Массив[i][j] -> Массив[i-1][j+2]
или, с одномерным массивом, если NX является «эквивалентным» количеством столбцов:
Массив[i*NX+j] -> Массив[(i-1)*NX+j+2]
Зная, что это будет сделано почти миллион раз за итерацию, а также почти миллион итераций.