Talk:Multithreading (computer architecture): Difference between revisions

Content deleted Content added
I have never noticed a single thread slowdown
ClueBot III (talk | contribs)
m Archiving 2 discussions to Talk:Multithreading (computer architecture)/Archive 1. (BOT)
 
(44 intermediate revisions by 17 users not shown)
Line 1:
{{Talk header}}
{{WikiProject Computing}}
{{WikiProject banner shell|class=Start|vital=yes|1=
{{WikiProject Computing |importance=mid |hardware=y |hardware-importance=Mid}}
}}
{{User:ClueBot III/ArchiveThis
| age =2160
| archiveprefix =Talk:Multithreading (computer architecture)/Archive
| numberstart =1
| maxarchsize =75000
| header ={{Archive}}
| minkeepthreads =5
| format = %%i
}}{{Archives|bot=ClueBot III|age=90}}
<!-- Template:Setup cluebot archiving -->
 
== Rewrite ==
Anno UK[[User:83.67.105.130|83.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
 
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)? [[User:Ipsign|Ipsign]] ([[User talk:Ipsign|talk]]) 09:37, 26 October 2010 (UTC)
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) <small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/83.160.178.134|83.160.178.134]] ([[User talk:83.160.178.134|talk]]) 12:39, 13 June 2008 (UTC)</small><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
 
== Proposed renaming ==
''"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 [[Author:SamuelThibault|Samuel Thibault]] 16:27, 1 December 2008 (UTC)
 
As ''Multithreading'' word is clearly used in at least two different senses, I propose to:
* 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)]].
If nobody objects to this proposal in a few weeks, I'm planning to go ahead with it. [[User:Ipsign|Ipsign]] ([[User talk:Ipsign|talk]]) 09:41, 26 October 2010 (UTC)
 
: 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''. [[User:Rilak|Rilak]] ([[User talk: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. [[User:Rilak|Rilak]] ([[User talk: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. [[User:Ipsign|Ipsign]] ([[User talk: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. [[User:Rilak|Rilak]] ([[User talk: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 [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.9105&rep=rep1&type=pdf]), 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)]]? [[User:Ipsign|Ipsign]] ([[User talk: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. [[User:Rilak|Rilak]] ([[User talk: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:
* 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)]].
Do we have an agreement on it?
[[User:Ipsign|Ipsign]] ([[User talk:Ipsign|talk]]) 05:15, 1 November 2010 (UTC)
:::::::: Yes, we have an agreement on the naming of the articles. You can rename them and create the disambiguation page whenever you please. [[User:Rilak|Rilak]] ([[User talk:Rilak|talk]]) 07:39, 1 November 2010 (UTC)
:::::::::Renamed per proposal, please take a look and comment if necessary. [[User:Ipsign|Ipsign]] ([[User talk: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. [[User:Ipsign|Ipsign]] ([[User talk: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. [[User:Rilak|Rilak]] ([[User talk: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. [[User:Ipsign|Ipsign]] ([[User talk: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. [[User:Rilak|Rilak]] ([[User talk: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? [[User:Ipsign|Ipsign]] ([[User talk: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. [[User:Ipsign|Ipsign]] ([[User talk: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. [[User:Rilak|Rilak]] ([[User talk: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? [[User:Dmcq|Dmcq]] ([[User talk: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 [[special:diff/824577468|my edit]]. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit [[User:Cyberpower678/FaQs#InternetArchiveBot|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.
 
{{sourcecheck|checked=true|needhelp=}}
 
Cheers.—[[User:InternetArchiveBot|'''<span style="color:darkgrey;font-family:monospace">InternetArchiveBot</span>''']] <span style="color:green;font-family:Rockwell">([[User talk:InternetArchiveBot|Report bug]])</span> 05:21, 8 February 2018 (UTC)