您對計算機了解一兩件事。您幾乎可以加快CPU的工作及其性能。而且您知道更多的線程意味著更好的性能。但是當涉及到它時,您實際上知道人們談論線程時的含義嗎?你知道他們是什么嗎?你知道為什么它們很重要嗎?今天,我們詳細介紹了您需要了解的有關線程的所有信息。我們將討論它們為何如此重要。我們將討論它們如何與您的CPU一起工作。我們將詳細說明它們的作用。繼續閱讀以了解有關CPU線程的更多信息,以及為什么它們對您的系統性能至關重要。
英特爾超線程技術可以將系統的處理性能提高多達30%。超線程從一個物理處理器核心創建兩個邏輯處理器。它通過在每個內核上提供兩組寄存器(稱為體系結構狀態)來實現。在Intel套接字上啟用超線程后,每個內核上的第二個架構狀態可以接受來自操作系統(或虛擬機管理程序)的線程。這兩個線程仍將共享稱為執行單元的內部微體系結構組件。這可以使單個套接字系統的處理性能提高多達30%。在雙套接字系統中,超線程最多可提供15%的改進。如果性能調整在您的環境中至關重要,則在有無超線程的情況下測試性能都可能很重要。
超線程技術是Intel引入的一種同步多線程技術的形式,而該技術背后的概念已獲得Sun Microsystems的專利。在架構上,采用超線程技術的處理器每個內核包含兩個邏輯處理器,每個邏輯處理器都有自己的處理器架構狀態。每個邏輯處理器可以獨立于共享同一物理核心的其他邏輯處理器獨立地暫停,中斷或定向為執行指定線程。
與使用兩個單獨的物理處理器的傳統雙處理器配置不同,超線程內核中的邏輯處理器共享執行資源。這些資源包括執行引擎,緩存和系統總線接口。資源共享使兩個邏輯處理器可以更有效地相互協作,并允許邏輯處理器從停滯的邏輯核心借用資源(假設兩個邏輯核心都與同一物理核心相關聯)。處理器在等待發送的數據時停頓,因此可以完成對當前線程的處理。使用超線程或多核處理器時看到的收益程度取決于軟件的需求,以及軟件和操作系統編寫得如何有效地管理處理器。
超線程通過復制處理器的某些部分(存儲體系結構狀態的部分)來工作,但不復制主要執行資源。這使超線程處理器可以作為主機操作系統的常規“物理”處理器和額外的“ 邏輯 ”處理器出現(不知道HTT的操作系統請參閱兩個“物理”處理器),從而允許操作系統調度兩個線程或同時適當地處理。如果沒有超線程,處理器中的當前任務將無法使用執行資源,尤其是當處理器停頓時,配備超線程的處理器可以使用那些執行資源來執行另一個計劃任務。高速緩存未命中,分支預測錯誤或數據依賴性。)
該技術對操作系統和程序透明。充分利用超線程所需的最低要求是操作系統中的對稱多處理(SMP)支持,因為邏輯處理器看起來像是標準的獨立處理器。
可以在支持多處理器超線程的系統上優化操作系統行為。例如,考慮一個具有兩個都是超線程的物理處理器的SMP系統(總共四個邏輯處理器)。如果操作系統的線程調度程序沒有意識到超線程,它將對所有四個邏輯處理器相同。如果只有兩個線程可以運行,則可以選擇在恰好屬于同一物理處理器的兩個邏輯處理器上調度這些線程;該處理器將變得非常繁忙,而另一個處理器將處于空閑狀態,從而導致性能比通過將線程調度到不同的物理處理器上時的性能差。通過改進調度程序來將邏輯處理器與物理處理器區別對待,可以避免此問題。從某種意義上說,這是NUMA系統所需的調度程序更改的一種有限形式。
線程的簡要說明
所有中央處理單元都有線程,但這到底是什么意思?簡而言之,線程就是使您的CPU一次執行多項任務的線程。因此,如果您要運行非常密集的多個進程,則將需要具有大量線程的CPU。
線程是指處理器執行的最高級別的代碼,因此對于許多線程,您的CPU可以同時處理多個任務。所有CPU都有活動線程,并且計算機上執行的每個進程至少都有一個線程。
您擁有的線程數取決于CPU中的內核數。每個CPU內核可以具有兩個線程。因此,具有兩個內核的處理器將具有四個線程。具有八個核心的處理器將具有16個線程。
具有24個內核(是的,已經存在)的處理器將具有48個線程。
線程對計算機的功能很重要,因為線程決定了計算機在任何給定時間可以執行多少個任務。
我們將進一步深入討論到底什么是線程,為什么需要了解它們的作用以及它們為何如此重要。
什么是中央處理單元?
在理解線程之前,您需要對CPU是什么有一個基本的了解。您必須先了解一個人的能力,才能理解其中一個人的功能。
CPU(中央處理器)是每臺智能手機,平板電腦和計算機的核心。它是決定計算機性能并決定其性能的關鍵組件。
CPU接受您在計算機上命令的基本指令,并將這些作業分配給系統中的其他芯片。通過將復雜的任務轉移到最適合處理這些任務的芯片上,它可使您的計算機以最高水平運行。
它是計算機的核心,如果沒有它,計算機將無法運行。
CPU有時被稱為計算機的大腦。它位于母板(也稱為主電路板)上,是與內存組件分開的組件。
它作用于內存組件,該內存組件存儲系統上的所有數據和信息。內存組件和CPU與圖形卡分開。顯卡的唯一功能是獲取數據并將其轉換為您在顯示器上看到的圖像。
隨著技術的逐年提高,我們看到CPU越來越小。而且他們的表現比以往更快。如果您對摩爾定律了解一兩件事,就會了解這種更快的性能。
摩爾定律的名字來自英特爾聯合創始人戈登·摩爾。摩爾的想法是,集成電路中的晶體管數量每兩年翻一番。
它不是物理學定律還是自然科學定律,這是由于每個集成電路中組件數量的預計增長率所致。有關摩爾定律的完整說明,請單擊此處。
CPU會做什么?
如前所述,CPU是計算機的大腦。它從特定程序或應用程序中獲取數據,執行一系列計算,然后執行命令。它執行一個三部分的循環,否則稱為獲取,解碼和執行的重復循環。
在第一階段,CPU從系統內存中獲取指令。一旦它具有來自存儲器的指令,它將進入第二階段。在第二階段內,它對那些指令進行解碼。
機器對指令進行解碼后,便進入執行的第三階段。
解碼的信息通過CPU到達實際執行所需功能所需的單元。在解碼過程中,它執行數學方程式以將所需的信號發送到您的系統。
對于您執行的每個動作和命令,此循環都會反復重復。在尖端的CPU技術中,CPU的組件不再自己做任何事情。
但是它們對于提供執行手頭任務所需的專用硬件編號仍然至關重要。
CPU是任何系統的關鍵部分,它與線程協同工作。不同的CPU具有不同數量的線程,以限制或擴展計算機的性能。
什么是線程?
那么線程到底是什么?它們與您的CPU有何關系?它們如何影響系統的性能?讓我們深入研究一下,確切地解釋什么是線程,它們做什么以及為什么它們如此重要。
線程是一小段編程指令。線程是指處理器可以執行的最高級別的代碼。
它們通常由調度程序管理,調度程序是任何操作系統的標準部分。
要創建線程,必須首先創建一個進程。完成后,該過程將創建一個線程,然后將其執行。根據過程的不同,時間可能短或長。
無論花費多長時間,這都會使您的計算機立即執行許多操作。
每個進程都有至少一個線程,但是一個進程沒有最大線程數。對于特殊任務,您擁有的線程越多,計算機的性能就會越好。使用多個線程,單個進程可以同時處理各種任務。
您還將聽到人們使用諸如“多線程”和“超線程”之類的術語。超線程技術允許單個CPU內核充當兩個內核,從而加快了特定程序或應用程序的執行速度。
即使只有一個內核,它也可以像實際擁有兩個內核一樣模擬性能。您擁有的核心越多,您擁有的線程就越多。您擁有的線程越多,系統的性能就會越好。
如果您有雙核CPU,則超線程將使其看起來好像您有四個。四核CPU將模擬八核的結果。CPU最初是用一個內核構建的。
但是現在,有了更多的內核和處理單元,您可以享受比以往更多的線程。更多的線程意味著更高的性能以及一次運行多個進程的能力。
線程和CPU如何一起工作?
為了更好地理解什么是線程,了解線程和CPU如何協同工作會很有幫助。我們說“線程”是為了簡化想法,但是實際上,您應該將其視為“執行線程”。
您執行命令。您的CPU開始獲取,解碼和執行過程以實現該命令。線程是一系列指令,它們告訴您的計算機執行該命令必須執行的操作。
CPU執行您執行的命令進入前端的指令流。然后,CPU和線程一起工作以執行所需的功能。
它們協同工作以打開程序,使用應用程序,播放視頻以及執行您要求計算機執行的所有操作。
當CPU和線程并排工作時,指令的來源無關緊要。您的處理器將確定哪個進程由CPU處理以及哪個線程由線程處理。
每次處理器加載新線程時,原始線程都會保存在主內存中。一旦從循環中刪除了原始線程的指令,便可以開始一個新線程。然后,新線程開始進行三步獲取,解碼和執行過程的第一步。
超線程將提高多少處理性能?
根據多家服務器制造商的指導,我使用以下經驗法則。對于單套接字系統,超線程可以將系統性能提高多達30%。對于雙插槽系統,超線程可以將性能提高多達15%。對于四路(或更高)系統,建議在啟用和不啟用超線程的情況下進行性能測試。
在下圖中,我們看到了一個使用英特爾?HT技術如何提高處理性能的示例。每個64位Intel Xeon處理器每個內核包含四個執行單元。禁用英特爾HT技術后,內核的執行只能在線程1或線程2的指令上進行。正如預期的那樣,在許多時鐘周期內,某些執行單元處于空閑狀態。啟用超線程后,執行單元可以同時處理線程1和線程2的指令。在此示例中,超線程將所需的時鐘周期數從10減少到7。
幸運的是,現代操作系統和虛擬機管理程序都知道超線程,并將在物理內核之間平均加載活動線程。結果,已消除了啟用超線程的性能調整多核系統的早期問題。但是,如果您的環境需要CPU親和力,請查閱與您的操作系統或系統管理程序相關的文檔。例如,適用于VMware vSphere 5.5的VMware Performance Best Practices指出:“在具有超線程的系統上使用CPU親和力時要小心。由于兩個邏輯處理器共享大多數處理器資源,因此將vCPU(無論是來自不同虛擬機還是來自單個SMP虛擬機)固定到一個內核上的兩個邏輯處理器(例如,CPU 0和1)可能會導致性能下降。”
性能
了解超線程的性能改進所面臨的最大挑戰之一是監視工具如何報告處理器性能。讓我們快速看一下Microsoft Windows和VMware vSphere如何報告CPU使用率。有關性能監視的詳細信息很容易就可以填滿幾篇博客文章,因此,我們現在將這部分討論簡化。
Microsoft Windows通過計算邏輯處理器執行空閑線程的時間百分比(在報告間隔內)并從100%中減去該百分比來報告“處理器時間百分比”。由于Microsoft Windows支持超線程,因此當活動線程多于系統中的物理核心時,操作系統將僅在物理處理器核心上使用第二個體系結構狀態。但是,Windows性能監視工具仍會將這兩種體系結構狀態報告為操作系統中的邏輯處理器。
現在,讓我們結合這兩個事實,看看啟用超線程后性能報告如何變化。如果Windows服務器具有兩個8核Intel Xeon處理器并且超線程被禁用,則性能監視器(PERFMON.EXE)將報告16個邏輯處理器。如果“ _Total”實例的“處理器時間百分比”始終在40%和50%之間,則每個時鐘周期將執行6至8個活動線程(平均)。
如果我們在此服務器上啟用超線程,則Windows現在將報告32個邏輯處理器(每個物理核心兩個邏輯處理器)。由于Windows支持超線程,因此,每個物理核心仍將(平均)將6到8個活動線程分配給一個活動線程,并且每個核心上的第二種架構狀態將在很大程度上未使用。在此示例中,啟用超線程既沒有改善也沒有削弱系統性能。但是,性能監視器現在平均在32個邏輯處理器中平均有6-8個活動線程。結果,%Processor Time值減少了一半。因此,啟用超線程似乎使系統性能提高了一倍!不幸的是,(如前所述)每個內核上的第二個架構狀態必須與第一個架構狀態共享微架構組件。
因此,使用Windows Performance Monitor工具時,請務必記住,CPU負載為0%-50%時,系統不會定期利用超線程。同樣,從50%-100%開始的旅程比從0%-50%開始的距離短很多。
現代管理程序(例如VMware ESXi 5.x)具有超線程意識。VMware指出:“ ESXi主機智能地管理處理器時間,以確保負載在系統中的處理器核心之間平穩地分布。虛擬機優先安排在兩個不同的核心上,而不是在同一核心上的兩個邏輯處理器上進行調度。” (來源:通過VMWare提供的 “ vSphere資源管理,ESXi 5.5 vCenter Server 5.5。”
作為最佳實踐,VMware建議啟用超線程。VMware在針對ESXi 4.x和5.x的性能最佳實踐白皮書中指出:“…超線程可通過保持處理器流水線繁忙而提供從輕微到顯著的系統性能提升。” (來源:http://bit.ly/1hMAir4,http://bit.ly/1muhaOA,http://bit.ly/1dVMe99)
在VMware中,CPU資源通常以兆赫(MHz)報告。CPU使用率的三個關鍵指標是“ usagemhz”,“ totalmhz”和“ usage”。指標的特定定義會根據上下文是VMware vSphere數據中心,群集,資源池,主機還是虛擬機而變化。這是這三個指標的一般描述。
usagemhz:度量(以MHz為單位)計算消耗的資源
總數mhz:度量(以MHz為單位)計算可用資源的使用
情況:報告(以百分比表示)usemhz除以totalmhz
ESXi主機的Totalmhz通過將主機中物理核心的數量乘以這些核心的時鐘速度來計算。下面是對兩臺雙路服務器的計算的演示-一臺使用Intel Xeon 2695v2處理器,另一臺使用AMD Opteron 6376處理器。
VMware容量計算未考慮超線程的潛在好處,因此可能會低估主機的CPU性能。
Usagemhz表示上下文中的活動CPU使用率。使用率以百分比報告,通過將Usagemhz除以totalmhz來計算。
什么時候超線程不是一個好主意?
有時,超線程不利于系統性能。在極端情況下,啟用超線程可能會降低系統性能。下面是環境的簡要列表,在這些環境中,超線程可能只會帶來很少的改善甚至沒有改善。如果您的環境包括滿足這些條件的系統,則建議在啟用和不啟用超線程的情況下測試系統性能。
在以下情況下應測試超線程:
服務器有兩個以上的套接字,
該服務器具有大量的物理核心,
操作系統不支持超線程(例如:Windows Server 2003),
該應用程序是單線程的,或者沒有有效地處理多個線程,
該應用程序已經被設計成可以最大程度地利用每個內核中的執行單元,
或者該應用程序具有很高的內存I / O率。
簡單而粗糙的比較
正如所承諾的,這是一種比較有無超線程的CPU性能的簡化且非常粗糙的方法。該模型沒有考慮許多其他可以改善系統性能的重要因素,例如處理器緩存,處理器生成,硬件虛擬化輔助,內存速度等因素。因此,如果要使用此模型,請記住它提供了CPU的后臺,非常簡化,非常粗糙的比較。
利用VMware模型以MHz為單位計算CPU容量,我們將添加“超線程因子”。對于單插槽系統,我使用的超線程系數為“最高1.3”,而對于雙插槽系統,則為“最高1.15”。考慮到這一點,讓我們重新計算Intel Xeon 2695v2和AMD Opteron 6376處理器的處理器性能。在本練習中,處理器將安裝在雙路服務器中。
如我們所見,具有超線程功能的Intel Xeon 2695v2可以將系統性能從57,600MHz提升到“高達” 66,240MHz。根據環境的不同,這種15%的潛在改善可能會很明顯。
一般來說,超線程是一件好事。許多制造商建議將超線程作為最佳實踐準則的一部分。實際上,許多管理員使用超線程已經很多年了,沒有發生任何意外。但是,正如我們所看到的,超線程是一項“您的里程可能會有所不同”的技術。
自從2002年首次發布以來,超線程已經走了很長一段路。大部分的改進歸功于對操作系統和虛擬機管理程序的超線程支持的改進。如果您屬于早期因超線程而燒毀的人,我邀請您再次嘗試。
英特爾超線程技術可潛在改善系統性能,并且可能已在您已有的硬件中提供。
哪些CPU的線程最多?
既然您對線程了解了一兩件事,那么您很可能會想“我希望有更多線程的更快的CPU”。但是,如何確定購買的線程足以提供所需的功能和性能的CPU?
我們匯總了市場上幾種高性能CPU的清單,以及將于2018年發布的一些CPU。迄今為止,這些CPU提供了一些最佳性能和最多線程數。
英特爾酷睿i9-7980XE Extreme
18個內核意味著36個線程,這使 Intel Core i9-7980XE Extreme成為市場上最快,最強大的處理器之一。它擁有24.74 MB緩存,2.60 GHz時鐘速度和4.20 GHz最大Turbo頻率。
英特爾酷睿i9-7960X
16核,32線程和4.20 GHz的最大睿頻頻率使 Intel Core i9-7960X成為最受歡迎的產品。憑借2.80 GHz的時鐘速度和22 MB的緩存,如果您正在尋找功率和性能,它是一個絕佳的選擇。
AMD銳龍Threadripper 1950x
在AMD Ryzen Threadripper 1950x配備16個內核,該CPU擁有32個線程,4.0千兆赫的升壓時鐘,和32 MB的L3高速緩存。許多用戶認為它比具有Intel Core i9的同類CPU更靈活。
英特爾酷睿i9-7940X
英特爾酷睿i9-7940X具有14個內核和28個線程,其 最大睿頻頻率為4.30 GHz,最大時鐘速度為3.10 GHz。它是眾多性能卓越的強大Intel Core i9 CPU之一。
英特爾至強白金系列
如果您想要最好的處理器和最多數量的線程,請查看Intel Xeon Platinum系列。眾所周知,英特爾CPU是業界最好的CPU。
白金8176,8176F,和8180種型號都擁有28個核心56個線程。Platinum 8164和8170具有26個內核和52個線程。如果這是更高的性能比你的需要,白金8160,8168,8160T,以及8160F擁有區區24個核心與48成一線。
英特爾?至強?處理器的性能肯定會令人印象深刻,但是您必須為這些野獸付出大筆費用。(8180型號目前在亞馬遜上的標價為8,999美元)。
普通用戶通常對線程不了解很多,也不在乎,也不花時間去理解他們的工作或為什么重要。而且,如果您通常只在計算機上運行一個程序,那就完全可以了。但是,如果您想確切了解計算機的運行方式,那么了解線程是關鍵。
要了解線程,您首先必須知道什么是CPU和CPU做什么。您需要對獲取,解碼和執行周期有所了解。但是最重要的是,線程會影響計算機同時執行多條指令的速度和效率。
在Windows中,所有線程都會在一段時間內處于活動狀態。某些CPU具有帶有超線程的多個線程,這些線程模仿您實際擁有的CPU核心數量的兩倍。
通過多個線程,即使是單個處理器也可以同時執行各種任務。
要使系統正常運行,您需要合適的CPU和合適數量的線程。它們在一起是使計算機正常運行的關鍵要素。
您需要CPU為其他組件供電,并向計算機的正確組件發送指令。您需要線程一次執行許多功能,并使計算機高效運行。
沒有這兩個元素,您將根本看不到任何性能。
如果要確保CPU提供足夠的線程,請進行研究以了解不同之處并了解各種CPU的功能。比較成本,比較功能和比較性能。
閱讀來自實際用戶的評論,以便您知道對CPU或計劃購買的任何新CPU有什么期望。
花一些時間做研究。花時間閱讀評論。比較價格和功能,以了解所獲得的收益。
如果您做作業,您會發現具有足夠線程的CPU可以提供所需的性能。
責任編輯:gt
-
英特爾
+關注
關注
60文章
9886瀏覽量
171503 -
cpu
+關注
關注
68文章
10825瀏覽量
211148 -
線程
+關注
關注
0文章
504瀏覽量
19651
發布評論請先 登錄
相關推薦
評論