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

SCM Repository

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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2635, Mon May 26 14:06:39 2014 UTC revision 2636, Tue May 27 16:18:36 2014 UTC
# Line 3  Line 3 
3    
4  \chapter{Introduction}  \chapter{Introduction}
5    
6  Diderot is a domain-specific language for programming image analysis algorithms on  Diderot is a parallel domain-specific language for programming image analysis and
7  parallel hardware.  visualization algorithms.
8  It supports a high-level programming model based on the mathematics of continuous  It supports a high-level programming model based on the mathematics of continuous
9  tensor fields that are reconstructed from discrete image-data sets (\eg{}, MRI data).  tensor fields.
10  Diderot is also designed to be implemented on parallel hardware.  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    
31  \section{Basic concepts}  \section{Basic concepts}
32  The design of Diderot is based on three core concepts: image data, the continuous fields  The design of Diderot is based on three core concepts: image data, the continuous fields
# Line 18  Line 37 
37  \subsection{Images}  \subsection{Images}
38    
39  \subsection{Fields}  \subsection{Fields}
40    Computing with continuous tensor fields is one of the unique characteristics of Diderot.
41  \subsection{Actors}  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    
52    \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    
61    
62  \section{Diderot by example}  \section{Diderot by example}
63  % include VR-lite example here  % include VR-lite example here
64  \begin{figure}[p]  \begin{figure}[p]
65    \begin{quote}    \begin{quote}
66      \lstset{      \lstset{language=Diderot}
       basicstyle=\ttfamily\footnotesize\color{Blue},  
       language=Diderot}  
67      \input{vr-lite}      \input{vr-lite}
68    \end{quote}%    \end{quote}%
69    \caption{A simple volume renderer in Diderot}    \caption{A simple volume renderer in Diderot}

Legend:
Removed from v.2635  
changed lines
  Added in v.2636

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