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 multidimensional rather than a single scalar, which 
each sample to be multidimensional rather than a single scalar, which 
38 
further complicates implementing mathematically correct methods. 
further complicates implementing mathematically correct methods. 
39 
% diffusionweighted MRI now commonly measures at least 30 value per 
% diffusionweighted 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 imageanalysis algorithms that 
We propose a new way to express and implement imageanalysis algorithms that 
54 
strives for both efficiency and flexibility. 
strives for both efficiency and flexibility. 
55 
Our proposed approach is based on a \emph{domainspecific language} (DSL) 
Our proposed approach is based on a \emph{domainspecific 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 highlevel programming language 
One advantage of DSLs is that they provide a highlevel 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 contextfree grammars. Form compilers, 
to be specified using the notation of contextfree grammars, and form compilers, 
66 
such as FFC~\cite{ffc}, take highlevel descriptions of a finite element variational form 
such as FFC~\cite{ffc}, take highlevel descriptions of a finite element variational form 
67 
and generate lowlevel C code for efficient evaluation of the element tensor 
and generate lowlevel 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{domainspecific} optimizations, 
70 
Program generators have proven to be a very effective way to get portable 
which can result in highlyefficient implementations. 
71 
highperformance code. 
Thirdly, we can view a DSL as a program generator, which have proven to be 
72 

a very effective way to get portable highperformance 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 highlevel programming model and very highperformance 
Thus, DSLs can provide both a very highlevel programming model with very highperformance 
77 
executables. 
executables on a variety of target platforms. 
78 


79 
As others have argued~\cite{hanrahan:dslgpu}, the use of DSLs for parallelism 
As others have argued~\cite{hanrahan:dslgpu}, the use of DSLs for parallelism 
80 
is particularly advantageous. 
is particularly advantageous. 
90 
DSLs provide a highlevel interface to such program generators. 
DSLs provide a highlevel 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 domainspecific optimizations with targetspecific 
analysis in our case) and combining domainspecific optimizations with targetspecific 
93 
program generation to get highlevel programming language with high performance. 
program generation to get a highlevel 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 highlevel, domainspecific 
To design a highlevel, 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 imageanalysis algorithms. 
both established and novel imageanalysis 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 parallellanguage 
The proposed research will make contributions to both the area of parallellanguage 
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 imageanalysis domain 
In the next section, we give an overview of the imageanalysis domain 