DPC ++ Accept the неконфиртируемого буфера размера или получить доступ к указателю общей памяти в классе с помощью MPIC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 DPC ++ Accept the неконфиртируемого буфера размера или получить доступ к указателю общей памяти в классе с помощью MPI

Сообщение Anonymous »

Я пытаюсь разработать код на основе MPI и DPC ++ для крупномасштабного моделирования. Проблема может быть обобщена как: я хочу объявить размер данных, распределить память данных внутри моего класса конструктора, а затем попытаться использовать их в функциях внутри моего класса. Затем я понимаю, что я должен предоставить размер константа в буфере, если я хочу использовать аксессуар, но MPI делает множество разных размеров на каждом ранге. Затем я обнаружил, что также невозможно использовать общую память, потому что в DPC ++ я не могу использовать этот указатель, и массив или матрица, выделенная в классе, не могут использоваться в подфункции. Я в замешательстве и понятия не имею об этом. < /P>
Код такой: < /p>
class abc{
queue Q{};
std::array e;
std::arrayt;
abc(){
ua = malloc_shared(local_size, this->Q);
}

void b();

}

void abc::b(){
for(int i=0;iQ.submit([&](handler &h)
{ accessor eee{ee, h, read_only};
accessor ttt{tt, h, read_only};

h.parallel_for(range{size1, size2, size3}, [=](id idx)
double eu=ua[id[0]];
int aa=eee[id[1]];
double cc=ttt[id[2]];
}

}
< /code>
e и t можно получить доступ, потому что они имеют размер const, и я могу использовать буфер. Но у UA есть локальный размер, и это зависит от MPI, поэтому я не могу использовать буфер, и общая память также не может использоваться в субфункции.
Любая помощь с этим?

Подробнее здесь: https://stackoverflow.com/questions/720 ... pointer-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»