diatomic / tess2

Parallel Delaunay and Voronoi Tessellation and Density Estimation
Other
27 stars 7 forks source link

out-of-core bug #7

Open wgq-iapcm opened 2 years ago

wgq-iapcm commented 2 years ago

When the number of total blocks is greater than the number of processes and the number of blocks keeping in memory is less than the number of local blocks, an error is thrown for sending and receiving data between blocks. I have tried to run examples/pread-Voronoi in the out-of-core mode. Here is the input parameters in PREAD_VORONOI. procs=2 infile=./unit-cube.h5 opts="-m 1 -b 4" However, in the out-of-core mode, the redistribute() function in src/tess-regular.cpp which sorts and redistributes points in blocks threw an exception. The print information is as follows. Saving block gid 0, points 32768 Saving block gid 2, points 32768 ---------round=0------------------- gid 1, points 32768 gid 3, points 32768 [1] Sent 16424 points to [0] [3] Sent 16315 points to [2] Saving block gid 3, points 16453 Saving block gid 1, points 16344 Loading block gid 2, points 32768 Loading block gid 0, points 32768 gid 2, srp.in_link().size=0, srp.incoming()->size()=0 gid 0, srp.in_link().size=0, srp.incoming()->size()=0

It seems that communication can only occur between blocks in memory. The blocks in storage (i.e. gid 0 and gid 2) cannot dequeue data that is enqueued by the blocks in memory.

I would be very grateful if you could take a moment to fix this bug.