I like the idea of this piece. My trouble with it boils down to getting concurrent and parallel wrong, or mangled somewhat.
Concurrent happens when multiple tasks are happening together. This can be task switching on a single processor, or it can mean they run together on a multiprocessor, or multi core processor.
Secondly, given a sufficiently fast single processor, there is no meaningful difference in concurrency.
Parallel is like concurrent in that multiple tasks are being processed, executed at the same time. What makes parallel different from concurrent is all the tasks are essentially the same, with each of them working on data intended for them to process. Secondly, parallel processing happens on multiprocessors. That is compute systems having multiple cores, each running the task on data made available to a given instance of the task.
Concurrency is a superset of parallel in that all the things that differentiate parallel processing satisfy the requirements needed to call a given compute exercise a concurrent one.
However, concurrency meets other requirements beyond those needed to label ancompute exercise as parallel processing.
I prefer and use the older term, multiprocessor and multiprocessing because "core" can be confusing. In this context they are essentially the same.
I also use the term "sequential compute" to refer to single threaded, single core, non multiprocessing units capable of one threadnof execution.
Asynchrony is a great addition to the topic!
After reading it all again, I submit that Asynchrony is a subset of concurrency, just like parallel is, and it is important enough to warrant an addition to the lexicon, just as parallel is.
However, one matter remains unclear to me as of my writing this:
Does this statement remain true for Asynchrony as it does currently for concurrent, which contains parallel as a specific case?
-->Given a sufficiently fast unprocessed, capable of sequential compute only, a single core, single threaded CPU, there is nobeffectiv3 difference between concurrency done via task switching and concurrency done with multiprocessing.
Is that true for Asynchrony?
I believe it is, and if so, I believe my comment here has a a lot more value than my earlier one.
Great discussion, and Asynchrony is added to my computing lexicon.
I like the idea of this piece. My trouble with it boils down to getting concurrent and parallel wrong, or mangled somewhat.
Concurrent happens when multiple tasks are happening together. This can be task switching on a single processor, or it can mean they run together on a multiprocessor, or multi core processor.
Secondly, given a sufficiently fast single processor, there is no meaningful difference in concurrency.
Parallel is like concurrent in that multiple tasks are being processed, executed at the same time. What makes parallel different from concurrent is all the tasks are essentially the same, with each of them working on data intended for them to process. Secondly, parallel processing happens on multiprocessors. That is compute systems having multiple cores, each running the task on data made available to a given instance of the task.
Concurrency is a superset of parallel in that all the things that differentiate parallel processing satisfy the requirements needed to call a given compute exercise a concurrent one.
However, concurrency meets other requirements beyond those needed to label ancompute exercise as parallel processing.
I prefer and use the older term, multiprocessor and multiprocessing because "core" can be confusing. In this context they are essentially the same.
I also use the term "sequential compute" to refer to single threaded, single core, non multiprocessing units capable of one threadnof execution.
Asynchrony is a great addition to the topic!
After reading it all again, I submit that Asynchrony is a subset of concurrency, just like parallel is, and it is important enough to warrant an addition to the lexicon, just as parallel is.
However, one matter remains unclear to me as of my writing this:
Does this statement remain true for Asynchrony as it does currently for concurrent, which contains parallel as a specific case?
-->Given a sufficiently fast unprocessed, capable of sequential compute only, a single core, single threaded CPU, there is nobeffectiv3 difference between concurrency done via task switching and concurrency done with multiprocessing.
Is that true for Asynchrony?
I believe it is, and if so, I believe my comment here has a a lot more value than my earlier one.
Great discussion, and Asynchrony is added to my computing lexicon.