Talk:Multithreading (computer architecture)

Unnamed section
Anno UK83.67.105.130 11:01, 2 October 2007 (UTC) i think that this should be merged as it would provide greater laerning potential as one document for cross refencing pourposes

MAMF: I see no point in combining the general and specific articles related to multi-threading. Having browsed most of the links I feel the current setup is better. A general high-level discussion article, with links for more depth when desired (and back should you start in an article with more detail than you want) —Preceding unsigned comment added by 83.160.178.134 (talk) 12:39, 13 June 2008 (UTC)


 * I agree indeed, but then this page needs to be revamped, as it was originally intended to only cover the Hardware multithreading, thus the previous name before the renaming. As of now, if somebody looks for software multithreading information, he will get very confused by what the page says which is specific to hardware multithreading. I'd suggest to move the detailed hardware material to a separate page, and link to there from here. Samuel Thibault Fri, 18 Sep 2009 13:47:17 +0200

"Execution times of a single-thread are not improved but can be degraded." I strongly doubt of this. If there is really only one thread, then it can use the whole computing power and caches for itself. When running two threads that do not share data, that's another story of course Samuel Thibault 16:27, 1 December 2008 (UTC)


 * That's the point the sentence is trying to make. Dyl (talk) 07:41, 28 December 2008 (UTC)


 * Then I'll clarify the sentence, because that's not what I understood from it. Samuel Thibault 13:44, 1 January 2009 (UTC) —Preceding unsigned comment added by SamuelThibault (talk • contribs)


 * Errr, no, looking at the list again, running two threads is the point of the previous item in the list: "Multiple threads can interfere with each other when sharing hardware resources such as caches or translation lookaside buffers (TLBs).", here "multiple threads" does not necessarily mean "multiple threads of the same process". —Preceding unsigned comment added by SamuelThibault (talk • contribs) 13:49, 1 January 2009 (UTC)

Mmm, I'm tempted to drop the reference to multithreaded cryptography. If we let that one in, then I'm afraid we'll get a big bunch of "multithreaded this" and "multithreaded that", as multithreading is potentially applied to any algorithm... Samuel Thibault 16:41, 22 Feb 2009 (UTC)

Multithreading vs SMT?
Can somebody explain the differences between this article and Simultaneous Multithreading? As these two articles are written now, it looks that overlap is huge, and it is tempting to merge this article into SMT (which is much more specific and universally recognizable term than 'Multithreading'). Ipsign (talk) 05:09, 11 October 2010 (UTC)


 * As this article is trying to explain, SMT is a sub-type of MT. As such, this article covers other types of MT. There are also errors in the Simultaneous multithreading article. I don't agree that SMT is a more widely recognized term. If anything, the Intel Marketing trademark 'Hyperthreading' is more widely recognized. Dyl (talk) 03:48, 12 October 2010 (UTC)
 * Hyperthreading is (arguably) one of SMT implementations, so I would argue they should belong to the same article (I dont care if it is named SMT or Hyperthreading). And when somebody searches for 'multithreading', I don't think they expect to see this article (more likely, it is about multithreading in software, which is currently under Thread (computer science)). In addition, most of material in current Multithreading article is completely unsourced. I will be arguing complete rewrite and/or merge on these grounds. Ipsign (talk) 14:03, 17 October 2010 (UTC)


 * You want to merge multithreading because it is completely unsourced? Where's the policy that mandates such action? Also, where would you merge this article too? Rilak (talk) 06:59, 29 October 2010 (UTC)
 * SMT is ability of a single processor to simultaneously dispatch instructions from more than one hardware thread context. Because there are two hardware threads per physical processor, additional instructions can run at the same time. The POWER5 processor is a superscalar processor that is optimized to read and run instructions in parallel. Simultaneous multi-threading allows you to take advantage of the superscalar nature of the POWER5 processor by scheduling two applications at the same time on the same processor. No single application can fully saturate the processor. Simultaneous multi-threading is a feature of the POWER5 processor and is available with shared processors.[Mohammed zakariya.pune] — Preceding unsigned comment added by 122.182.3.154 (talk) 11:52, 27 September 2011 (UTC)

Rewrite
I've found a pretty authoritative journal article on the subject, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.9105&rep=rep1&type=pdf, and feel that Multithreading should be rewritten based on its findings (other sources are obviously also welcome). Is there anybody willing to do it (I might do it myself, but it will probably take quite a while)? Ipsign (talk) 09:37, 26 October 2010 (UTC)

Proposed renaming
As Multithreading word is clearly used in at least two different senses, I propose to: If nobody objects to this proposal in a few weeks, I'm planning to go ahead with it. Ipsign (talk) 09:41, 26 October 2010 (UTC)
 * rename Multithreading into Explicit multithreading in processors
 * create Multithreading page as disambiguation page, having links both to Explicit multithreading in processors and to Thread (computer science).


 * I don't think that there is a need for multithreading to be a disambiguation page, and I am not sure how you concluded that disambiguation is needed. I notice that there is a hatnote that mentions threads, but I cannot see how you can confuse a thread with multithreading. Its like confusing instruction with superscalar. Rilak (talk) 06:52, 29 October 2010 (UTC)


 * Actually, disregard the above comment, I just remembered that the term multithreading is used in in the context of software. What I object to is the proposed title. I think it makes it a bit difficult to determine quickly that it is about multithreading as "multithreading" is not at the front. I propose that "Multithreading (computer architecture)" be used instead. I considered "Multithreading (computer hardware)", but I think it is not appropriate as it implies that the article is about physical realizations of multithreading and not the technique and theory. Rilak (talk) 07:24, 29 October 2010 (UTC)
 * Can you clarify what is your exact proposal? There are several pages involved, and it is necessary to understand proposals completely before commenting on them. My point is the following: when somebody looks for "Multithreading", we cannot tell what s/he's looking for (current Multithreading page on CPU multithreading, or Thread (computer science)); therefore, per WP:PRIMARYTOPIC there should be a disambiguation page for Multithreading, which is what I've proposed. Ipsign (talk) 09:32, 30 October 2010 (UTC)


 * I apologize that my previous comments were poorly considered and witten, and have failed to clearly state my position regarding your proposal. Allow me start over.
 * I agree that disambiguation is needed. However, I disagree that the article about multithreading in processors should be renamed to "Explicit multithreading in processors" because of three reasons. Firstly, it is clear in the literature and common usage that the topic is called multithreading. Secondly, your proposed title is impractical because of its length. It makes it difficult for readers to get to it in the search box, because it's not easy to remember and because the dynamic search suggestions will not return your proposed title as it begins with "Explicit", not "Multithreading". Thirdly, I think that most people look at the first word of every title when looking for the article they want. If the title does not include the term that they are looking for at the beginning, then they are going to have to expend additional effort to find the article they want. Readers shouldn't have to look that hard, which is why I believe the practice of disambiguating titles with qualifiers in parenthesises is so widespread. I think your proposed title makes it unnecessarily difficult to find and to identify the topic.
 * My solution to the above problems is to rename the article about multithreading in processors to "Multithreading (computer architecture)". I've considered "Multithreading (computer hardware)", but I don't think that it is an appropriate title because it implies that the article is only about implementations of multithreading and not its theory. Rilak (talk) 04:01, 31 October 2010 (UTC)
 * Thanks for clarifying it. I assume (please correct me if I'm wrong) that we agree on disambiguation page for Multithreading and the only disagreement we have is about name which should be given to current Multithreading page. Actually, I do not insist on Explicit multithreading in processors (though it is supported by rather authoritative ), but I feel that Multithreading (computer architecture) is too generic (implying much more than CPUs which it is really about); what about, for example, Multithreading (CPU)? Ipsign (talk) 09:38, 31 October 2010 (UTC)


 * Yes, we agree that disambiguation is needed, but we disagree on the future name of this article.
 * While I know that you are willing to consider titles other than the explicit multithreading one, I feel that I should comment on the term itself. The term isn't one that has found widespread use, even among members of the computer architecture community. Google Scholar finds about 75 results for "explicit multithreading". That is quite insignificant in terms of numbers compared to the wide usage of multithreading. The survey also mentions that the categorization that it uses was created for the purpose of excluding discussion multi-scalar and dataflow processors from the paper, which does not describe how the wider community categorizes multithreading schemes. So if we are to conform to WP's WP:NPOV and WP:UNDUE policies, the article's title and content should reflect the majority view (that is that multithreading is multithreading) while making a note of the survey's categorizations (since a paper published in ACM Computing Surveys with around 133 citations is prominent and wirthy of note).
 * Regarding the title "Multithreading (CPU)", I think it is misleading because multithreading appears in more than just CPUs. For example, the survey mentions media and network processors. These are not just general-purpose processors adapted to be more suitable for media or network processing. The survey discusses the Intel IXP family of network processors that have special offload engines which are multithreaded, and which are not considered CPUs. Additionally, I think that modern GPUs and niche processors such as those from Clearspeed are multithreaded, they they are not CPUs. I think that a title needs to be inclusive of all devices that feature multithreading, which is why I think that "Multithreading (computer architecture)" is more appropriate. I understand that "computer architecture" is potentially confusing, but it is no more confusing than "computer science", which is widely used for disambiguation. (Computer science either gets blank stares or is equated to IT or computer literacy by most people). i am, of course, open to even better titles. Rilak (talk) 03:13, 1 November 2010 (UTC)
 * I still don't really like "Multithreading (computer architecture)" (as it is overbroad - for example, current Multithreading does not cover multi-scalar processors, so it likely should have narrower name, with multi-scalar processors going into separate article, probably with its own link from DAB page we've agreed on). On the other hand, I feel that creating DAB page is more important than arguing on exact name for this page, so I agree to:

Do we have an agreement on it? Ipsign (talk) 05:15, 1 November 2010 (UTC)
 * move current Multithreading page into Multithreading (computer architecture)
 * create new Multithreading page as an disambiguation page, with links both to Multithreading (computer architecture) and to Thread (computer science).
 * Yes, we have an agreement on the naming of the articles. You can rename them and create the disambiguation page whenever you please. Rilak (talk) 07:39, 1 November 2010 (UTC)
 * Renamed per proposal, please take a look and comment if necessary. Ipsign (talk) 14:24, 1 November 2010 (UTC)

On article title
I've separated further discussion on article title under a separate heading, I hope User:Rilak won't object. Ipsign (talk) 14:02, 1 November 2010 (UTC)
 * However, I would like to use this oppurtunity to comment on your position that "Multithreading (computer architecture)" is overbroad. In a paper by Sohi et al. called "Multiscalar Processors" that was presented at ISCA '95, on page nine they state that multiscalar processors are not multithreaded and should not be confused as such. They elaborate as to why and they cite several differences. This paper, IIRC, is the seminal paper on multiscalar processors and is cited over 800 times, according to Google Scholar. So, my question is, have the definitions of multiscalar and multhreading changed dramatically between 1995 to 2003, when the ACM survey was published, and the present? If not, I don't think that multiscalar and mulithreading is going to be often confused with each other, and even if they were confused, I don't think that it's that big a problem to require better a title. Rilak (talk) 07:39, 1 November 2010 (UTC)
 * If multi-scalar processors are not multi-threading, then what is multi-threading which is not covered by Explicit multithreading in processors (as described in previously quoted Survey article http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.9105&rep=rep1&type=pdf)? I'm not an expert on hardware multithreading (besides certain aspects of SMT), so I can only try to reason based on material we can find. Ipsign (talk) 14:02, 1 November 2010 (UTC)

Outdent

I'm not sure what you mean. Are you asking what implicit multithreading is? If this is what you're asking, then I'm going to say that implicit multithreading is one way to categorize parallel execution paradigms. Regarding your emphasis when you mentioned the ACM survey, is it meant to say you are convinced that it's more authorative? Finally, I am certainly not an authority on computer architecture. I hope that I am not giving the impression that I am. Like you, I am relying on published material to form a position regarding whether multiscalar is or is not multithreading. The paper that I mentioned previously is not the seminal work on multiscalar processors. Manoj Franklin's The Multiscalar Architecture, a thesis, appears to be the one. You can find it at Citeeseer like the Sohi paper. Rilak (talk) 05:31, 2 November 2010 (UTC)
 * "Are you asking what implicit multithreading is?" - no, I'm trying to figure out where in the current Multithreading (computer architecture) article it is mentioned? And if it is not in the article, do you think it belongs there? Ipsign (talk) 08:44, 2 November 2010 (UTC)
 * Actually, now (after going through several dozens of DAB links) I tend to withdraw my objection to the article name, though it seems that it will need to be heavily expanded to cover this whole topic. Ipsign (talk) 12:38, 3 November 2010 (UTC)
 * I scrolled through the article and I think that it only covers what the ACM paper calls explicit multithreading. I don't think that we need to cover implicit multithreading here as those architectures are not generally categorized as multithreading. Rilak (talk) 03:13, 8 November 2010 (UTC)

System thread
I worked with some mainframes a long time ago which implemented hardware multithreading with two streams, but reserved one stream for the system. The instructions were split into one or more packets which travelled down the pipeline in two streams and the stages of the pipeline just took the next packet from either stream according to priority and if the resources were available, there was no switching overhead. There were two sets of registers and the caches had an identifier per line saying which process they were associated with or whether they were shared. Interrupts were normally vectored to the system reserved stream and it got higher priority as soon as it received an interrupt, it also dealt with things like scheduling the processor and decoding virtual addresses for the input output.

Is there a name for this type of multithreading which was invisible to most users? The arrangement meant single threaded processes ran better than they might otherwise because many overheads were dealt with in parallel in the background. Do any processors nowadays do this business of having a second stream deal with such overheads, or does it happen in practice anyway when not all available hardware threads are being used by programs? Dmcq (talk) 12:21, 3 November 2010 (UTC)

External links modified (February 2018)
Hello fellow Wikipedians,

I have just modified one external link on Multithreading (computer architecture). Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20100821074918/http://cache-www.intel.com/cd/00/00/01/77/17705_htt_user_guide.pdf to http://cache-www.intel.com/cd/00/00/01/77/17705_htt_user_guide.pdf

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 05:21, 8 February 2018 (UTC)