SCM Repository
Annotation of /trunk/doc/report/intro.tex
Parent Directory
|
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 |