Mercurial > cgi-bin > hgwebdir.cgi > POP > oldRepo
diff 1__Development/6__Website/ApacheServer/introduction.html @ 6:d18eee376f45
Persist graph works.. in middle of putting pointers back, adding OO
| author | Sean Halle <seanhalle@yahoo.com> |
|---|---|
| date | Wed, 06 Aug 2014 00:16:19 -0700 |
| parents | |
| children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/1__Development/6__Website/ApacheServer/introduction.html Wed Aug 06 00:16:19 2014 -0700 1.3 @@ -0,0 +1,44 @@ 1.4 +<html> 1.5 +<head> 1.6 +<title>Introduction</title> 1.7 +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 1.8 +</head> 1.9 + 1.10 +<body bgcolor="#FFFFFF"> 1.11 + 1.12 +<p> </p> 1.13 +<h2>Introduction</h2> 1.14 +<p> </p> 1.15 +<p>EQNLang is an extensible language for parallel programming. It has a visual 1.16 + interface, allows extensions of both its visual syntax and its semantics, and 1.17 + it allows automated symbolic manipulation of code to specialize it to specific 1.18 + parallel hardware, for high performance.</p> 1.19 +<p>EQNLang has a visual interface, in which any SVG graphic can be used as a syntactic 1.20 + element in the language. In fact, while developing code, most applications will 1.21 + add their own syntax as part of the application. This new syntax can then be 1.22 + shared for others to use.</p> 1.23 +<p>The source format of the language is a syntax graph. There is no text form 1.24 + of the code. This is what enables new syntax to be arbitrary graphics. The grammar 1.25 + of the language is embedded in the editing process. One is only allowed to build 1.26 + valid syntax graphs. Another consequence of using a syntax graph as the source 1.27 + form is that properties can be attached to new commands defined inside applications. 1.28 + This is the key to the portable parallelism.</p> 1.29 +<p>Performance portability of parallel code requires the code to be transformable 1.30 + to fit specific hardware well. High performance can only be achieved when the 1.31 + patterns in the code fit closely to the patterns in the hardware. Such transformations 1.32 + go beyond what compilers typically carry out; they are more like what a symbolic 1.33 + math package like MAPLE or MathCAD or Mathmatica perform.</p> 1.34 +<p>To enable such transforms for parallel code, the parallel code must provide 1.35 + the same thing that equations provide to the math package: properties. It is 1.36 + properties such as associativity, distributivity, and so forth that allow the 1.37 + automated symbolic manipulation. EQNLang follows this pattern of providing properties 1.38 + of commands. Each primitive command of the language comes pre-tagged with its 1.39 + properties, and the end-user who defines a new syntactic element states which 1.40 + properties their new element has. For some properties, additional code is provided 1.41 + that is a "plugin" to the symbolic manipulator. This additional code 1.42 + performs the manipulation on the source-graph.</p> 1.43 +<p>The result is a high-level declarative language that is highly productive for 1.44 + programmers, yet high performance across parallel hardware.</p> 1.45 +<p><a href="index.html">back</a></p> 1.46 +</body> 1.47 +</html>
