Представьте, что у меня есть структура, содержащая набор переменных, описывающих объект, который в моем случае является сеткой. Мне было интересно, если у меня есть функция, которая использует только подмножество сетки, есть ли какие-либо различия в производительности в двух вариантах функций computational_kernel
ниже. Ядра одинаковы, за исключением того, что то, в которое передается структура, должно извлекать itot
, jtot
и ktot
из структуры перед выполнением тяжелых вычислений.
struct Grid
{
int itot;
int jtot;
int ktot;
int not_used_in_kernel1;
int not_used_in_kernel2;
int not_used_in_kernel3;
int not_used_in_kernel4;
}
Grid grid;
// Code that initializes the grid values...
// Variant 1
computational_kernel(double* array1, double* array2,
const int itot, const int jtot, const int ktot);
// Variant 2
computational_kernel(double* array1, double* array2,
const Grid& grid);