Replies: 4 comments 8 replies
-
|
Thanks for trying this. However, I don't think this can work correctly/efficiently. Certainly, making However, by removing the When @danieldeidda and I discussed multi-threading SPECTUB previously, we thought it'd need either major restruction of the original SPECTUB code (which we're not so eager to do...), or using multi-threading inside the weight calculation. @danieldeidda started #460 for this, but we ran out of time/steam. Happy to discuss this further! |
Beta Was this translation helpful? Give feedback.
-
I am a bit worried that there is any change in voxel values to be honest. These do look small but what if they are data dependent or if they increase with iterations/ Also what are the whites? can't understand from the color scale |
Beta Was this translation helpful? Give feedback.
-
|
Thanks Daniel for his availability, Here is the document that I showed today, which records the changes and performance tests that we have done prior to today's meeting. And here is a summary for today's discussion.
|
Beta Was this translation helpful? Give feedback.
-
|
Hi all, sorry for the delay in pushing the update to STIR. we are currently facing a minor issue that could use some help with . When running the parallelized OSMAPOSL in STIR , the reconstruction completes and produces the reconstructed image as expected but the program does not terminate immediately. Instead, it remains active while slowly releasing cached memory. For now, we simply replace EXIT_SUCCESS with _exit(0); to end the code, which is acceptable for our internal use because the output is already generated anyway. If we plan to contribute this parallelization feature back to the STIR branch, i think its better to resolve the slow memory release issue. After investigation, we notice that problem could be due to releasing memory of cache_collection The slow memory release can be reproduced by running memory intensive OSMAPOSL with parallelization on, if you put the following code in the destructor function of ProjMatrixByBinSPECTUB I have tried many ways to release memory of cache_collection but none seems to do the job. |
Beta Was this translation helpful? Give feedback.



Uh oh!
There was an error while loading. Please reload this page.
-
Hello STIR community,
I have been working on enabling OpenMP parallelization in the SPECT UB module and would like to share my changes, along with my current results. I’d appreciate any feedback on whether my implementation introduces any potential issues.
First, I removed the omp critical in this line to allow parallelization
STIR/src/recon_buildblock/ProjMatrixByBinSPECTUB.cxx
Lines 897 to 906 in 42aebde
Secondly , I declared two new variables ,
local_wmandlocal_wmh, at the beginning ofProjMatrixByBinSPECTUB::compute_one_subset. Then, I replace all thethis->wmandthis->wmhwithlocal_wmandlocal_wmhin theProjMatrixByBinSPECTUB::compute_one_subset. Since the declaration is a bit lengthy, I will show if requested.I was testing the implementation by running OSMAPOSL, and the computational time does decrease when using 2 and 4 threads. The resulting reconstructed images do show some differences between 1 thread and multi-threads, primarily in regions with higher numerical values, but the differences are relatively small (~1e-5). Here I uploaded a slice of the difference

Do you think the approach to parallelizing SPECTUB seem reasonable?
Thanks in advance,
Jowett
Beta Was this translation helpful? Give feedback.
All reactions