Home Topic 4 Last Next


Describe how concurrent processing can be used to solve a problem.


Teaching Note:

For example, building a house, production lines, division of labour.

Students will not be expected to construct a flow chart or pseudocode related to concurrent processing.


Sample Question:


JSR Notes:

Where the first of the Concurrency assessment statements was simply "identify" parts of a problem that can be implemented concurrently, this is more "describing" how concurrency works. And really, the point is that because things can be done independently, they can be done at the same time, and this makes the whole process go more quickly.

Non-Computer Examples

Building a house

So with the house example from 4.1.14, there are indeed a bunch of different things that can go on at the same time; they therefore should be done at the same time.
... and proceed to produce the GANTT chart (see the Sample Paper example at the previous assessment statement, 4.1.4)...

A factory production line

And a production line (i.e. assembly line, like a car factory) also includes both sequential and concurrent processing. Picture one complex car assembly line area where four different robots go about their concurrent processes at the same time on four different corners of the car. In fact, at each step along the production line there are likely things being done concurrently.
... and proceed to produce the GANTT chart...

Computer Examples

In the case of programming concurrency, the "division of labor" mentioned in the Teaching Note can first of all relate to having different specialized classes, and different specialized methods; i.e. decomposition. But if we are talking about division of labor of processing, as discussed in 4.1.14, we would divide up the tasks to run as different concurrent threads.

Take a look at the videos in this section, and see the example where we would make three "threads" to do the following three methods all at the same time:

calculateAverages( )
calculateHighestOverallGrade( )
calculateHighestGradePerSubject( )

Remember what makes this possible is that all three of these methods, running as threads, can run at the same time; none of them relies on the others to be finished.
... so once you have identified tasks which can be concurrent, proceed with implementing threads...



So back to the assessment statement itself: "Describe how concurrent processing can be used to solve a problem". Here is a good, general, answer:

Concurrent processing can be used to solve a problem by looking to see if there are things that can be done at the same time, and doing/processing those things "concurrently". By doing so, the overall time it takes to accomplish the full problem is reduced. In an IT situation, this is only possible if the software and hardware support concurrency. In terms of hardware, it means the CPU must be either multi-core and/or support multi-threading.

And if there were a particular scenario that you were to describe, having identified various things that could go on a the same time, you would then proceed to organize those tasks into a nice big GANTT chart...