-
Notifications
You must be signed in to change notification settings - Fork 0
/
executive summary.txt
13 lines (7 loc) · 2.48 KB
/
executive summary.txt
1
2
3
4
5
6
7
8
9
10
11
12
Executive Summary
=================
(steve; id like to reword this later. The phrasing and tone are off a bit)
The project sponsors at the *Child and Family Research Institute* (CFRI) use *Diffusion MRI* (dMRI) to take low-cost, fast, accurate, and most importantly: non-intrusive images of the brain. They use these images to detect and diagnose conditions in real patients. The images produced by this technique are currently quite low resolution, on the order of millimeters, whereas the size of a neural connection (ie. an axon) is on the order of microns. Despite this shortcoming, the raw data produced by these MRI machines is still large - on the order of 1GB. As a result, producing usable data can take up to 2 days of computation time. Two stages of the computation process are the main culprits: *Local Parameter Estimation*, and *Global Connectivity Estimation*.
There exist devices onboard most workstations which are well suited to these sorts of computations. A modern *Graphics Processing Unit* (GPU) is a cheap, commercial-off-the-shelf, and widely available solution. These ubiquitous devices, optimized for computer graphics, can offer a processing power of several trillion floating-point operations per second, and a memory bandwidth in the hundreds of gigabits per second. On the software end, an open-source medical software development team has already created an analysis toolkit called FSL (FMRIB Software Library), which has fully working CPU-based versions of both Local Parameter Estimation and Global Connectivity Estimation called bedpostx and *probtrackx*, respectively. The sponsor has already developed a GPU solution to improve the Local Parameter Estimation stage. They have also purchased a workstation with four NVIDIA Tesla series GPUs. Their expectation for our project is to produce a working port of the Global Connectivity Estimation module and integrate it with their existing port for additional performance improvement. Our task has been to re-write *probtrackx* to functionally in a parallel fashion on the GPU.
The solution we present is called *oclptx*, which is an OpenCL implementation of *probtrackx*. This package fits as a separate module within the FSL framework. We introduce a custom data management system that interacts with the existing FSL data loading code. The user passes in bedpostx data, mask data, and other options via the command line, and our system parses this data into GPU-compatible data containers.
AFSHIN TODO: After Steve/Jeff written their piece