Comments (10)
Thanks @m-s-will for reporting this.
Can you please have a closer look into this? (e.g. which line is casing the segfault, what variable is not correctly set, etc.)
@eve-le-guillou have you run into this? any thoughts?
@pierre-guillou any thoughts?
thanks!
from ttk.
The issue for me was that some variables overflowed when the dataset was 2D.
I did the following in ImplicitTriangulation.cpp:
- changed
createMetaGrid
to check whether the globalBounds for the third dimension is 0:
std::array<int, 3> dimensions = {
static_cast<int>(
std::round((globalBounds[1] - globalBounds[0]) / this->spacing_[0]))
+ 1,
static_cast<int>(
std::round((globalBounds[3] - globalBounds[2]) / this->spacing_[1]))
+ 1,
static_cast<int>(
std::round((globalBounds[5] - globalBounds[4]) / this->spacing_[2]))
+ 1,
};
if (globalBounds[4] == 0 && globalBounds[5] == 0) {
// 2d
dimensions[2] = 1;
}
- changed
getVertLocalCoords
to only remove local grid offset for the third dimension if dimensionality is 3
/ local vertex coordinates
p[0] -= this->localGridOffset_[0];
p[1] -= this->localGridOffset_[1];
if (this->dimensionality_ == 3)
p[2] -= this->localGridOffset_[2];
With the above nothing crashes and seems to work as it should when comparing to serial results.
from ttk.
On further investigation, the crash appears here, and only if there are more than 2 ranks:
So it probably has something to do with the neighborhood computation when you have multiple neighbors.
from ttk.
@eve-le-guillou can you reproduce the issue? could you try out @emmwel's fix?
from ttk.
Hello everyone!
I have reproduced the issue on my laptop (2D Wavelet + ScalarFieldSmoother on 4 MPI processes). I get a segfault a bit earlier, at
Here the variable cellRank
holds the value -1
. Sadly, what @emmwel proposed does not seem to fix this issue.
After looking at what I've coded for the on-the-fly cell rank computation, I noticed that the neighborCellBBoxes
overlap in a weird fashion. Those are computed through the localBBox
reference and then exchanged between neighbors.
The culprit seem to be the call to triangleToPosition2d
at
When comparing triangleToPosition2d
to tetrahedronToPosition
, there's a divide by 2 missing in the former (a divide by 6 in the latter). Inserting a p[0] /= 2;
at line 3118 seem to fix the issue.
Does this fixes the crash for you?
Pierre
from ttk.
Adding the division fixed the problem for me, however while testing it I found another issue, when forcing an explicit Triangulation by using Tetrahedralize beforehand. This leads to an endless loop in exchangeDistributedInternal
(called from preconditionDistributedEdges
, doIter
doesn't seem to stay false, if we force the loop to finish after a few steps, the rest of the pipeline runs correctly, so the edges were preconditioned correctly), in 2D and 3D. I will investigate this further and maybe create another issue, this one seems fixed.
@emmwel does this fix work for you?
from ttk.
Adding @pierre-guillou's fix worked for the ScalarFieldSmoother, but for the IntegralLines and our own filters I still need my own fix for the filters to work.
from ttk.
It turns out that the problem with IntegralLines and our filters had different sources, so the 2D problem should be fixed with the additional division.
from ttk.
thanks a lot @pierre-guillou for the one-liner hot fix :)
would you mind opening a PR for that?
(I can take care of that if you prefer)
from ttk.
@m-s-will regarding the explicit triangulation, this is not something we have tested much.
but that should definitely not be buggy as you report.
that'd be great if you could open a separate, detailed issue for that.
thanks!
from ttk.
Related Issues (20)
- Intepretation of Persistence Curve Results HOT 2
- compile error HOT 1
- About ccache and cache storage HOT 5
- Could not find BettiNumbers module in source listed as a module as per the documentation HOT 2
- [MPI] The `smooth` method of ScalarFieldSmoother only works for scalar field when using MPI HOT 2
- MergeTreeDistanceMatrix & MatrixToHeatMap: Size changes in input MultiBlock lead to crash. HOT 1
- Non-deterministic, incorrect computation by FTM with a large number of cores HOT 6
- Windows VS 2017 build HOT 2
- Please add installation instructions for FreeBSD HOT 1
- Build fails on i386: cannot initialize a parameter of type 'const ttk::LongSimplexId *' (aka 'const long long *') with an lvalue of type 'vtkIdType *' (aka 'int *')
- [MPI] Endless loop when using ExplicitTriangulation in 2D HOT 4
- TTK_ENABLE_FTM_TREE_PROCESS_SPEED set to ON leads to error
- Various bugs with the merge tree states HOT 5
- Incorrect return type for ttkMorseSmaleComplex::ReturnSaddleConnectors
- Compile warning when building without graphviz HOT 2
- [PersitenceDiagramClustering] Missing features with infinite persistence in some barycenters HOT 2
- Undefined Behaviour in MorseSmaleQuadrangulation
- Unexpected behavior from Merge and Contour Tree (FTM) HOT 1
- [TTK 1.2 + Paraview 5.11.1] Infinite density in CSP computed for the tooth dataset HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ttk.