Logout

Home Topic 4 Last Next

4.1.16

Evaluate the decision to use concurrent processing in solving a problem.

 

Teaching Note:

LINK Thinking ahead, thinking procedurally. Connecting computational thinking and program design, introduction to programming.

 

Sample Question:

From Sample Paper 1 2014:

Refer back to the last part of the sample question on 4.1.14.

 

JSR Notes:

In evaluating the decision to use concurrency, you ask yourself, is it a good idea, or indeed possible to do concurrent processing in this situation? And your evaluation will therefore include words such as "good idea", or "not possible", etc.

Definitely do refer back to the last part of the sample question on 4.1.14 (as mentioned above).

 

 

Non-Computer Concurrency Evaluation Examples

House building example

Can the plumber actually install the toilet if the electrician is working in the kitchen? The answer depends on if the water has to be turned off when the electrician is working in the kitchen, or indeed if the electricity to the bathroom has to be disabled while the electrician is working elsewhere in the house.

So an evaluation of a particular situation might be:

"Yes, it is possible in this case to install the toilet the same day in the work schedule that the electrician is to be working in the kitchen. This is possible since the water does not have to be turned off while the electrician is working in the kitchen. And it is desirable because both of these things should be done early on in the work, so that the workers can both access water in the kitchen, and use the bathroom."

 

IASAS Football Tournament Example

Can two games go on at the same time? One consideration is if all the fans will want to watch one over the other, such as having the 3rd place game and the championship at the same time. Another will be how much time the tournament is scheduled for and how many games are to be played.

So an evaluation of this particular situation might be:

"Yes, two games can go on for most of the tournament, but leave the 3rd place and championship game to be played at separate times so fans can watch both. In fact playing concurrent games will be necessary for the first two days of the tournament, in order to get in all the games that are required for a round-robin of 7 teams. So, in summary, running concurrent games is a good decision for days 1 and 2, but not necessary, nor advised, for the final games."

 

Computer Concurrency Evaluation Examples

Is concurrency possible?

In your evaluation of whether or not to implement a particular kind of concurrency, you should first ask yourself is concurrency physically possible? Do both the operating system and computer hardware to be used support multi-threading (or other concurrent processing mechanisms). But also, what would happen if the operating system or the computer being used cannot support the concurrency you are considering using? Will the program and/or the computer crash with concurrency implemented?

Is concurrency worth it?

Also, is it worth the bother of implementing threading, if the process would not take that long anyway without concurrency? For this questions, the size of the tasks to be broken down into concurrent processes should be considered.

So an evaluation of a particular situation might be:

"In the case of rendering a 3d model in Maya on a 2019 Macbook Air, yes, concurrency is both desirable and possible. First of all, it is desirable because rendering 3d models takes a long, long time - long enough that the user will notice. Secondly, different sides (dual core scenario) or corners (quad core scenario) of the model can be rendered at the same time without having to wait for each other. And finally, concurrent processing is possible since, yes, the application Maya, the Mac OS, and the laptop's processor, all do support concurrent processing."

But:

"It makes no sense to bother with concurrency for running three grades processing methods at the same time, because even for a class of 30 students, it's not going to take more than a second or two."