« WinDbg | Main | Software Organization »

Concurrency and Distribution in computing

With the advent of multithreading, concurrent processing is now available to application programmers. And synchronization of shared object is more prevalent than it used to be. A shared object is an object which can be modified and or accessed simultaneously by more than one thread of execution. Often you will see books, blogs, articles, and discussions about serialized and synchronized accesses to those shared objects. And there are a few general patterns to attack those serialization and synchronization problems.

Any software engineering and computer science course arms people with the weapons necessary to tackle those situations. But where can we build the intuition. For example, we all know if one queue of customers in a bank is serverd by ( say ) three tellers, it is better than three queues independently served by three tellers.

Here comes the subject of Operations research. It is a very vast branch of Applied Math, but I still don't understand why computer science curriculum does not have the basics like PERT/CPM and scheduling etc. from that aspect. This is where one can think parallel processing. Once this lively topics are taught, I think the parallel programming would become more friendly to uninitiated.

 

This will also give a very good idea to partition a problem for parallel processing. Once this is understood and intuitively obvious, the distribution and distributive computing becomes just the next step.

Posted on Tuesday, December 23, 2008 at 07:24PM by Registered CommenterProkash Sinha | CommentsPost a Comment

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
All HTML will be escaped. Hyperlinks will be created for URLs automatically.