Fix segfaults. Currently wrong results, both with and without MPI.

This commit is contained in:
Anders Johansson
2024-08-24 15:39:11 -06:00
parent e1f59e95c5
commit 43b3bf5bd5
2 changed files with 7 additions and 2 deletions

View File

@ -273,7 +273,6 @@ int AtomVecKokkos::pack_comm_direct(const int &n, const DAT::tdual_int_2d &list,
const DAT::tdual_xfloat_2d &buf,
const DAT::tdual_int_1d &k_self_flags)
{
error->all(FLERR, "KOKKOS: pack_comm_direct called\n");
if (lmp->kokkos->forward_comm_on_host) {
atomKK->sync(Host,X_MASK);
if (domain->triclinic) {

View File

@ -110,7 +110,6 @@ void CommBrickDirectKokkos::setup()
void CommBrickDirectKokkos::forward_comm(int dummy)
{
error->all(FLERR, "cbdk: forward_comm\n");
int forward_comm_classic = 0;
int forward_comm_on_host = 0;
@ -184,11 +183,13 @@ void CommBrickDirectKokkos::forward_comm_device()
// send all owned atoms to receiving procs
// except for self copies
offset = 0;
for (int iswap = 0; iswap < ndirect; iswap++) {
if (proc_direct[iswap] == me) continue;
if (sendnum_direct[iswap]) {
int n = sendnum_direct[iswap]*atomKK->avecKK->size_forward;
MPI_Send(k_buf_send_direct.view<DeviceType>().data() + offset,n,MPI_DOUBLE,proc_direct[iswap],sendtag[iswap],world);
offset += n; // TODO: check
}
}
@ -239,6 +240,11 @@ void CommBrickDirectKokkos::borders()
if (k_sendatoms_list.d_view.extent(1) < maxsend)
MemKK::realloc_kokkos(k_sendatoms_list,"comm_direct:sendatoms_list",maxlist,maxsend);
if(k_sendnum_scan_direct.extent(0) < nswap) {
MemKK::realloc_kokkos(k_sendnum_scan_direct,"comm_direct:sendnum_scan",nswap);
MemKK::realloc_kokkos(k_firstrecv_direct,"comm_direct:firstrecv",nswap);
}
for (int ilist = 0; ilist < maxlist; ilist++) {
const int nsend = sendnum_list[ilist];
for (int i = 0; i < nsend; i++)