Closed bommaritom closed 1 year ago
Hi Marco, Could you please give me some more information regarding the seg fault? Did you observe it in the C code? If so, which ICD iteration were you at when the seg fault occurs? Did you use a PC or a cluster node for the experiment?
Regards, Diyu
From: Marco Bommarito @.> Sent: Friday, January 13, 2023 1:54 PM To: cabouman/mbircone @.> Cc: Subscribed @.***> Subject: [cabouman/mbircone] Marco/dev (PR #114)
---- External Email: Use caution with attachments, links, or sharing data ----
I have implemented the updates exactly as discussed on Jan 12. The following changes are proposed.
Tested:
Will continue to update the above bullet points as I test more files.
Detailed changelog:
cone3D.py
mace.py
demo_mace4D.py
demo_mace4D_fast.py
Slides corresponding to changes:
Changelog Jan 13.pptxhttps://github.com/cabouman/mbircone/files/10414444/Changelog.Jan.13.pptx Detailed Changelog Jan 13.pptxhttps://github.com/cabouman/mbircone/files/10414464/Detailed.Changelog.Jan.13.pptx
You can view, comment on, or merge this pull request online at:
https://github.com/cabouman/mbircone/pull/114
Commit Summary
File Changes
(4 fileshttps://github.com/cabouman/mbircone/pull/114/files)
Patch Links:
— Reply to this email directly, view it on GitHubhttps://github.com/cabouman/mbircone/pull/114, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AB2Q7ODIWFTT6FI5CLESFXTWSGQHVANCNFSM6AAAAAAT2W4ENA. You are receiving this because you are subscribed to this thread.Message ID: @.***>
Hi Diyu,
The error occurred on marco/dev, but I was able to replicate it today on the master branch.
I ran demo_3D_shepp_logan.py on the master branch on my 2018 MacBook Air, running Mojave 10.14.6, with 8GB of RAM. The code ran the first two resolutions, and then threw a Segmentation Fault after 13 iterations on the full resolution. I was able to run the code successfully both before and after triggering this error, without having to change anything.
Here is the output for that final resolution:
Image parameters read:
x_0 = -3.200000e+01
y_0 = -3.200000e+01
z_0 = -3.200000e+01
N_x = 128
N_y = 128
N_z = 128
Delta_xy = 5.000000e-01
Delta_z = 5.000000e-01
j_xstart_roi = -1
j_ystart_roi = -1
j_zstart_roi = -1
j_xstop_roi = -1
j_ystop_roi = -1
j_zstop_roi = -1
Sinogram parameters read:
N_dv = 128,
N_dw = 128,
Delta_dv = 1.000000e+00,
Delta_dw = 1.000000e+00,
N_beta = 64,
u_s = -1.920000e+02,
u_r = 0.000000e+00,
v_r = 0.000000e+00,
u_d0 = 1.920000e+02,
v_d0 = -6.400000e+01,
w_d0 = -6.400000e+01,
(potentially uninitialized:)
weightScaler_value = -1.000000e+00,
Reconstruction parameters read:
proximal map mode = 0
q = 2.000000e+00
p = 1.200000e+00
T = 1.000000e-01
sigmaX = 7.176227e-03
bFace = 1.666667e-01
bEdge = -1.000000e+00
bVertex = -1.000000e+00
sigma_lambda = 1.000000e+00
is_positivity_constraint = 1
stopThresholdChange_pct = 2.000000e-02
stopThesholdRWFE_pct = 0.000000e+00
stopThesholdRUFE_pct = 0.000000e+00
MaxIterations = 100
relativeChangeMode = meanImage
relativeChangeScaler = 1.000000e-01
relativeChangePercentile = 9.990000e+01
N_G = 2
zipLineMode = 2
numVoxelsPerZiplineMax = 200
numVoxelsPerZipline = 128
numZiplines = 1
weightScaler_estimateMode = None
weightScaler_domain = spatiallyInvariant
weightScaler_value = 5.854110e-04
NHICD_Mode = off
NHICD_ThresholdAllVoxels_ErrorPercent = 8.000000e+01
NHICD_percentage = 1.500000e+01
NHICD_random = 2.000000e+01
verbosity = 1
isComputeCost = 1
************************** Iteration 0 (max. 100) **************************
* Cost = 4.5697095000e+06
* Rel. Update = 0.0000000000e+00 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 3.7374150753e+00 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 3.7374150753e+00 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 4.8192152753e-03 = 1/207.5026550293
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = 0.0000000000e+00
* time icd update = -6.2864284515e+01 s
* ratioUpdated = 0.0000000000e+00 %
* totalEquits = 0.0000000000e+00
******************************************************************************
************************** Iteration 1 (max. 100) **************************
* Cost = 6.9841562500e+05
* Rel. Update = 1.0759234428e+01 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 1.0170836449e+00 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 1.0170836449e+00 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 3.5690041841e-04 = 1/2801.9020996094
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = -5.6976913452e+01 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 1.0000000000e+00
******************************************************************************
************************** Iteration 2 (max. 100) **************************
* Cost = 4.0759975000e+05
* Rel. Update = 3.7160534859e+00 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 5.0743418932e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 5.0743418932e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 8.8836852228e-05 = 1/11256.5898437500
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = -5.1376419067e+01 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 2.0000000000e+00
******************************************************************************
************************** Iteration 3 (max. 100) **************************
* Cost = 3.2696290625e+05
* Rel. Update = 1.9008958340e+00 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 3.2929825783e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 3.2929825783e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 3.7412144593e-05 = 1/26729.2890625000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = -4.5984752655e+01 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 3.0000000000e+00
******************************************************************************
************************** Iteration 4 (max. 100) **************************
* Cost = 2.9387775000e+05
* Rel. Update = 1.1923358440e+00 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 2.4977116287e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 2.4977116287e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 2.1523768737e-05 = 1/46460.2656250000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = -3.7960006714e+01 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 4.0000000000e+00
******************************************************************************
************************** Iteration 5 (max. 100) **************************
* Cost = 2.7758109375e+05
* Rel. Update = 8.1949222088e-01 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 2.1028174460e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 2.1028174460e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 1.5255863218e-05 = 1/65548.5703125000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = -3.2097427368e+01 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 5.0000000000e+00
******************************************************************************
************************** Iteration 6 (max. 100) **************************
* Cost = 2.6880731250e+05
* Rel. Update = 5.8498156071e-01 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 1.8846336007e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 1.8846336007e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 1.2254273315e-05 = 1/81604.1875000000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = -2.6278533936e+01 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 6.0000000000e+00
******************************************************************************
************************** Iteration 7 (max. 100) **************************
* Cost = 2.6399109375e+05
* Rel. Update = 4.2172038555e-01 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 1.7572914064e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 1.7572914064e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 1.0654210200e-05 = 1/93859.6093750000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = -2.0731437683e+01 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 7.0000000000e+00
******************************************************************************
************************** Iteration 8 (max. 100) **************************
* Cost = 2.6138731250e+05
* Rel. Update = 3.0517080426e-01 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 1.6828529537e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 1.6828529537e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 9.7707079476e-06 = 1/102346.7265625000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = -1.4922370911e+01 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 8.0000000000e+00
******************************************************************************
************************** Iteration 9 (max. 100) **************************
* Cost = 2.5997075000e+05
* Rel. Update = 2.2439543903e-01 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 1.6364800930e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 1.6364800930e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 9.2396412583e-06 = 1/108229.3125000000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = -9.2769832611e+00 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 9.0000000000e+00
******************************************************************************
************************** Iteration 10 (max. 100) **************************
* Cost = 2.5918081250e+05
* Rel. Update = 1.6523006558e-01 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 1.6084817052e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 1.6084817052e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 8.9261848188e-06 = 1/112029.9453125000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = -2.6955559254e+00 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 1.0000000000e+01
******************************************************************************
************************** Iteration 11 (max. 100) **************************
* Cost = 2.5873615625e+05
* Rel. Update = 1.2248688936e-01 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 1.5910910070e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 1.5910910070e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 8.7342123152e-06 = 1/114492.2968750000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = 2.8624389172e+00 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 1.1000000000e+01
******************************************************************************
************************** Iteration 12 (max. 100) **************************
* Cost = 2.5847201562e+05
* Rel. Update = 9.2086933553e-02 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 1.5805520117e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 1.5805520117e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 8.6188902060e-06 = 1/116024.2187500000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = 7.7568502426e+00 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 1.2000000000e+01
******************************************************************************
************************** Iteration 13 (max. 100) **************************
* Cost = 2.5831706250e+05
* Rel. Update = 6.9389507174e-02 % (threshold = 1.9999999553e-02 %)
* RWFE = ||e||_W/||y||_W = 1.5739466250e-01 % (threshold = 0.0000000000e+00 %)
* RUFE = ||e|| / ||y|| = 1.5739466250e-01 % (threshold = 0.0000000000e+00 %)
* ----------------------------------------------------------------------------
* 1/M ||e||^2_W = 8.5470001068e-06 = 1/117000.1171875000
* weightScaler_value = 5.8541103499e-04 = 1/1708.2015380859
* ----------------------------------------------------------------------------
* voxelsPerSecond = inf
* time icd update = 1.2765851974e+01 s
* ratioUpdated = 1.0000000000e+02 %
* totalEquits = 1.3000000000e+01
******************************************************************************
Segmentation fault: 11
This PR works fine, despite the seg fault issue, which seems to be an issue independent of this PR (since Marco reproduced the seg fault on master branch).
I tested demo_3D_shepp_logan.py
and demo_mace3D_fast.py
on Purdue cluster, and both works fine.
I am not able to reproduce the seg fault issue on either Mac or Purdue cluster.
Maybe we can accept this PR, and then investigate the seg fault issue.
Yes, this is my thought as well. The segmentation issue in master
can be resolved independently.
We have a segmentation fault, but that seems to be from the master branch, so we will need to investigate that separately from this PR. Therefore, I'm going to accept this PR.
I have implemented the updates exactly as discussed on Jan 12. The following changes are proposed.
Tested:
Will continue to update the above bullet points as I test more files.
\ \ \ \ \ * * * * * * * * * * * * * * * * \ \ \ \ \ Detailed changelog:
cone3D.py
mace.py
demo_mace4D.py
demo_mace4D_fast.py
Slides corresponding to changes:
Changelog Jan 13.pptx Detailed Changelog Jan 13.pptx