Weniger CPU Leistung mit aktiviertem Hyper-Threading

19. Februar 2014 von Steffen Döring [permalink]

Im zuvorigen Blog wurde geklärt, inwieweit die Benutzung einer integrierten Grafikkarte die Leistung der CPU beeinflußt. Um ca. 7% verminderte sich die Leistung bei Nutzung aller Cores einer CPU im Gegensatz zum Einsatz einer diskreten Grafikkarte.
 

Bei diesen Tests fiel auf, dass ein weiterer Faktor die CPU Leistung beeinflusst. Mit aktiviertem Hyper-Threading verringerte sich ebenfalls die CPU Leistung bei Auslastung aller (echten) Cores der CPU.
 

Das Setup und das Testverfahren ist das Gleiche wie beim zuvorigen Test, nur dass das Hyper-Threading der Intel CPU im Bios deaktiviert wurde.
 

Für den Testlauf wurde die ATI Grafikkarte verwendet.
Hier nun beispielhaft die Ergebnisse der ersten Distanz von Super PI.

 ------ Started super_pi run
 Start of PI calculation up to 33554432 decimal digits
 End of initialization. Time=       6.860 Sec.
 I= 1 L=       0        Time=      21.320 Sec.
 I= 2 L=       0        Time=      24.220 Sec.
 I= 3 L=       1        Time=      24.220 Sec.
 I= 4 L=       2        Time=      24.280 Sec.
 I= 5 L=       5        Time=      24.240 Sec.
 I= 6 L=      10        Time=      24.180 Sec.
 I= 7 L=      21        Time=      24.290 Sec.
 I= 8 L=      43        Time=      24.280 Sec.
 I= 9 L=      87        Time=      24.210 Sec.
 I=10 L=     174        Time=      24.250 Sec.
 I=11 L=     349        Time=      24.260 Sec.
 I=12 L=     698        Time=      24.200 Sec.
 I=13 L=    1396        Time=      24.170 Sec.
 I=14 L=    2794        Time=      24.280 Sec.
 I=15 L=    5588        Time=      24.310 Sec.
 I=16 L=   11176        Time=      24.250 Sec.
 I=17 L=   22353        Time=      24.260 Sec.
 I=18 L=   44707        Time=      24.250 Sec.
 I=19 L=   89415        Time=      24.090 Sec.
 I=20 L=  178831        Time=      24.010 Sec.
 I=21 L=  357662        Time=      24.050 Sec.
 I=22 L=  715326        Time=      23.720 Sec.
 I=23 L= 1430652        Time=      22.920 Sec.
 I=24 L= 2861304        Time=      21.420 Sec.
 End of main loop
 End of calculation.    Time=     595.840 Sec.
 End of data output.    Time=       1.520 Sec.
 Total calculation(I/O) time=     597.360(     123.651) Sec.
 ------ Ended super_pi run

Die Instanzen liefen wie folgt:

  • 597 Sekunden
  • 596 Sekunden
  • 595 Sekunden
  • 597 Sekunden

Durchschnittlich lief Super PI 596.25 Sekunden.

 

Im Vergleich zum vorherigen Test ergibt sich damit eine Steigerung von etwa 7.5% von 644 Sekunden auf 596 Sekunden.

Der Wikipedia Artikel zum Thema Hyper-Threading liefert hierfür die Erklärung. Die Mehrheit der Programme “büßt [..] sogar geringfügig an Performance bei aktiviertem Hyper-Threading auf einem Vierkernprozessor ein, da sie dem Prozessor kaum mehr als vier Threads anbieten, gleichzeitig aber der Verwaltungsaufwand innerhalb des Prozessors aufgrund von Hyper-Threading steigt.”

Programme, welche mehr Threads liefern, als die CPU echte Cores bietet, profitieren von aktiviertem Hyper-Threading.
 

Mit Nutzung der iGPU verbesserten sich die Testwerte von 693 Sekunden auf 642 Sekunden – ebenfalls eine Steigerung um ca. 7.5%.
 

Tags: , , , ,
Kategorie: Allgemein | keine Kommentare »

Stärkere Einbußen der CPU Leistung bei Nutzung der integrierten Grafik unter Last

14. Februar 2014 von Steffen Döring [permalink]

Der letzte Artikel untersuchte die Einbußen der CPU Leistung, wenn die iGPU benutzt wird. Im Gegensatz zum Einsatz einer Grafikkarte ergab sich eine marginale Verschlechterung der CPU Leistung um ~2.5%, für den Fall, dass ein CPU Kern voll ausgelastet wird.
Dieser Artikel überprüft nun die Einbußen der Leistung, wenn alle (echten) Kerne unter Last stehen.
 

Das Setup ist das Gleiche wie beim letzten Test:

  • CPU: Intel Core i7-3770K, 4x 3.50GHz, Turbo: 3.90GHz (alle vier Kerne)
  • RAM: 32GB DDR3-1866
  • Grafik: Radeon HD 5450, 1GB DDR3
  • OS: Manjaro XFCE (Linux), 64 Bit, v0.8.8
  • Intel Grafik Treiber: xf86-video-intel, v2.21.15-1
  • Ati Grafik Treiber: Mesa drivers, v9.1.6-1

 

Als Benchmark soll wieder Super PI mit 25 Iterationen dienen. Um alle vier Kerne auszulasten, werden vier Instanzen in vier Terminals gleichzeitig gestartet. Zur Simulation von Grafik-Last wird im transparenten Hintergrund der Terminals ein Full-HD Video in einem Browser (Firefox 26) abgespielt. Die Video Datei liegt auf einer lokalen RAM-Disk, um unabhängig von IO Zugriffen zu sein.

 

Im ersten Testlauf wurde der PC ohne Grafikkarte gestartet. Die Ausgabe erfolgt also über die in der Intel CPU integrierte GPU. Für eine bessere Vergleichbarkeit der Ergebnisse, wurde der GPU 1GB RAM zugewiesen.
Hier beispielhaft die erste Instanz von Super PI.

 ------ Started super_pi run
 Start of PI calculation up to 33554432 decimal digits
 End of initialization. Time=       7.880 Sec.
 I= 1 L=       0        Time=      25.440 Sec.
 I= 2 L=       0        Time=      28.960 Sec.
 I= 3 L=       1        Time=      28.170 Sec.
 I= 4 L=       2        Time=      28.220 Sec.
 I= 5 L=       5        Time=      28.540 Sec.
 I= 6 L=      10        Time=      28.320 Sec.
 I= 7 L=      21        Time=      27.830 Sec.
 I= 8 L=      43        Time=      27.430 Sec.
 I= 9 L=      87        Time=      28.070 Sec.
 I=10 L=     174        Time=      28.490 Sec.
 I=11 L=     349        Time=      28.340 Sec.
 I=12 L=     698        Time=      28.330 Sec.
 I=13 L=    1396        Time=      28.900 Sec.
 I=14 L=    2794        Time=      28.560 Sec.
 I=15 L=    5588        Time=      28.250 Sec.
 I=16 L=   11176        Time=      28.400 Sec.
 I=17 L=   22353        Time=      28.690 Sec.
 I=18 L=   44707        Time=      28.650 Sec.
 I=19 L=   89415        Time=      28.320 Sec.
 I=20 L=  178831        Time=      28.340 Sec.
 I=21 L=  357662        Time=      28.060 Sec.
 I=22 L=  715326        Time=      28.540 Sec.
 I=23 L= 1430652        Time=      27.060 Sec.
 I=24 L= 2861304        Time=      24.920 Sec.
 End of main loop
 End of calculation.    Time=     697.220 Sec.
 End of data output.    Time=       1.580 Sec.
 Total calculation(I/O) time=     698.800(     152.379) Sec.
 ------ Ended super_pi run

Die Instanzen liefen wie folgt:

  1. 699 Sekunden
  2. 698 Sekunden
  3. 697 Sekunden
  4. 677 Sekunden


Durchschnittlich lief Super PI 692.75 Sekunden.
 

Der zweite Testlauf erfolgte mit verbauter Radeon HD 5450 mit ebenfalls 1GB Speicher.
Hier beispielhaft die Ergebnisse der ersten Instanz von Super PI.

 ------ Started super_pi run
 Start of PI calculation up to 33554432 decimal digits
 End of initialization. Time=       7.810 Sec.
 I= 1 L=       0        Time=      23.080 Sec.
 I= 2 L=       0        Time=      26.490 Sec.
 I= 3 L=       1        Time=      26.140 Sec.
 I= 4 L=       2        Time=      26.170 Sec.
 I= 5 L=       5        Time=      26.170 Sec.
 I= 6 L=      10        Time=      26.200 Sec.
 I= 7 L=      21        Time=      26.240 Sec.
 I= 8 L=      43        Time=      25.880 Sec.
 I= 9 L=      87        Time=      26.220 Sec.
 I=10 L=     174        Time=      25.980 Sec.
 I=11 L=     349        Time=      26.270 Sec.
 I=12 L=     698        Time=      26.490 Sec.
 I=13 L=    1396        Time=      26.490 Sec.
 I=14 L=    2794        Time=      26.280 Sec.
 I=15 L=    5588        Time=      26.070 Sec.
 I=16 L=   11176        Time=      26.090 Sec.
 I=17 L=   22353        Time=      26.280 Sec.
 I=18 L=   44707        Time=      26.460 Sec.
 I=19 L=   89415        Time=      26.740 Sec.
 I=20 L=  178831        Time=      26.230 Sec.
 I=21 L=  357662        Time=      26.450 Sec.
 I=22 L=  715326        Time=      26.120 Sec.
 I=23 L= 1430652        Time=      25.210 Sec.
 I=24 L= 2861304        Time=      23.620 Sec.
 End of main loop
 End of calculation.    Time=     647.330 Sec.
 End of data output.    Time=       1.510 Sec.
 Total calculation(I/O) time=     648.840(     136.361) Sec.
 ------ Ended super_pi run

Die Instanzen liefen wie folgt:

  1. 649 Sekunden
  2. 646 Sekunden
  3. 642 Sekunden
  4. 640 Sekunden


Durchschnittlich lief Super PI 644.25 Sekunden.
 

Bei dem Test mit einem einzelnem, ausgelastetem CPU Kern war bereits eine leichte Tendenz zu erkennen. Um circa 2.5% verbesserte sich die Leistung der CPU. Mit vier ausgelasteten Kernen verdeutlicht sich dieses Bild. Von durchschnittlich 692.75 Sekunden mit der iGPU verbesserte sich Super PI auf 644.25 Sekunden. Das entspricht einer Verbesserung von ~7%.
 

Tags: , , , , , , , ,
Kategorie: Allgemein | keine Kommentare »

AngularJS: $resource für Collection-Queries mit Metadaten nutzen

12. Februar 2014 von Martin Kartawijaya [permalink]

Wenn man die $resource-Factory benutzt um RESTful APIs anzusprechen kann es nötig sein Ressourcen zu konsumieren, welche die Daten nicht in der Form bereitstellen, wie es von $resource erwartet wird. Dies ist oft der Fall wenn man es mit server-seitiger Paginierung zu tun hat, bei der das Resultat für gewöhnlich nicht einfach ein Array von Instanzen ist, sondern ein Objekt welches neben den eigentlichen Instanzen noch Metadaten wie bspw. Gesamtanzahl oder Anzahl an Instanzen pro Seite enthält.

weiter lesen »

Tags: , ,
Kategorie: Softwareentwicklung | keine Kommentare »

Marginale Einbußen der CPU Leistung bei Nutzung der integrierten Grafik

7. Februar 2014 von Steffen Döring [permalink]

Die iGPU ist heutzutage fester Bestandteil der meisten CPUs und für die meisten Anwendungsfälle ist diese vollkommen ausreichend. Auch auf Arbeit, den Office Rechnern, ist selten eine eigentständige Grafikkarte notwendig.
 

Doch wieviel Leistung geht dem Prozessor verloren, wenn die Ausgabe für den Monitor ebenfalls durch die CPU – sprich der integrierten Grafik – berechnet wird.
Darüber soll ein schneller Test Aufschluss geben.
 

Folgendes Testsetup findet Verwendung:

  • CPU: Intel Core i7-3770K, 4x 3.50GHz, Turbo: 3.90GHz
  • RAM: 32GB DDR3-1866
  • Grafik: Radeon HD 5450, 1GB DDR3
  • OS: Manjaro XFCE (Linux), 64 Bit, v0.8.8
  • Intel Grafik Treiber: xf86-video-intel, v2.21.15-1
  • Ati Grafik Treiber: Mesa drivers, v9.1.6-1

 

Als Benchmark soll Super PI mit 25 Iterationen dienen. Zur Simulation von Grafik-Last wird ein Full-HD Video in einem Browser abgespielt. Die Video Datei liegt auf einer lokalen RAM-Disk, um unabhängig von IO Zugriffen zu sein.
 

Im ersten Testlauf wurde der PC ohne Grafikkarte gestartet. Die Ausgabe erfolgt also über die in der Intel CPU integrierte GPU. Für eine bessere Vergleichbarkeit der Ergebnisse, wurde der GPU 1GB RAM zugewiesen.

 ------ Started super_pi run
 Start of PI calculation up to 33554432 decimal digits
 End of initialization. Time=       6.670 Sec.
 I= 1 L=       0        Time=      19.530 Sec.
 I= 2 L=       0        Time=      22.280 Sec.
 I= 3 L=       1        Time=      22.380 Sec.
 I= 4 L=       2        Time=      22.280 Sec.
 I= 5 L=       5        Time=      22.300 Sec.
 I= 6 L=      10        Time=      22.220 Sec.
 I= 7 L=      21        Time=      22.360 Sec.
 I= 8 L=      43        Time=      22.490 Sec.
 I= 9 L=      87        Time=      22.410 Sec.
 I=10 L=     174        Time=      22.420 Sec.
 I=11 L=     349        Time=      22.480 Sec.
 I=12 L=     698        Time=      22.500 Sec.
 I=13 L=    1396        Time=      22.560 Sec.
 I=14 L=    2794        Time=      22.570 Sec.
 I=15 L=    5588        Time=      22.560 Sec.
 I=16 L=   11176        Time=      22.580 Sec.
 I=17 L=   22353        Time=      22.490 Sec.
 I=18 L=   44707        Time=      22.590 Sec.
 I=19 L=   89415        Time=      22.480 Sec.
 I=20 L=  178831        Time=      22.410 Sec.
 I=21 L=  357662        Time=      22.240 Sec.
 I=22 L=  715326        Time=      21.970 Sec.
 I=23 L= 1430652        Time=      21.360 Sec.
 I=24 L= 2861304        Time=      19.900 Sec.
 End of main loop
 End of calculation.    Time=     552.550 Sec.
 End of data output.    Time=       1.520 Sec.
 Total calculation(I/O) time=     554.070(     111.931) Sec.
 ------ Ended super_pi run

554 Sekunden.
 

Im zweiten Testlauf wurde die Radeon HD 5450 mit ebenfalls 1GB Speicher eingebaut.

 ------ Started super_pi run
 Start of PI calculation up to 33554432 decimal digits
 End of initialization. Time=       6.470 Sec.
 I= 1 L=       0        Time=      19.180 Sec.
 I= 2 L=       0        Time=      21.940 Sec.
 I= 3 L=       1        Time=      21.900 Sec.
 I= 4 L=       2        Time=      21.900 Sec.
 I= 5 L=       5        Time=      21.910 Sec.
 I= 6 L=      10        Time=      21.920 Sec.
 I= 7 L=      21        Time=      21.890 Sec.
 I= 8 L=      43        Time=      21.940 Sec.
 I= 9 L=      87        Time=      21.970 Sec.
 I=10 L=     174        Time=      21.920 Sec.
 I=11 L=     349        Time=      21.920 Sec.
 I=12 L=     698        Time=      21.960 Sec.
 I=13 L=    1396        Time=      21.960 Sec.
 I=14 L=    2794        Time=      21.900 Sec.
 I=15 L=    5588        Time=      21.940 Sec.
 I=16 L=   11176        Time=      21.950 Sec.
 I=17 L=   22353        Time=      21.960 Sec.
 I=18 L=   44707        Time=      21.930 Sec.
 I=19 L=   89415        Time=      21.910 Sec.
 I=20 L=  178831        Time=      21.810 Sec.
 I=21 L=  357662        Time=      21.660 Sec.
 I=22 L=  715326        Time=      21.420 Sec.
 I=23 L= 1430652        Time=      20.740 Sec.
 I=24 L= 2861304        Time=      19.310 Sec.
 End of main loop
 End of calculation.    Time=     539.450 Sec.
 End of data output.    Time=       1.520 Sec.
 Total calculation(I/O) time=     540.970(     107.071) Sec.
 ------ Ended super_pi run

540 Sekunden.
 

Dieser kurze Test erhebt nicht den Anspruch auf Vollständigkeit. Trotzdem ist eine Tendenz zu erkennen.
Durch Nutzung einer diskreten Grafik ergibt sich ein kleiner Geschwindigkeitsvorteil – hier in diesem Test von etwa 2.5%. Der Wert mag niedrig erscheinen, doch unter Beachtung des Benchmarks, ergibt sich ein etwas anderes Bild. Super PI arbeitet singlethreaded. Während der Ausführung waren 3 Kerne der CPU im idle. Volle 3x 3.5GHz lagen brach und trotzdem dauerte der Test mit der iGPU länger.
 

Nichtsdestotrotz wird man in normalen Office Anwendungen keinen Unterschied merken. Erst bei langen rechenintensiven Anwendungen bringt eine eigenständige Grafikkarte Vorteile.
 

Tags: , , , , , , ,
Kategorie: Allgemein | keine Kommentare »

Lenovo T440p im Reboot Loop

4. Februar 2014 von Steffen Döring [permalink]

Im Lenovo Support Forum und auch im weltweiten Web gibt es viele besorgte Fragen über deren Thinkpads, welche im Boot Loop bzw. Reboot Loop gefangen sind. Der Laptop wird gestartet, der Startbildschirm vom Bios erscheint, kurz ist ein schwarzer Bildschirm zu sehen, Neustart, der Startbildschirm vom Bios erscheint, kurz ist ein schwarzer Bildschirm zu sehen, Neustart, …
 

Dieses Problem hatte ich auch, nachdem in einem neuen Lenovo eine SSD verbaut und dort dann ein Linux (Manjaro) installiert wurde. Er bootete weder von dem USB Stick, von dem zuvor Linux installiert wurde, noch von einer bootfähigen DVD mit Windows. Nach einiger Zeit des Probierens (Bios Einstellungen ändern (Secure Boot, Anti Theft, USB Legacy Boot, etc.) und Bios zurücksetzen), Formatieren der SSD und der Rechereche im Internet, schraubte ich dann den Laptop auf und entfernte die SSD. Plötzlich bootete der Lenovo wieder normal. Auch mit einer HDD bootete der Rechner, aber auf die SSD wollte ich nicht verzichten.
 

Letztendlich half ein Hardware Reset des Lenovos.
Dazu wurde der Akku entfernt, der Laptop aufgeschraubt, die Bios Batterie gelöst und die Starttaste für eine Minute gedrückt.
Danach startete der Thinkpad wieder normal vom USB Stick und konnte Linux installieren – allerdings mit dem selben Ergebnis des Boot Loops.
 

Die ganze Prozedur wurde also wiederholt und das Linux mit einem GRUB Bootloader aufgespielt, welcher UEFI unterstützt. Damit ging es und sollte der Rechner nicht gestorben sein, so läuft er noch heute.
 

Tags: , , , , , ,
Kategorie: Allgemein | keine Kommentare »