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

SCM Repository

[diderot] Annotation of /web/htdocs/index.html
ViewVC logotype

Annotation of /web/htdocs/index.html

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : jhr 366 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 :     "http://www.w3.org/TR/html4/strict.dtd">
3 :     <html>
4 :     <head>
5 :     <title>Diderot project</title>
6 :     <meta name="generator" content="BBEdit 9.5">
7 :     </head>
8 :     <body>
9 :    
10 :     <hr />
11 :     <h2 align="center">The Diderot Project</h2>
12 :     <hr />
13 :    
14 :     <h3>About</h3>
15 :     <p>
16 :     The Diderot project is an effort to design and implement a <i>Parallel
17 :     Domain-specific Language</i> (PDSL) for image analysis and visualization.
18 :     We are particularly interested in a class of algorithms that are programmed
19 :     in terms of <em>continuous</em> scalar, vector, and tensor fields that
20 : jhr 375 are reconstructed from the image data.
21 :     Our goals are to provide a high-level mathematical programming model for
22 :     these algorithms, while also providing high-performance implementations
23 :     on a variety of parallel hardware platforms.
24 : jhr 366 </p>
25 :    
26 : jhr 375 <h3>Language overview</h3>
27 :     <p>
28 :     The following is an overview of our current preliminary design for Diderot.
29 :     We are building a compiler for this design and expect that the design will
30 :     evolve as we get experience with the implementation.
31 :     Also, the design is conservative, in that it does not provide all of the features that
32 :     we plan to provide (<i>e.g.</i>, actor-actor interactions).
33 :     </p>
34 :    
35 :     <h4>Types</h4>
36 :     <p>
37 :     The main type of computational value in Diderot is a <em>tensor</em>, which includes
38 :     reals (0-order tensors), vectors, and matrices.
39 :     In addition, Diderot provides booleans, integers, and strings.
40 :     Diderot also has three <em>abstract</em> types:
41 :     </p>
42 :     <dl>
43 :     <dt>images</dt>
44 :     <dd>are used to represent the data being analyzed, as well as other array data, such as transfer
45 :     functions.
46 :     </dd>
47 :     <dt>kernels</dt>
48 :     <dd>are separable convolution kernels</dd>
49 :     <dt>fields</dt>
50 :     <dd>are an abstraction of functions from 1D, 2D, or 3D space to some tensor type.
51 :     A field is defined by convolving an image with a kernel.
52 :     </dd>
53 :     </dl>
54 :    
55 :     <h4>Program structure</h4>
56 :     <p>A Diderot program is organized into three logical sections:</p>
57 :     <ol>
58 :     <li>Global declarations define global values, such as fields, as well as the inputs to the program.</li>
59 :     <li>Actor definitions define the computational agents that implement the program</li>
60 :     <li>Initialization defines the initial set of actors and their structure</li>
61 :     </ol>
62 :    
63 :     <h4>Actors</h4>
64 :     <p>
65 :     An <em>actor</em> represents a mostly autonomous computation with local state, which includes
66 :     their <em>position</em> in world space.
67 :     An actor definition consists of declared state variables and methods.
68 :     All actors must have an <em>update</em> method and may optionally have a <em>stabilize</em>
69 :     method.
70 :     </p>
71 :    
72 :     <h4>Execution model</h4>
73 :     <p>The Diderot execution model is <em>bulk synchronous</em>.
74 :     At each iteration, the update methods of all active actors are invoked, resulting in a new
75 :     configuration.
76 :     </p>
77 :    
78 : jhr 366 <h3>People</h3>
79 :     <ul>
80 :     <li><a href="http://cs.uchicago.edu/~glk/">Gordon Kindlmann</a></li>
81 :     <li><a href="http://cs.uchicago.edu/~jhr/">John Reppy</a></li>
82 :     <li><a href="http://www.cs.uchicago.edu/people/lamonts">Lamont Samuels</a></li>
83 :     </ul>
84 :    
85 :     <h3>Status</h3>
86 :     <p>
87 :     We have a prototype language design that can handle simple examples, such as volume
88 :     rendering, and we are working on a baseline compiler for the design.
89 :     This compiler will generate CUDA or OpenCL code for running on GPUs.
90 :     </p>
91 :    
92 :     <hr />
93 : jhr 375 Last modified: October 4, 2010.
94 : jhr 366 <hr />
95 :    
96 :     </body>
97 :     </html>

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