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 389 - (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 376 <h3>People</h3>
27 :     <ul>
28 :     <li><a href="http://cs.uchicago.edu/~glk/">Gordon Kindlmann</a></li>
29 :     <li><a href="http://cs.uchicago.edu/~jhr/">John Reppy</a></li>
30 :     <li><a href="http://www.cs.uchicago.edu/people/lamonts">Lamont Samuels</a></li>
31 : jhr 389 <li><a href="http://www.cs.uchicago.edu/people/nseltzer">Nicholas Seltzer</a></li>
32 : jhr 376 </ul>
33 :    
34 : jhr 375 <h3>Language overview</h3>
35 :     <p>
36 :     The following is an overview of our current preliminary design for Diderot.
37 :     We are building a compiler for this design and expect that the design will
38 :     evolve as we get experience with the implementation.
39 :     Also, the design is conservative, in that it does not provide all of the features that
40 :     we plan to provide (<i>e.g.</i>, actor-actor interactions).
41 :     </p>
42 :    
43 :     <h4>Types</h4>
44 :     <p>
45 :     The main type of computational value in Diderot is a <em>tensor</em>, which includes
46 :     reals (0-order tensors), vectors, and matrices.
47 :     In addition, Diderot provides booleans, integers, and strings.
48 :     Diderot also has three <em>abstract</em> types:
49 :     </p>
50 :     <dl>
51 :     <dt>images</dt>
52 :     <dd>are used to represent the data being analyzed, as well as other array data, such as transfer
53 :     functions.
54 :     </dd>
55 :     <dt>kernels</dt>
56 :     <dd>are separable convolution kernels</dd>
57 :     <dt>fields</dt>
58 :     <dd>are an abstraction of functions from 1D, 2D, or 3D space to some tensor type.
59 :     A field is defined by convolving an image with a kernel.
60 :     </dd>
61 :     </dl>
62 :    
63 :     <h4>Program structure</h4>
64 :     <p>A Diderot program is organized into three logical sections:</p>
65 :     <ol>
66 :     <li>Global declarations define global values, such as fields, as well as the inputs to the program.</li>
67 :     <li>Actor definitions define the computational agents that implement the program</li>
68 :     <li>Initialization defines the initial set of actors and their structure</li>
69 :     </ol>
70 :    
71 :     <h4>Actors</h4>
72 :     <p>
73 :     An <em>actor</em> represents a mostly autonomous computation with local state, which includes
74 :     their <em>position</em> in world space.
75 :     An actor definition consists of declared state variables and methods.
76 :     All actors must have an <em>update</em> method and may optionally have a <em>stabilize</em>
77 :     method.
78 :     </p>
79 :    
80 :     <h4>Execution model</h4>
81 :     <p>The Diderot execution model is <em>bulk synchronous</em>.
82 :     At each iteration, the update methods of all active actors are invoked, resulting in a new
83 :     configuration.
84 :     </p>
85 :    
86 : jhr 366 <h3>Status</h3>
87 :     <p>
88 :     We have a prototype language design that can handle simple examples, such as volume
89 :     rendering, and we are working on a baseline compiler for the design.
90 :     This compiler will generate CUDA or OpenCL code for running on GPUs.
91 :     </p>
92 :    
93 : jhr 376 <h3>Further information</h3>
94 :     <p>
95 :     We have not published any papers on Diderot yet, but here are some unpublished documents that provide
96 :     additional details about the project.
97 :     </p>
98 :     <ul>
99 :     <li><a href="papers/msrc-talk-20100906.pdf"><em>Diderot: A parallel domain-specific language for image analysis</em></a>, talk
100 :     given at Microsoft Research --- Cambridge, September 6, 2010.
101 :     </li>
102 :     </ul>
103 :    
104 : jhr 366 <hr />
105 : jhr 375 Last modified: October 4, 2010.
106 : jhr 366 <hr />
107 :    
108 :     </body>
109 :     </html>

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