Description
As @AtelesPaniscus raised in #1099 (comment) there are a number of issues with the current implementation of parallel-letter-frequency
.
These issues are:
- It currently appears early in the
config.json
, meaning that in the current version of exercism.io, it's an early exercise. - The current tests don't check for parallel execution, and it's therefore possible to pass all tests with non-parallel code, and several submitted solutions are doing this.
I feel that the last point could be resolved by adding a hint about the use of multiprocessing
and then trusting the learner to implement it faithfully (the new mentorship model will also help here). I think that will only work though, if we move the exercise to near the end of the list, so that people are confident enough to do it properly.
Having looked at the current implementation more closely, I think that there is a further issue in that it isn't truly using parallel execution, since it is using threading
rather than multiprocessing
. An article discussing parallelisation suggests that threading
doesn't give simultaneous computation, but rather allows one thread to run while another is waiting for something (eg. I/O).
We do also have the option to forego an exercise if we don't think that it makes sense for this track.
I welcome opinions on how we proceed. My current suggestion would be to remove the exercise until we have resolved these issues and know what we want from this exercise.