33 |
of processing images is increasing as devices produce images of higher |
of processing images is increasing as devices produce images of higher |
34 |
resolution (\eg{}, typical CT scans have gone from $128^3$ to roughly $512^3$ |
resolution (\eg{}, typical CT scans have gone from $128^3$ to roughly $512^3$ |
35 |
resolutions~\cite{GLK:Reiser2008}). |
resolutions~\cite{GLK:Reiser2008}). |
36 |
With the latest scanning technologies, it is also more common for the the values measured at |
With the latest scanning technologies, it is also more common for the values measured at |
37 |
each sample to be multi-dimensional rather than a single scalar, which |
each sample to be multi-dimensional rather than a single scalar, which |
38 |
further complicates implementing mathematically correct methods. |
further complicates implementing mathematically correct methods. |
39 |
% diffusion-weighted MRI now commonly measures at least 30 value per |
% diffusion-weighted MRI now commonly measures at least 30 value per |
47 |
not in a position to implement correspondingly sophisticated analysis |
not in a position to implement correspondingly sophisticated analysis |
48 |
algorithms that run on the latest parallel hardware, which reinforces the |
algorithms that run on the latest parallel hardware, which reinforces the |
49 |
gap between the class of methods advanced by computer science |
gap between the class of methods advanced by computer science |
50 |
research, and those that gain currency in scientific research |
research and those that gain currency in scientific research |
51 |
applications. |
applications. |
52 |
|
|
53 |
We propose a new way to express and implement image-analysis algorithms that |
We propose a new way to express and implement image-analysis algorithms that |
54 |
strives for both efficiency and flexibility. |
strives for both efficiency and flexibility. |
55 |
Our proposed approach is based on a \emph{domain-specific language} (DSL) |
Our proposed approach is based on a \emph{domain-specific language} (DSL) |
56 |
that encapsulates the mathematical ingredients of working in |
that encapsulates the mathematical ingredients of working in |
57 |
a smooth image domain (reconstructed from discrete samples), and |
a smooth image domain (reconstructed from discrete samples) and |
58 |
offers a powerful abstraction with which analysis algorithms can be |
offers a powerful abstraction with which analysis algorithms can be |
59 |
decomposed into a coordinated set of actors that capture the parallelism |
decomposed into a coordinated set of actors that capture the parallelism |
60 |
inherent in these algorithms. |
inherent in these algorithms. |
61 |
|
|
62 |
One advantage of DSLs is that they provide a high-level programming language |
One advantage of DSLs is that they provide a high-level programming model |
63 |
that allows domain experts to program using the natural notation and concepts of the domain. |
that allows domain experts to program using the natural notation and concepts of the domain. |
64 |
For example, parser generators, such as Yacc~\cite{yacc}, allow language syntax |
For example, parser generators, such as Yacc~\cite{yacc}, allow language syntax |
65 |
to be specified using the notation of context-free grammars. Form compilers, |
to be specified using the notation of context-free grammars, and form compilers, |
66 |
such as FFC~\cite{ffc}, take high-level descriptions of a finite element variational form |
such as FFC~\cite{ffc}, take high-level descriptions of a finite element variational form |
67 |
and generate low-level C code for efficient evaluation of the element tensor |
and generate low-level C code for efficient evaluation of the element tensor |
68 |
and associated quantities. |
and associated quantities. |
69 |
But we can also view DSLs as the input to a program generator. |
A second advantage is that DSLs allow for \emph{domain-specific} optimizations, |
70 |
Program generators have proven to be a very effective way to get portable |
which can result in highly-efficient implementations. |
71 |
high-performance code. |
Thirdly, we can view a DSL as a program generator, which have proven to be |
72 |
|
a very effective way to get portable high-performance code. |
73 |
For example, the leading FFT library (FFTW~\cite{fftw}) uses a program generator |
For example, the leading FFT library (FFTW~\cite{fftw}) uses a program generator |
74 |
to generate versions of the FFT algorithm that are specialized for many different |
to generate versions of the FFT algorithm that are specialized for many different |
75 |
hardware targets. |
hardware targets. |
76 |
Thus, DSLs can provide both a very high-level programming model and very high-performance |
Thus, DSLs can provide both a very high-level programming model with very high-performance |
77 |
executables. |
executables on a variety of target platforms. |
78 |
|
|
79 |
As others have argued~\cite{hanrahan:dsl-gpu}, the use of DSLs for parallelism |
As others have argued~\cite{hanrahan:dsl-gpu}, the use of DSLs for parallelism |
80 |
is particularly advantageous. |
is particularly advantageous. |
90 |
DSLs provide a high-level interface to such program generators. |
DSLs provide a high-level interface to such program generators. |
91 |
Our proposed research follows this model of fixing the application domain (to image |
Our proposed research follows this model of fixing the application domain (to image |
92 |
analysis in our case) and combining domain-specific optimizations with target-specific |
analysis in our case) and combining domain-specific optimizations with target-specific |
93 |
program generation to get high-level programming language with high performance. |
program generation to get a high-level programming language with high performance. |
94 |
|
|
95 |
There are three equally important aspects of the proposed research. |
There are three equally important aspects of the proposed research. |
96 |
\begin{enumerate} |
\begin{enumerate} |
97 |
\item |
\item |
98 |
To design a high-level, domain-specific |
To design a high-level, mathematical programming model that allows existing |
99 |
programming model that allows existing visualization and analysis |
visualization and analysis methods to be expressed in simple and readily |
100 |
methods to be expressed in simple and readily understood programs. |
understood programs. |
101 |
\item |
\item |
102 |
To test and evolve this programming model by exploring a range of |
To test and evolve this programming model by exploring a range of |
103 |
both established and novel image-analysis algorithms. |
both established and novel image-analysis algorithms. |
112 |
in both parallel and sequential language design and implementation, and PI Kindlmann, who |
in both parallel and sequential language design and implementation, and PI Kindlmann, who |
113 |
has extensive domain expertise in the area of image analysis. |
has extensive domain expertise in the area of image analysis. |
114 |
The proposed research will make contributions to both the area of parallel-language |
The proposed research will make contributions to both the area of parallel-language |
115 |
design and implementation and to the area of image analysis. |
design and implementation and to the area of image analysis and visualization. |
116 |
|
|
117 |
The proposal is organized as follows. |
The proposal is organized as follows. |
118 |
In the next section, we give an overview of the image-analysis domain |
In the next section, we give an overview of the image-analysis domain |