Future The Distributed Computing

Distributed Computing

Networking

There are two critical forces shaping software development today. One is the popular adoption of Parallel Computing and the other is the trend toward Service Oriented Architecture. Both ideas have existed for quite a while, but the current technology of CMT(Chip Multi-Threading) processor designs, horizontally scaled systems, near zero latency interconnects and new web service standards are all accelerating both ideas into the main stream and are becoming adopted everywhere. Now a days most desktop machines or even laptops are being powered by multi-core or CMT processors. A more intriguing and important issue is whether the current state of software development is sufficient to produce good quality parallel applications for the new computing machines.  Advanced scientific and engineering communities have used parallel computing to solve their large scale complex problems for a long time. But even these advanced developers find it hard to implement their parallel applications effectively. These advanced developers have designed and implemented several interesting programming models to help develop parallel applications. The most popular ones are OpenMP for shared memory programming and MPI (Message Passing Interface) for distributed memory programming. Although there are several other important programming models such as UPC(Unified Parallel C)  and CAF(Co-Array Fortran), we will discuss only OpenMP and MPI. Even though OpenMP and MPI are widely used today, both models have their own intrinsic constraints and still don’t meet the rigorous requirements of  many parallel application types.

This article will also talk about another important technology trend related to parallel computing, Grid computing. Internet technology has steadily improved during the past several years. People are exploring and beginning to transform the internet from passive information sharing to active service sharing and resource sharing. Grid computing is an important technology that makes the computing power circulate like currency so it’s utilized in the optimal way.

The Distributed Computing

here are two critical forces shaping software development today. One is the popular adoption of Parallel Computing and the other is the trend toward Service Oriented Architecture. Both ideas have existed for quite a while, but the current technology of CMT(Chip Multi-Threading) processor designs, horizontally scaled systems, near zero latency interconnects and new web service standards are all accelerating both ideas into the main stream and are becoming adopted everywhere.

The case study section will discuss the unique challenges from two classes of real life applications:  parallel search and parallel simulation. These two classes of applications are widely used in various fields of academics and industries. Both classes of real applications exemplify the difficulty of developing parallel applications and point toward one potential direction for the future advancement of parallel software technology.
There are two critical forces shaping software development today. One is the popular adoption of Parallel Computing and the other is the trend toward Service Oriented Architecture. Both ideas have existed for quite a while, but the current technology of CMT(Chip Multi-Threading) processor designs, horizontally scaled systems, near zero latency interconnects and new web service standards are all accelerating both ideas into the main stream and are becoming adopted everywhere. Now a days most desktop machines or even laptops are being powered by multi-core or CMT processors. A more intriguing and important issue is whether the current state of software development is sufficient to produce good quality parallel applications for the new computing machines.  Advanced scientific and engineering communities have used parallel computing to solve their large scale complex problems for a long time. But even these advanced developers find it hard to implement their parallel applications effectively. These advanced developers have designed and implemented several interesting programming models to help develop parallel applications. The most popular ones are OpenMP for shared memory programming and MPI (Message Passing Interface) for distributed memory programming. Although there are several other important programming models such as UPC(Unified Parallel C)  and CAF(Co-Array Fortran), we will discuss only OpenMP and MPI. Even though OpenMP and MPI are widely used today, both models have their own intrinsic constraints and still don’t meet the rigorous requirements of  many parallel application types.

This article will also talk about another important technology trend related to parallel computing, Grid computing. Internet technology has steadily improved during the past several years. People are exploring and beginning to transform the internet from passive information sharing to active service sharing and resource sharing. Grid computing is an important technology that makes the computing power circulate like currency so it’s utilized in the optimal way.

The case study section will discuss the unique challenges from two classes of real life applications:  parallel search and parallel simulation. These two classes of applications are widely used in various fields of academics and industries. Both classes of real applications exemplify the difficulty of developing parallel applications and point toward one potential direction for the future advancement of parallel software technology.

There is a famous ancient Chinese saying “A craftsman would sharpen his tools before  laboring on his work”. This is very true on software development, especially for complex parallel applications. Many experienced software developers are more afraid of programming faults caused by wild pointer or memory leakage than by bad logic. Parallel application development amplifies significantly the programming difficulty. Race conditions are common and difficult problems in multi-thread programming. Even the logic problem related to load balancing is pretty hard to fix. These tough problems would make a competent programmer feel humble. In the tools section of this article, we will talk about the important tools for the various development stages during the software development cycle. We will also discuss how to maximize the existing tools to reduce the pain of parallel application development.

There is a famous ancient Chinese saying “A craftsman would sharpen his tools before  laboring on his work”. This is very true on software development, especially for complex parallel applications. Many experienced software developers are more afraid of programming faults caused by wild pointer or memory leakage than by bad logic. Parallel application development amplifies significantly the programming difficulty. Race conditions are common and difficult problems in multi-thread programming. Even the logic problem related to load balancing is pretty hard to fix. These tough problems would make a competent programmer feel humble. In the tools section of this article, we will talk about the important tools for the various development stages during the software development cycle. We will also discuss how to maximize the existing tools to reduce the pain of parallel application development.

Advertisements

4 responses to “Future The Distributed Computing

  1. Excellent go through, I only just passed this particular onto the colleague who had been doing a little bit of research on that. And your dog actually bought me dinner because I uncovered it with regard to him happy So i want to rephrase that.

  2. I think other web-site proprietors should take this website as an model, very clean and magnificent user friendly style and design, let alone the content. You are an expert in this topic!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s