<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.pervasivedatarush.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Pervasive DataRush - Unleash the Power of Multicore</title>
 <link>http://www.pervasivedatarush.com/rss.xml</link>
 <description>RSS feed of recently created articles.</description>
 <language>en</language>
<item>
 <title>Dataflow implementation in Java</title>
 <link>http://www.pervasivedatarush.com/blogs/datarush-dataflow-java</link>
 <description>&lt;img src=&quot;/files/images/dataflow.preview.jpg&quot; alt=&quot;Dataflow Programming in Java&quot; style=&quot;float: right; margin-right: 1em; margin-bottom: .02em; margin-left: 1em;&quot; /&gt;

&lt;p&gt;DataRush is sufficiently sophisticated (or at least different) that understanding it takes several passes.  I am writing a series of posts aimed toward exploring what DataRush is and is not.  This should give the passing programmer a better feel for what DataRush might do for them and how it fits into the broader scheme of &lt;strong&gt;concurrent programming techniques&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So, back to the question at hand; &lt;strong&gt;is DataRush dataflow&lt;/strong&gt;?  The answer is obvious: that depends upon what &amp;quot;dataflow&amp;quot; is.&lt;/p&gt;

&lt;p&gt;According to [CTMCP], dataflow &lt;em&gt;behavior&lt;/em&gt; results when expressions contain unbound variables.  When execution reaches such an expression, the program simply pauses, awaiting a value.  If at some point in the future another thread binds a value to the variable, the program picks up where it left off.  They call variables with these characteristics dataflow &lt;em&gt;variables&lt;/em&gt;.  A simple example in &lt;a href=&quot;http://www.mozart-oz.org/&quot;&gt;Oz&lt;/a&gt; (from page 60) follows:&lt;/p&gt;

&lt;pre&gt;
local X Y Z in
  X=10
  if X&amp;gt;=Y then Z=X else Z=Y end
end
&lt;/pre&gt;

&lt;p&gt;Note that &lt;code&gt;X&lt;/code&gt; is declared, then immediately bound to a value.  The purpose of the expression is to bind &lt;code&gt;Z&lt;/code&gt;.  However, that leaves &lt;code&gt;Y&lt;/code&gt; unbound.  From the expression above, we simply cannot tell what value &lt;code&gt;Y&lt;/code&gt; should take and, unlike some other programming languages, Oz does not arbitrarily specify a default value.&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;So what good are dataflow variables?  Well, they facilitate the concurrent technique of &lt;strong&gt;dataflow &lt;em&gt;programming&lt;/em&gt;&lt;/strong&gt;.  Combined with a single-assignment store (variables may be bound at most one time), they lead to the nice property that it doesn&#039;t matter in what order we evaluate simultaneously executing expressions.  You can view dataflow variables as one-to-many channels allowing the thread in which the variable is bound to send a message (&amp;quot;wake up, the variable&#039;s value is ready!&amp;quot;) to any waiting threads.&lt;/p&gt;

&lt;p&gt;Now you can certainly dig a little deeper into the various meanings of dataflow.  You&#039;ll find the dataflow variable of [CTMCP] is a concurrent logic variable, which is a &lt;a href=&quot;http://en.wikipedia.org/wiki/Future_%28programming%29&quot;&gt;promise&lt;/a&gt; updated by unification.  The name derives from the variable representing the &lt;em&gt;promise&lt;/em&gt; of a value to come, which may be &lt;em&gt;fulfilled&lt;/em&gt; by any thread within the program.  Good old Java provides an interface and implementations for a related idea, a &lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/util/concurrent/Future.html&quot;&gt;future&lt;/a&gt;, in java.util.concurrent.&lt;/p&gt;

&lt;p&gt;You&#039;ll also find &lt;a href=&quot;http://en.wikipedia.org/wiki/Dataflow_architecture&quot;&gt;dataflow architecture&lt;/a&gt; refers to a non-von Neumann way of coordinating the processing of instructions in a computer.  Dataflow architectures don&#039;t iterate across instructions with an instruction pointer but fire off units of computation only when their inputs become ready.  Mapping these units of computation and their inputs to the threads and dataflow variables discussed above, you can see the relationship between the two: you aren&#039;t controlling the order of execution of computations but merely interrelating them by the data they reference.&lt;/p&gt;

&lt;p&gt;And this (finally!) brings us to a discussion of what ways &lt;strong&gt;DataRush is an implementation of dataflow in Java&lt;/strong&gt;.  Dataflow variables are a rather implicit and clean way of constructing what amounts to channels passing data amongst disparate threads in your program.  The dataflow of DataRush is far more explicit: you implement and connect nodes (like the threads of Oz or computation units of a dataflow architecture) by writing Java classes.  The following snippet of code mimics the behavior of the Oz expression above:&lt;/p&gt;

&lt;pre&gt;
public class BindProcess extends DataflowNodeBase {
  private IntInput y;
  private IntOutput z;
  private int x;

  public BindProcess(IntFlow source, int x) {
    this.x = x;
    y = newIntInput(source, &amp;quot;y&amp;quot;);
    z = newIntOutput(&amp;quot;z&amp;quot;);
  }

  public void execute() {
    while (y.stepNext()) {
      if (x &amp;gt;= y.asInt()) {
        z.push(x);
      } else {
        z.push(y.asInt());
      }
    }
    z.pushEndOfData();
  }
}
&lt;/pre&gt;

&lt;p&gt;Like the dataflow of Oz, all downstream nodes listening to the same output channel block upon asking for data.  Unlike Oz, the input cannot simply be used in an expression but must be explicitly stepped in each node, then polled for a value.  Here, the &lt;code&gt;stepNext()&lt;/code&gt; method causes the thread running an instance of &lt;code&gt;BindProcess&lt;/code&gt; to block if &lt;code&gt;y&lt;/code&gt; contains no data.  Once data accumulates, the executor wakes the thread and &lt;code&gt;asInt()&lt;/code&gt; retrieves the value at the head of the queue.  The results of the node&#039;s computation must then be explicitly pushed to the &lt;code&gt;z&lt;/code&gt; output.&lt;/p&gt;

&lt;p&gt;Unlike dataflow variables, DataRush ports transfer batches of data thought of as a continuous stream flowing through the network; DataRush trades what amounts to multiple assignment to the port for requiring the programmer to explicitly manage the iteration through the incoming values.&lt;/p&gt;

&lt;p&gt;Bear in mind as long as the instance of &lt;code&gt;BindProcess&lt;/code&gt; steps &lt;code&gt;y&lt;/code&gt; to end of data (or detaches from it), pushes end of data on &lt;code&gt;z&lt;/code&gt;, and meets the cardinality requirements of downstream nodes receiving &lt;code&gt;z&lt;/code&gt;, the &lt;code&gt;execute()&lt;/code&gt; method may do whatever the programmer desires.  Thus the dataflow of DataRush is a sort of dataflow by convention: the while loop, or some mechanism for stepping through a process&#039; inputs like it, is central to the flow of data through the network.&lt;/p&gt;

&lt;p&gt;DataRush is not a dataflow programming language, but a framework for constructing software according to a dataflow architecture.  In this respect, it is far more similar to Morrison&#039;s &lt;a href=&quot;http://www.jpaulmorrison.com/fbp/&quot;&gt;flow-based programming&lt;/a&gt; than to the dataflow of Oz.&lt;/p&gt;

&lt;p&gt;
[&lt;a href=&quot;http://www.info.ucl.ac.be/~pvr/book.html&quot;&gt;CTMCP&lt;/a&gt;] &lt;em&gt;Concepts, Techniques, and Models of Computer Programming&lt;/em&gt;.  Van Roy and Haridi.  2004.
&lt;/p&gt;</description>
 <comments>http://www.pervasivedatarush.com/blogs/datarush-dataflow-java#comments</comments>
 <pubDate>Wed, 23 Jul 2008 10:24:42 -0500</pubDate>
 <dc:creator>mwalker</dc:creator>
 <guid isPermaLink="false">232 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title>Diminishing returns from virtualization will affect larger core count server sales</title>
 <link>http://www.pervasivedatarush.com/blogs/diminishing-returns-virtualization-will-affect-larger-core-count-server-sales</link>
 <description>I just got back from an HP show where I had some interesting conversations regarding the crisis that hasn&#039;t seemed to have happened yet.
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
The key to the Sherlock Holmes mystery, &amp;quot;The Hound of the Baskervilles&amp;quot; was this:  Why the dog didn&#039;t bark?
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
Why hasn&#039;t the so-called multicore crisis been seen as a crisis?  Why isn&#039;t there any angst over lack of parallelized applications and engines?  Why is IT still buying multicore servers when they aren&#039;t doing development that can utilize that architecture?&lt;p&gt;&amp;nbsp;&lt;/p&gt;
One answer has to do with virtualization. The hypothesis is that the initial transition to multicore has been welcomed with open arms as IT managers sought a way to reduce power and cooling requirements, and multicore servers combined with virtualization software made that easy, inexpensive, and readily available.  &amp;quot;Yes boss, we had a problem with heat and power, but we have taken care of it.&amp;quot;  Multicore crisis averted, because these boxes helped solve a real problem for IT. A different problem, but still a real one.&lt;p&gt;&amp;nbsp;&lt;/p&gt;
So the sales of 4 and 8 core servers have been robust and the hardware guys are happy, the software guys are happy, and IT is happy - what could possibly go wrong?&lt;p&gt;&amp;nbsp;&lt;/p&gt;
It is that these sales will not continue at larger core counts.  It doesn&#039;t take an MBA to understand that there are diminishing returns -- there is no reason to go to a 32 core server when 4 8-core servers will do the job.  Those 4 are less expensive than the single 32-core machine, we have put our eggs in 4 baskets instead of one, and we already are following that pattern.  So the crisis that didn&#039;t happen when single processor servers became multicore has been delayed until now, when there is no obvious reason for IT to buy the larger core count boxes.&lt;p&gt;&amp;nbsp;&lt;/p&gt; For companies like HP, AMD, and Intel, this bump in the road is coming later than predicted, but it is coming -- virtualization did not eliminate it.  The smart people in these companies are beginning to ask if the forestalled crisis is arriving, and how they can help IT continue to gain business value from continued investment in larger core count machines.  &lt;p&gt;&amp;nbsp;&lt;/p&gt;
What are you going to do with a 32-core machine?  Break it up into 32 app servers?  Or take advantage of the power of concurrent programming to enable high performance commercial computing (HPCC)?&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;a href=&quot;http://technorati.com/claim/vw7ed9u3bc&quot;&gt;&lt;br /&gt;&lt;/a&gt;</description>
 <comments>http://www.pervasivedatarush.com/blogs/diminishing-returns-virtualization-will-affect-larger-core-count-server-sales#comments</comments>
 <pubDate>Mon, 23 Jun 2008 11:33:05 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">226 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title>the zettaflop, the yottaflop and the xeraflop</title>
 <link>http://www.pervasivedatarush.com/blogs/zettaflop-yottaflop-and-xeraflop</link>
 <description>At a recent industry conference, it was shown that the biggest growth area in computing is HPC, or High Performance Computing.  This was surprising, even to those in this field, as it has historically been a fairly small, insular, academic area populated by geeky professors and hard-working grad students, all using Fortran.&lt;p&gt;&amp;nbsp;&lt;/p&gt;

But a new phrase has become common, HPCC, or High Performance &lt;strong&gt;Commercial&lt;/strong&gt; Computing.  This is an attempt to make a distinction between the academic world and the business world, while still acknowledging their joint interests.  But how closely aligned are these two spaces?  &lt;p&gt;&amp;nbsp;&lt;/p&gt;

From our perspective, not so much.  Academics use clusters, running Fortran.  A speaker at a Supercomputing conference I attended pounded the lectern and declared, &lt;em&gt;&amp;quot;Fortran is good enough, dammit!&amp;quot;&lt;/em&gt; Academics use grad students, who are very smart, are essentially immobile, and are virtually slave labor, and while performance matters to all, academics don&#039;t really care how long the overall project takes, as you get 7 years to write your dissertation.&lt;p&gt;&amp;nbsp;&lt;/p&gt;

In the commercial space, Java is the most used application language, people are diverse in their abilities, and they cost a lot.  Worse yet, if they don&#039;t like their situation, they quit and move.  And projects have far shorter lifespans -- if the ROI doesn&#039;t meet the hurdle rate, the project is killed.&lt;p&gt;&amp;nbsp;&lt;/p&gt;

These thoughts were triggered by a New York Times article, &lt;a href=&quot;http://www.nytimes.com/2008/06/09/technology/09petaflops.html?_r=1&quot;&gt; Military Supercomputer Sets Record &lt;/a&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;em&gt;&amp;quot;Solving that programming problem is important because in just a few years personal computers will have microprocessor chips with dozens or even hundreds of processor cores. The industry is now hunting for new techniques for making use of the new computing power. Some experts, however, are skeptical that the most powerful supercomputers will provide useful examples.&amp;quot;&lt;/em&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;Maybe that skepticism is justified, what do you think??&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <comments>http://www.pervasivedatarush.com/blogs/zettaflop-yottaflop-and-xeraflop#comments</comments>
 <pubDate>Mon,  9 Jun 2008 11:59:05 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">224 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title>Explaining our secret sauce - Part Two</title>
 <link>http://www.pervasivedatarush.com/blogs/explaining-our-secret-sauce-part-two</link>
 <description>The first time I blogged on this, &lt;a href=&quot;/node/218&quot;&gt; Explaining our secret sauce&lt;/a&gt;, I referenced the Wikipedia entry for &amp;quot;dataflow programming&amp;quot;.
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
I have subsequently learned that it would be more accurate to point to &lt;a href=&quot;http://en.wikipedia.org/wiki/Kahn_process_networks&quot;&gt; Kahn Process Networks &lt;/a&gt;as the specific type of dataflow that was the genesis for our Pervasive DataRush library and engine.&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;em&gt;&amp;quot;KPN is a common model for describing signal processing systems where infinite streams of data are incrementally transformed by processes executing in sequence or parallel. Despite parallel processes, multitasking or parallelism are not required for executing this model.&lt;p&gt;&amp;nbsp;&lt;/p&gt;

In a KPN, processes communicate via unbounded FIFO channels. Processes read and write atomic data elements or tokens from and to channels. Writing to a channel is non-blocking, i.e. it always succeeds and does not stall the process, while reading from a channel is blocking, i.e. a process that reads from an empty channel will stall and can only continue when the channel contains sufficient data items (tokens). Processes are not allowed to test an input channel for existence of tokens without consuming them. Given a specific input (token) history for a process, the process must be deterministic so that it always produces the same outputs (tokens). Timing or execution order of processes must not affect the result and therefore testing input channels for tokens is forbidden.&amp;quot;&lt;/em&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
 <comments>http://www.pervasivedatarush.com/blogs/explaining-our-secret-sauce-part-two#comments</comments>
 <pubDate>Fri,  6 Jun 2008 16:04:45 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">223 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title>Multi-threaded development joins Gates as yesterday&#039;s man</title>
 <link>http://www.pervasivedatarush.com/links/multi-threaded-development-joins-gates-yesterdays-man</link>
 <description>&lt;p&gt;&lt;i&gt;&quot;...the validity of multi threading is under attack. Veteran programmer Knuth said in a recent interview that multi threading may not be up to the task and could fail. As such, he is &quot;unhappy&quot; with the current trend towards multi-core architectures.&quot;
&lt;/p&gt;
&lt;p&gt;“To me, it looks more or less like the hardware designers have run out of ideas, and that they’re trying to pass the blame for the future demise of Moore’s Law to the software writers by giving us machines that work faster only on a few key benchmarks! I won’t be surprised at all if the whole multi threading idea turns out to be a flop...&quot; Knuth said.&quot;&lt;/i&gt;
&lt;/p&gt;
</description>
 <comments>http://www.pervasivedatarush.com/links/multi-threaded-development-joins-gates-yesterdays-man#comments</comments>
 <pubDate>Fri,  6 Jun 2008 11:26:51 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">222 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title>Analysis -- the &quot;Plastics&quot; of today</title>
 <link>http://www.pervasivedatarush.com/blogs/analysis-plastics-today</link>
 <description>Before our current crop of graduates were born, there was the movie &amp;quot;The Graduate&amp;quot;.  One famous scene has our hero walking around at a party in his honor.  He is given some sage career advice: &amp;quot;One word.  Plastics&amp;quot;.&lt;p&gt;&amp;nbsp;&lt;/p&gt;

The newest member of the DataRush team, who is still a student, found the following quote and thought it was interesting and very DataRush related.  Hal Varian, Google’s chief economist (and intellectual superhero), says on a &lt;a href=&quot;http://freakonomics.blogs.nytimes.com/2008/02/25/hal-varian-answers-your-questions/&quot;&gt;  Freakonomics &lt;/a&gt; blog post:&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;em&gt;“If you are looking for a career where your services will be in high demand, you should find something where you provide a scarce, complementary service to something that is getting ubiquitous and cheap. So what’s getting ubiquitous and cheap? Data. And what is complementary to data? Analysis. So my recommendation is to take lots of courses about how to manipulate and analyze data: databases, machine learning, econometrics, statistics, visualization, and so on.”&lt;/em&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;



</description>
 <comments>http://www.pervasivedatarush.com/blogs/analysis-plastics-today#comments</comments>
 <pubDate>Thu,  5 Jun 2008 15:36:33 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">221 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title>The X=X+1 Issue</title>
 <link>http://www.pervasivedatarush.com/links/the-xx1-issue</link>
 <description>&lt;p&gt;A very clear explanation of why writing parallel apps is a challenge with procedural languages, versus declarative approaches.  Although Java is procedural, our Java implementation of dataflow is avoids this pitfall.
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&quot;The ability to assign a memory location with variable data is the cornerstone of computer programming. It turns out the ability to re-assign that same memory location is perhaps one of the biggest consternations in the parallel programming world. At the time, multiple assignment seemed like (and was) a good idea. Coupled with a looping control structure, massive calculations could be performed. For instance, one could write a program to sum the numbers from 1 to 100 (and beyond with simple variable change):&quot;&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;Let SUM = 0&lt;br /&gt;
FOR I = 1 to 100&lt;br /&gt;
 LET SUM = SUM + I&lt;br /&gt;
NEXT&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&quot;While incredibly useful, multiple assignment creates “state” within the program because the value of variables can change as program runs. The typical programming language allows you to manage the state of program variables. i.e. the memory location that holds the variable SUM changes over time. As any programmer will tell you, program state is easily managed on a single Von Neuwman CPU through the plethora of programming languages. (Some may argue this point, however.) On a large number of CPUs, managing coupled program states becomes extremely difficult. In a parallel environment, it is up to the programmer to manage the state of I and SUM. In a sequential single CPU environment, the programmer can assume I = 100 after the loop completes. In a parallel environment, where the loop may have been broken into parts, I may equal 10 on one CPU, and 20 on another. Of course, the example is simple and obvious. Creating large complex parallel applications does not present such luxuries, however.&quot;&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&quot;The simple powerful idea of multiple assignment has come back to bite us in the asymptote.&quot;&lt;/i&gt;&lt;/p&gt;
</description>
 <comments>http://www.pervasivedatarush.com/links/the-xx1-issue#comments</comments>
 <pubDate>Wed,  4 Jun 2008 16:03:15 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">220 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title>Multicore is most disruptive</title>
 <link>http://www.pervasivedatarush.com/blogs/multicore-most-disruptive</link>
 <description>Gartner has published a list of the top 10 most disruptive technologies of the next 5 years, and multicore is number one.
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
You can see the whole article  &lt;a href=&quot;http://www.gartner.com/it/page.jsp?id=681107&quot;&gt; here&lt;/a&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
We would probably include cheap storage as the second item on the list - Fry&#039;s has 1-Terabyte drives for $169 this week - but the combination of cheap storage and multicore power is surely a disruptive pairing.  Why is more power and space disruptive?  It is because that additional capability is being provided in a new form, and this changes all the steps that come before it in the IT work flow.  The old ways of utilizing this resource don&#039;t work, and the switch from a procedural code-path to a data flow architecture is certainly disruptive to all the programmers, analysts, coders, and architects that have to construct applications that run on these new platforms.&lt;p&gt;&amp;nbsp;&lt;/p&gt;

The whole industry seems to be waiting, holding back, looking for an approach that will save their efforts from the effects of this disruption.  We encourage and are pushing for more examination and discussion around different approaches, because we believe that the more the software community understands the challenges, the better the dataflow paradigm looks for a whole category of applications.

Is your team looking at multicore approaches?  &lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
 <comments>http://www.pervasivedatarush.com/blogs/multicore-most-disruptive#comments</comments>
 <pubDate>Mon,  2 Jun 2008 17:00:35 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">219 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title>Explaining our secret sauce</title>
 <link>http://www.pervasivedatarush.com/blogs/explaining-our-secret-sauce</link>
 <description>We wish we had some competition.
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
If there was some other vendor implementing dataflow, then we would not have the sole responsibility of teaching people about this approach.  While there are certainly a large number of people who are familiar with the concept, most of the people we are meeting in presenting DataRush are not.
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
When we explain and illustrate the phenomenal results (as in 3 hours to 22 seconds), often the first question is &amp;quot;How can this be?&amp;quot;  My response has been to point them to the Wikipedia entry for dataflow programming.
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;em&gt;&amp;quot;Dataflow languages contrast with the majority of programming languages, which use the imperative programming model. In imperative programming the program is modeled as a series of operations, the data being effectively invisible. This distinction may seem minor, but the paradigm shift is fairly dramatic, and allows dataflow languages to be spread out across multicore, multiprocessor systems for free.&amp;quot;&lt;/em&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
Check it out as a good place to start!&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <comments>http://www.pervasivedatarush.com/blogs/explaining-our-secret-sauce#comments</comments>
 <pubDate>Fri, 30 May 2008 12:32:19 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">218 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title> The tubas are blaring and the drums are pounding.</title>
 <link>http://www.pervasivedatarush.com/blogs/the-tubas-are-blaring-and-drums-are-pounding</link>
 <description>I just returned from our first presentation of DataRush to potential partners, SIs, and developers.  While we have exhibited at a bunch of shows like JavaOne, Innotech, and the HP Global Showcase, and while we have briefed a bunch of smart press people and analysts, this was our first time with this type of audience.
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
Overall, we were very pleased at the interest and response to our story.  The IT environment is looking for practical solutions to utilizing the multicore power that is flooding into the market, and these people see the tremendous opportunity inherent in platform transitions.  
&lt;p&gt;&amp;nbsp;&lt;/p&gt;Today&#039;s Fry&#039;s ad shows a Gateway quad-core for $560. 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;Charles DeGaulle said that to be successful, one needs to &lt;em&gt;&amp;quot;find a parade and get in front of it&amp;quot;&lt;/em&gt;, and this parade is already marching down the street.&lt;p&gt;&amp;nbsp;&lt;/p&gt;
Follow-Up: I have attached the actual presentation I referred to above.  Check it out!&lt;p&gt;&amp;nbsp;&lt;/p&gt;



</description>
 <comments>http://www.pervasivedatarush.com/blogs/the-tubas-are-blaring-and-drums-are-pounding#comments</comments>
 <enclosure url="http://www.pervasivedatarush.com/files/DataRushSneak_0.pdf" length="316661" type="application/pdf" />
 <pubDate>Fri, 30 May 2008 12:12:27 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">217 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title>Low-Latency Technology Outpacing Programmers’ Capabilities</title>
 <link>http://www.pervasivedatarush.com/links/low-latency-technology-outpacing-programmers%E2%80%99-capabilities</link>
 <description>&lt;p&gt;&lt;i&gt;&quot;Again and again, executives said that finding enough programmers who are able to write &quot;parallel&quot; code -- programs that efficiently divide workloads across distributed processors -- is almost impossible. As Wall Street firms rely on multicore processing and even distributed computing to handle the ever-growing number of trade-related messages that are sensitive to any increase in data latency, the divergence between the capabilities of the technology and the capabilities of the programmers is becoming painfully evident.&quot;,&lt;/i&gt;&lt;/p&gt;
</description>
 <comments>http://www.pervasivedatarush.com/links/low-latency-technology-outpacing-programmers%E2%80%99-capabilities#comments</comments>
 <pubDate>Fri, 30 May 2008 11:45:02 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">216 at http://www.pervasivedatarush.com</guid>
</item>
<item>
 <title>The Lawnmower Law</title>
 <link>http://www.pervasivedatarush.com/links/the-lawnmower-law</link>
 <description>&lt;p&gt;This article is a simple illustrative introduction to Amdahl&#039;s Law.
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&quot;Indeed, just as with parallel processors, there is a point of diminishing return. Adding the first 10 riding mowers reduced the time by 36 minutes. Adding another 30 only saved me 4 minutes. Adding 100 mowers makes little sense since I’ll never get below 20 minutes. (Although I would love to see such a lawn mowing demolition derby — in my neighbors yard of course.)&quot;&lt;/i&gt;&lt;/p&gt;
</description>
 <comments>http://www.pervasivedatarush.com/links/the-lawnmower-law#comments</comments>
 <pubDate>Wed, 21 May 2008 12:10:52 -0500</pubDate>
 <dc:creator>steveh</dc:creator>
 <guid isPermaLink="false">214 at http://www.pervasivedatarush.com</guid>
</item>
</channel>
</rss>
