What Are the Differences Between Parallel and Concurrent Programming?
Parallel programming and concurrent programming are distinct architectures, developed to efficiently address very different needs. Parallel programming is designed to maximize the efficiency of structured processes containing regular, sequential steps. For such workflows, parallel programming optimizes speed and efficiency, enabling a software job to run in less time and with less resource consumption that a different programming model would require (Reitzig, 2014).
An example of parallel programming is payroll processing: a payroll system may request employee hours worked in alphabetical order from a time & attendance system. The payroll system receives the information back in the exact same sequence, and can automatically applies it to update each employee’s earnings without revalidating the employee name.
The time & attendance system could use a difference sequence, receiving requests sorted alphabetically but returning them sorted by seniority. In this situation, with no revalidation, parallel programming would apply information to the wring employee. Instead, concurrent programming would be used, with an extra step (Reitzig, 2014) of validating which employee each response belongs to, before posting it.
This extra step would result in longer run times and greater resource utilization, but would be necessary to achieve accuracy. An example of concurrent programming is Indeed.com’s web-crawler software, which queries external websites to retrieve job listings from those sites. There is little to no correlation between the sequence of outgoing requests and incoming responses. To address this, concurrent programming validates the identity of incoming responses, as Indeed cannot assume that they have returned in the order sent.
If these examples raise more questions, it is because many applications today rely on distributed programming, which incorporates elements of both parallel and concurrent programming. Historic boundaries have blurred, and will become even more opaque with the increasing use of technologies like Hadoop (Sugumar, 2015), which incorporate elements of both.
- Reitzig, Raphael (2014, January 26). Retrieved from http://cs.stackexchange.com/questions/19987/difference-between-parallel-and-concurrent-programming
- Sugumar, Iniyavel (2015, June 24). Retrieved from https://www.quora.com/What-is-the-difference-between-concurrent-computing-parallel-computing-and-distributed-computing
Can a good academic essay writing sample save your life? Well, we hope things won’t get as dramatic at your college, but it definitely can save your academic record one day. It’s always nice having a solid back-up plan, especially when it comes to college education. So place your order to get a great academic essay writing sample for your college life emergencies. Though it may seem you don’t need one, take it from us, one day (or maybe night, to be specific) it will help you to get a few extra hours of sleep, which equals a salvation, if you are a college student.