Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /trunk/doc/report/intro.tex
ViewVC logotype

Annotation of /trunk/doc/report/intro.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2636 - (view) (download) (as text)

1 : jhr 97 %!TEX root = report.tex
2 :     %
3 :    
4 :     \chapter{Introduction}
5 : jhr 100
6 : jhr 2636 Diderot is a parallel domain-specific language for programming image analysis and
7 :     visualization algorithms.
8 : jhr 100 It supports a high-level programming model based on the mathematics of continuous
9 : jhr 2636 tensor fields.
10 :     These fields are reconstructed from discrete image-data sets (\eg{}, MRI data) using
11 :     separable convolution kernels.
12 :     We use \emph{tensors} to refer collectively to scalars,
13 :     vectors, and matrices, which encompasses the types of values produced
14 :     by the imaging modalities mentioned above, as well as values produced
15 :     by taking spatial derivatives of images.
16 :     Diderot permits programmers to express algorithms directly in terms of
17 :     tensors, tensor fields, and tensor field operations, using the same
18 :     mathematical notation that would be used in vector and tensor calculus
19 :     (such as $\nabla$ for the gradient).
20 :     Diderot is indended to be useful for prototyping image
21 :     analysis and visualization methods in contexts where a meaningful
22 :     evaluation of the methods requires its application to real image data,
23 :     but the real data volumes are of a size that requires efficient
24 :     parallel computation.
25 :     Diderot is also suited for educational contexts where the conceptual
26 :     transparency of the implementation is of primary importance.
27 :     In addition to providing a high-level mathematical programming model,
28 :     Diderot is also designed to be implemented on a range of parallel hardware,
29 :     including shared-memory multiprocessors and GPUs.
30 : jhr 100
31 :     \section{Basic concepts}
32 :     The design of Diderot is based on three core concepts: image data, the continuous fields
33 : jhr 1116 that are reconstructed from them, and the strands that represent the computations over
34 : jhr 100 the fields.
35 :     We give a high-level overview of these in this section.
36 :    
37 :     \subsection{Images}
38 :    
39 :     \subsection{Fields}
40 : jhr 2636 Computing with continuous tensor fields is one of the unique characteristics of Diderot.
41 :     Field values are constructed by convolving image data with
42 :     kernels (\CD{img${\color{\kwColor}\circledast}$bspln3}), but they can also be defined
43 :     by using higher-order operations, such as addition, subtraction, and scaling of fields.
44 :     Most importantly, Diderot supports differentiation of fields using the operators $\nabla$
45 :     (for scalar fields) and $\nabla\otimes$ (for higher-order tensor fields).
46 :     Two operations on fields are testing whether a point \CD{x} lies within the domain
47 :     of a field \CD{F} (\CD{inside(x, F)}) and \emph{probing} a field \CD{F} at a point \CD{x}
48 :     (\CD{F(x)}).
49 :     Probing and differentiating are fundamental to extracting geometric
50 :     information from fields.
51 : jhr 100
52 : jhr 2636 \subsection{Strands}
53 :     The class of applications that Diderot targets are characterized as consisting of many
54 :     largely independent subcomputations.
55 :     For example, the rays in a volume renderer, the paths from fiber tractography, and
56 :     the particles in a particle system.
57 :     In Diderot, these mostly independent computations are modeled as \emph{strands}, which
58 :     execute in a \emph{bulk synchronous}
59 :     fashion~\cite{valiant:bridging-model-for-parallel,q-n-a-about-bsp}.
60 : jhr 100
61 :    
62 :     \section{Diderot by example}
63 : jhr 335 % include VR-lite example here
64 :     \begin{figure}[p]
65 :     \begin{quote}
66 : jhr 2636 \lstset{language=Diderot}
67 : jhr 335 \input{vr-lite}
68 :     \end{quote}%
69 :     \caption{A simple volume renderer in Diderot}
70 :     \label{fig:vr-lite}
71 :     \end{figure}%

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0