Breshears 5-15 webinar "Parallel Design Patterns" Q3 - General Questions and Comments

Breshears 5-15 webinar "Parallel Design Patterns" Q3 - General Questions and Comments

1. Do you think that students should learn this as a math topic? More like operations management for supply chain, but with task for solving math problems?
2. just a clarification.. mattson says that geometric decomposition refers to arrays or other linear data structures.. recursive data decomposition refers to lists, graphs and trees..
3. Recovery and restart might also be an important aspect of parallel design. Important when in DB application retry-points are hit due to DB locking or e.g. network issues etc.
4. What about false sharing issue. does it affect the decision about the structure to be used or parallel vs serial ?
5. don't u think parallel design may just trigger a new "computer model" paradigm (vs von Neuman machine)not just work on algorithms?
7. Can you include a variety of terms with definitions I can use to construct quiz question to test the students understanding?
9 posts / 0 new
For more complete information about compiler optimizations, see our Optimization Notice.

1. Do you think that students should learn this as a math topic? More like operations management for supply chain, but with task for solving math problems?

No, this is really a programming topic. It is a method for constructing (parallel) code. While the applications can solve math problems, there may not be as much call for this with Math majors. From my experience, Math majors typically got enough programming skill to take analysis course. If we expect everyone that programs to know parallelism, we will need to be teaching those skillswhen teaching programming. Patterns isn't necessary todo parallel programming, it just might make things easier to do when the projects get bigger and more complex.

--clay

2. just a clarification.. mattson says that geometric decomposition refers to arrays or other linear data structures.. recursive data decomposition refers to lists, graphs and trees..

Graphs and trees, I can see as recursive. I'm not sure I'd lump lists in there, too, since these tend to be linear in nature.

My bad. I don't htink any modifications are needed to the presentation material, though. Might need to point out graphs and trees inthe recursive category.

--clay

3. Recovery and restart might also be an important aspect of parallel design. Important when in DB application retry-points are hit due to DB locking or e.g. network issues etc.

Recovery and restart is an important topic for parallel application development, especially when those applications can be running for multiple hours at a time. However, I don't think that this is a topic for a parallel design patterns module.

For DB use, we have plans for material to look at transactional memory. This allows updates to be "backed out" if there is a conflict detected. You can read over and comment on the Course Design Document at http://software.intel.com/en-us/forums//topic/58743.

--clay

4. What about false sharing issue. does it affect the decision about the structure to be used or parallel vs serial ?

False sharing is an important issue for parallel performance. The Parallel Programming Patterns module is strictly for methods of shaping the code of parallel algorithms. I don't want to say that "performance" is a minor consideration for this module, but it is just one aspect of desigining parallel algorithms that needs to be covered. The idea of falsesharing can be raised as appropriate,e.g., when dividing up loop iterations. False sharing is covered in more detail within a module on scalability of threaded applications as one of the bugaboos that can hinder scalability of algorithms on multi-core platforms.

--clay

5. don't u think parallel design may just trigger a new "computer model" paradigm (vs von Neuman machine)not just work on algorithms?

You've asked one of the \$64,000 questions. It already has made changes. For example, there is the effort by Prof. Uzi Vishkin at University of Maryland to develop a multi-core processor that is programmed on the PRAM model of Computer Science (see one of my past blogs for some of my thoughts on this). It's gong to take quite an effort to develop a new model and to promote it enough to get chip manufacturers to convert to the new design. I think we might see a software or programming revolution first. If the different paradigm on how to program multi-core and other parallel architectures is successful, but could be better supported on a different architecture, we would start to see a new hardware designs.

Things like quantum and DNA-based computations have shown us different ways to approach algorithms and parallel computing. Cellular Automata is another. Getting these or other alternatives to the von Neumann will take time. When one or more of these models can be built for massive and sustained computations, we will be in the midst of a revolution like we had when we went from plug board programming to FORTRAN.

--clay

The material for this module is available to registered users of the Academic Community. I don't have the URL handy, so I'll see if I can get someone more authoritative to post that and the registration process.

--clay

7. Can you include a variety of terms with definitions I can use to construct quiz question to test the students understanding?

I'm not sure if we have any plans to provide a glossary with each individual module, but we can certainly consider it.

In the meantime, you can look at the Glossary posted on the Intel Software NetworkWiki. Look at the blog post by Aaron Tersteegfor some details about what's in there and where to find it. Reading Aaron's blog, I see that terms were taken from the book by Mattson, Sanders, and Massingill.

--clay