Title: Solving MRI Spin Relaxometry Problem using PJ
1Solving MRI Spin Relaxometry Problem (using PJ)
- DATE October 22nd, 2007
- STUDENT
- HARDIK J. PARIKH (hjp0608)
- COMMITTEE
- CHAIR PROF. ALAN KAMINSKY
- READER PROF. PAUL TYMANN
- OBSERVER PROF. FEREYDOUN KAZEMIAN
2Agenda
- Introduction and Background
- Project Scope
- Project Design and Architecture
- Results
- Lessons Learned
- Future Work
- Questions
3Introduction
- MRI
- an imaging technique without using x-rays.
- MRI Spin Relaxometry
- recovering the spin density spectrum from the
time samples of the spin signal - Problem
- Noisy MRI Signal ?derive spin spectrum generated
by signal - Is an inverse problem (final output ? original
input) - Pixels signal s at given time t is given as
- S(t) ?(1 2e-xt)
- ? spins density
- x spins relaxation rate ( sec-1).
- t time at which image was taken
4Introduction
- Input files
- Times file
- Contains timing at which the signals were taken.
- Image file
- Contains pixel values for image taken at a
particular time. - Mask file
- For reducing the pixels to compute
- 0 Pixel value is not to be analyzed.
- 1 Pixel value needs to be analyzed.
5Background Previous Work
- Andrew P. Bak, Joseph P. Hornak, and Nan C.
Schaller. From impractical to practical Solving
an MRI problem using parallelism. - Modified CONTIN (a program to solve MRI spin
relaxometry inverse problem) - Multiple CONTIN sequential algorithms ran in
parallel. - Prof. Alan Kaminsky and Luke McOmber Solving an
MRI spin relaxometry problem with parallel
computing - Implemented in Java using MPI.
6Introduction
- Why Parallel Computing ?
- Substantial Computation
- Sequential -- 6600 sec. in Java.
- Independent pixel calculations.
- Embarrassingly parallel
- Types of Parallel Computing
- SMP vs. Clusters
- SMP (paragon, parasite, paradise)
- Clusters (paranoia)
- We implemented algorithm on Clusters
7Project Scope
- Algorithm Implementations
- Linear Regularization (PJ (Java) and MPI (C))
- Non-Linear Least Squares (PJ (Java) and MPI (C))
- Measurements
- Time taken
- Speed-up
- Efficiency
8Project Scope
- User Interfaces
- Histogram (Linear Regularization)
- Distribution/Density plots (Non-Linear Least
Squares) - Comparisons
- Linear Regularization vs. Non-Linear Least
Squares - Java vs. C
9Architectural Overview
MRI Input Data Set
Linear Regularization Analysis Program (parallel,
C/MPI)
Linear Regularization Analysis Program (parallel,
Java/PJ)
Non-Linear Least Squares Analysis Program
(parallel, C/MPI)
Non-Linear Least Squares Analysis Program
(parallel, Java/PJ)
Non-Linear Least Squares Output Dataset
Linear Regularization Output Dataset
Non-Linear Least Squares Visualization Program
(Non-parallel, Java)
Linear Regularization Visualization Program
(Non-parallel, Java)
Architectural Overview of Implementation
10Design Specifications
- Implementation on Clusters
- Each node
- gets same input
- executes algorithm
- produces output
- Load balancing (differs by 1 pixel on nodes)
- Analysis programs ? Parallel
- Visualization programs ? Non-parallel
11Results
- Timing Measurements (Linear Regularization)
- Timing average of 5 runs.
- Sequential programs benchmark for speed-up and
efficiency
12Results
- Speedup/Efficiency (Linear Regularization -
Java)
- Speed-up within 20 of ideal speed-up
- Efficiency within 15 of ideal efficiency.
13Results
- Histogram (Linear Regularization)
14Results
- Concentration area 0.5 0.7
- Random measurement errors clustered at end. (1.98
2.0) - Maximum count between 0.561 0.58
15Results
- Timing Measurements (Non-Linear Least Squares)
- Timing average of 5 runs.
- Sequential programs benchmark for speed-up and
efficiency
16Results
- Speedup/Efficiency (Non-Linear Least Squares -
Java)
- Speed-up within 25 of ideal speed-up
- Efficiency within 25 of ideal efficiency.
17Results
- Distribution plot (Non-Linear Least Squares)
- The values are (x1, 1/N), (x2, 2/N), (x3,
3/N)(xN,1/N) - Steepness of slope between x 0.55 and x
0.65
Spin relaxation rates vs. Calculated y value
18Results
- Density plot (Non-Linear Least Squares)
- Count values between (xi ?) and (xi ?).
- where ? is window parameter
- Maximum peak between x 0.55 and x 0.65
- Measurement errors in the initial portion.
- ? 0.08 used to generate plots.
Spin relaxation rates vs. Total Count
19Results
- Comparison of Algorithms
- Non-Linear Least Squares faster than Linear
Regularization - For Java codes ?
-
20Results
- Comparison of Visualization Programs
- Histogram
- Concentration area 0.5 0.7
- Highest Peak 0.561 058
- Distribution/Density Plots
- Concentration area 0.55 0.65
21Results
- Comparison of Java and C
- Linear Regularization
- Java programs approximately 40 slower than C
programs - Non-Linear Least Squares
- Java programs approximately 20 slower than C
programs - Why Java slow than C ?
- Java programs ? byte codes ? machine language.
- C programs ? machine language binaries.
22Lessons Learned
- Efficiency increases with Parallel Computing
- Java slow vs. C
- Programming in MPI (specifically C)
- Dug into previous code, so a good learning curve.
- Experience with Software Development Life Cycle.
23Future Work
- Construction of covariance matrices
- Used to create confidence bounds on parameters of
solution vector. - Proper balancing for Non-Linear Least Squares
- Input signal not symmetric around 0 ? improper
rates and amplitudes. - Possible solution add additional parameter to
solution. - Testing with other images.
- Master-Worker load balancing
24Questions