Final Edit: I just realized that when use the word "parallelism", it's almost parallelism==ILP
, I originally thought even a single instruction could be divided into several phrases, and at that level there would be some parallelism, but then I realized this has no meaning. Both my title and my example didn't mentioned anything about more than one threads' parallelism as done by HyperThreading, so @user110971's is the correct answer, without doubt anymore. (In the philosophical level, I just need a base-case condition to return my recursiveness of finding the deepest part of parallelism)
Edit3: I made a graph for my Edit2, and I found this video on YouTube about HyperThreading useful.
Edit2: In short, for my question I adopt the definitions on Wikipedia, and for the definition of the terms:
- Parallel: Two threads, run independently, at any physical instant. So one thread won't interrupt the other, at any instant.
- Concurrent: Two threads, run independently, interleavedly is allowed, i.e. not restricted to parallel, and one can interrupt the other.
- In short, for me and Wikipedia writers, Concurrent includes Parallel. Thanks.
Edit: Just to be clear, for me parallelism means true parallelism, I add a "true" for it because people I talked to tend to think parallel==concurrent
. (See my second link)
Is it true that on modern processor, "true" parallelism is possible on a single core? I asked elsewhere but didn't get a confirming answer. What I want to know is e.g. whether at t=0, two instructions are fetched and executed. At the same physical instant.
My question came from here:
parallel computing is impossible on a (one-core) single processor, as only one computation can occur at any instant (during any single clock cycle).