-
Notifications
You must be signed in to change notification settings - Fork 3
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
Infinite running time for v2.0.2 #9
Comments
Hello Sanghyun,
thank you very much for the report. Unfortunately I cannot test the software on any platform other than my PCs so any input about bugs you may find is very helpful and appreciated.
I'm almost sure that the error you are getting is due to a problem with the random generator leading to a never ending while loop. I've figured out that there is a small part of the code that might be endianness sensitive leading to a bug and I've just solved it.
Can you check where the program gets stuck by running perf or some other diagnostic tool? You can also run ctest in the build directory to perform some basic tests.
Can you also point me on what type of platforms are you running the software so I can further optimize for those?
For the moment I suggest you keep using v1.x. There are no changes in the logic from v1.x to v2.x but just some refactoring and some additions for low level simulation of the sipm. I don't expect different results if you compare the two versions' outputs.
I've just pushed new commits to the branch "dev" that include major performance improvements and bug fixes.
I'm currently testing it and I will tell you if it's safe to use as soon as possible.
Thank you again for pointing out those bugs! If you have other problems or you have any suggestions for particular use cases just contact me.
P.S. If you need to just produce some quick signal plot you can use the python version. It installs via pip and works basically the same way as the C++ one.
|
Hi @EdoPro98, thanks for the very detailed answer! As for the version, I'll stick to v1.2.4 for the moment as you suggested. Meanwhile, I ran a basic printout test on the s[i] = math::sqrt(-2 * log(z) * math::rec(z)); // it stops here!
s[i + 1] = s[i];
out[i] = u;
out[i + 1] = v;
}
for (uint32_t i = 0; i < n; ++i) {
out[i] = s[i] * out[i] * sigma + mu;
} and if I revert this part to v1.2.4 s[i] = log(z) / z;
out[i] = u;
s[i + 1] = s[i];
out[i + 1] = v;
}
for (uint32_t i = 0; i < n; ++i) {
out[i] = sqrt(-2 * s[i]) * (out[i] * sigma) + mu;
} the application ends normally - I'm not sure what |
Hello @SanghyunKo, The bug seems to be solved with this commit e84259e. Can you confirm that it is also solved for you? I also suggest that you use |
Thanks! The commit |
Running an event doesn't seem to end after updating the version to v2.0.2, I attach the minimal reproducible code for debug:
The above example gives infinite running time for v2.0.2 while it worked on v1.2.4. I've seen your note that the version v2.0.x is not necessarily backward compatible with v1.2.x, but I cannot figure out what could go wrong with the above example due to a lot of work done between the two versions. So I wonder whether you have any hints based on your experiences.
The text was updated successfully, but these errors were encountered: