-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MultiMetricMultiResolutionRegistration fails when SetNumberOfThreads is used #160
Comments
Hi @Svdvoort , Thanks for the report and nice reproducible test. I tried with Python 3.7, ITKElastix Could you please:
Thanks! |
Unfortunately, I'm not able to install itk-elastix 0.14.2. I'll see if I can find a system that I can test version 0.14.2, but since that would be a different system in any case that is perhaps not ideal. |
@Svdvoort thanks for testing and the feedback. It sounds like we have an issue similar to SuperElastix/elastix#714 |
Thanks for reporting this issue @Svdvoort, but sorry, I haven't been able to reproduce this issue so far. I just tried the equivalent in C++, using just the elastix C++ library (without ITKElastix):
Would you expect the segmentation fault to be reproducible by the C++ code above here? Honestly I only tried Windows/VS2019 Debug so far, but it seems to run fine. |
My C++ knowledge is a bit more limited, but from what I can tell this should indeed cause an issue. Could it be because of older libraries? The new Elastix and ITK-Elastix don't run on Ubuntu 18.04 anymore due to outdated C libraries, so perhaps that's the underlying issue? It might therefore be resolved on Ubuntu 20.04/ with the latest ITK-elastix (0.14.2) but I'm not able to test that currently. |
To give an update on this: I tried with Therefore I also tried running with This is on Ubuntu 18.04, with python 3.7.7 in a virtual environment, with itk-elastix installed through pip 22.3.1 edit: This might be an issue with itk-elastix 0.14.3. It seems that no matter what code I run using itk-elastix (even just loading a parameter map) it results in a segmentation fault. Using an older environment in which itk-elastix 0.14.1 is still available works fine. I've made a new issue about this #177 |
I've updated to Before after running the above script it instantly gave an error: Segmentation fault (core dumped) Now it does display a lot more output, but still ends up in the same error. The last few lines of output:
So it seems like the error occurs in the sampling of the gradients. |
Have the same behavior with itk-elastix 0.14.4 on macos. |
Issue still persists with |
To update on this status and hopefully focus in on the problem, here some extra information and tests. The problem still seems to persist, even when using the new Test environmentThe following examples and results have all been tested on Ubuntu 22.04.4, using Python 3.11.9. This has been tested with two versions of
In both cases the results were the same, so all results will only be shown once. Below the packages that are installed in the Python environment:
In the case of the pip install this also included Elastix tests
|
When using
MultiMetricMultiResolutionRegistration
with the object-oriented interface and usingSetNumberOfThreads
, ITKElastix will throw a segmentation fault when setting more than one thread.Code to test, this will result in a segmentation fault (based on the example here ).
Using python 3.7.7 and ITK-Elastix 0.14.1
The text was updated successfully, but these errors were encountered: