Prozessorarchitektur

Intel-Design soll 1.000 Kern-CPUs ermöglichen

22. November 2010, 13:21
  • Artikelbild
    foto: intel

"Single Chip Cloud Computer" soll wesentlich besser skalieren als herkömmliche Ansätze

War es einst vor allem die immer weiter getriebene Erhöhung der Taktfrequenz, die mehr Performance für neue Rechner bringen sollte, ist in den letzten Jahren die Erhöhung der Zahl der verbauten CPU-Kerne in den Vordergrund entsprechender Bemühungen gerückt. Immerhin können mehrere Kerne nebeneinander auch wesentlich höhere Lasten verarbeiten, so zumindest die Theorie.

Problematik

In der Praxis ist das alles freilich etwas komplizierter, aktuell Prozessordesigns verlieren mit einer immer höher getriebenen Kernzahl auch an Effizienz. Üblicherweise sorgen diverse Protokolle dafür, dass alle Kerne einer CPU immer den gleichen Stand des Speichers im Blick haben, die sogenannte "Cache-Kohärenz". Genau dieser Ansatz sorgt allerdings für eine "Performance-Decke", ab einer gewissen Anzahl von Cores wird der Protokoll-Overhead größer als die durch neue Kerne dazugewonnene Performance.

SCC

Ein Problem, dessen man sich natürlich auch bei Intel durchaus bewusst ist - und entsprechend an neuen Designs arbeitet. So entwickelt die eigene Forschungsabteilung schon seit einigen Jahren am "Single Chip Cloud Computer" (SCC), der diese Grenzen nicht kennen soll. Dabei verzichtet man ganz auf die Cache-Kohärenz, statt dessen können die einzelnen Kerne direkt miteinander kommunizieren. In aktuellen Ausbaustufen läuft der SCC bereits mit 48 Kernen, die EntwicklerInnen zeigen sich aber davon überzeugt, dass auch 1.000 Cores problemlos zu erreichen sind. Erst danach würde der Kommunikations-Overhead wieder eine neue "Decke" für die Performance aufziehen.

Nutzung

Der SCC ist derzeit ausschließlich ein Experiment von Intel, konkrete Pläne diesen in die eigenen Produkte zu integrieren gibt es bislang nicht. Der Name "Single Chip Cloud Computer" verweist übrigens auch bereits auf ein anderes Problem von Ansätzen mit sehr hohen Kern-Zahlen: Es gibt kaum Software, die solch umfangreiche Multi-Core-Designs überhaupt ausnutzen kann. Insofern denkt man bei Intel hier auch vor allem an Einsatzgebiete, wo mehrere Systeme auf einer CPU laufen, im Test hätte man etwa bereits 48 vollständige Linux-Instanzen auf dem SCC zum Laufen gebracht. (red, derStandard.at, 22.11.10)

Der WebStandard auf Facebook

Kommentar posten
Posting 1 bis 25 von 45
1 2
go-east
00
11.1.2011, 09:46
hätte gerne

eine CPU die keine Kühlung benötigt...

SpaceDudeAlien
00
27.11.2010, 13:58
Transputer?

Alter Hut, gabs schon vor 20 Jahren...

Böses Tetragrammaton
00
24.11.2010, 11:54

Aber wird Crysis anständig drauf laufen ;)

Gregor2702
00
23.11.2010, 09:43
Skynet kommt!

the_atti
10
22.11.2010, 23:09

da wird der scheduler künftig selbst 10 kerne beschäftigen :)

Frika Delle
00
24.11.2010, 11:58
Das währe eine Grundlast von 1%

das ist OK

broncoo
01
27.12.2010, 17:16

wahr wäre wäre ...

the_atti
00
24.11.2010, 13:41

eben :)

werwolfi
00
22.11.2010, 20:38

SCC - "single chip CLOUD computer"
super, da lad ich mir dann das ganze internet runter und betreib meine eigene cloud... ;oP

Roland Schweiger
00
22.11.2010, 20:04
Bekanntermaßen kommt's aber auch auf die Architektur an

Noch immer ist es so, dass nicht alle Anwendungen, Treiber, Prozesse usw. von den mehreren Kernen eines Mehrkernprozessors profitieren (können) und in solchen Fällen zählt dann immer noch einzig die Taktfrequenz. Es gibt aber längst Programmiersprachen die das "Threading" explizit unterstützen, dazu gehört zB C# - interessant wäre, ob künftige Versionen von Vielkernprozessoren+Betriebssystemversionen architekturmäßig so ausgelegt sind, dass eben auch klassisch altvatrisch geschriebener Code davon profitiert ;-)

Errorrrrrr
00
27.11.2010, 12:19

solange sich die aufgabestellung nicht vernünftig parallelisieren lässt nützt auch die threading unterstützung nichts. und der traum alten code automatisch parellelisieren zu können wir genau so scheitern wie die träume CASE oder artificial intelligence

madrid
00
23.11.2010, 09:05

Ein typischer Web-(PHP-)Server kann davon sehr leicht profitieren in dem die Web-Requests auf die Kerne aufgeteilt werden. Der state wird da meist sowieso in der Datenbank gehalten.

Da braucht man dann am code oder der Prgrammiersprache etc gar nichts ändern.

Und die Datenbanken werden schon so programmiert werden, dass sie auch von so vielen Kernen nutzen nehmen können.

Klobrillentaucher mit Spaghettiausrüstung
00
23.11.2010, 13:06

das hat aber mit multithreading nix zu tun sondern ist multiprocessing, ca. 40 jahre alt, und betrifft rein den scheduler.

madrid
00
23.11.2010, 20:18

ob man das als getrennte prozesse oder threads mit speichertrennung innerhalb der runtime auslegt ist ja nebensächlich. Wichtig ist dass der code unverändet laufen kann.

Außerdem geht multiprocessing nicht multithreading voraus.

Klobrillentaucher mit Spaghettiausrüstung
00
23.11.2010, 23:49
nein, das ist nicht nebensächlich.

das gebrachte bsp von php bzw. webserver allgemein ist völlig unspektakulär und nicht besonders spannend. da hat man von vornherein voneinander unabhängige requests, die man schön auf verschiedene cpus dispatchen kann - scheduling eben.

was der OP aber ansprach (und eben völlig andersartig) ist, dass es kaum software gibt, die es schafft, *ein* problem (request) in mehrere teilprobleme zu zerlegen um auch hier divide et impera betreiben zu können, üblw. per threads. es gibt dafür meines wissens immer noch keine andere lösung, als mehr oder minder (openMP zb) mühsam den code anzupassen, wo es sich lohnt. ob es jemals automatische lösungen dafür gibt, bezweifle ich stark, würde mich aber freuen zu irren.

madrid
00
24.11.2010, 08:50

Nebensächlich bezog ich darauf, dass es nebensächlich ist ob die Verteilung/Trennung innerhalb des Betriebssystems durch Prozesse oder innerhalb einer Runtime bzw des Programmes selbst erfolgt.

PHP war nur ein Beispiel dafür, dass meiner Erfahrung nach die meiste Serversoftware (und diese Prozessoren sind ja hauptsächlich für Server) - und zwar nicht nur webserver - schon so aufgebaut ist, dass sie leicht aufgeteilt werden kann.

Und die Synchronisationspunkte sind in sehr spezialisierte Komponenten ausgelagert (Datenbanken, Lock-Manager, Transactions-Monitore, Messaging-Systeme) die an die neuen Multicore eben angepasst werden (und eh von Leuten programmiert sind die von nebenläufgikeit viel verstehen).

Klobrillentaucher mit Spaghettiausrüstung
00
24.11.2010, 12:28
"die meiste Serversoftware ... und zwar nicht nur webserver - schon so aufgebaut ist, dass sie leicht aufgeteilt werden kann."

Ja, das stimmt schon alles, aber nochmal, das hat primär damit zu tun dass die eingehende Workload verhältnismäßig einfach zu parallelisieren ist. Selbst auf x86 kann man heute Server mit > 100 Cores kaufen, wobei jeder Core extrem leistungsstark ist. Dagegen wird man mit 1000 586-Cores eher abstinken, behaupte ich mal. Und wer nicht übers Scheduling der Workload parallelisieren kann, dem bringt das a priori ohnehin nichts. Wirklicher Fortschritt wäre eine CPU angelehnt an heutige GPUs (NB: einfach parallelisierbare Task*s*) inklusive automatischem Divide-et-impera bezüglich einzelner (!) Tasks, aber das ist höchst komplex. Der EPIC-Ansatz beim Itanic ist ja eines von vielen Beispielen dass sich das realiter im Moment nicht durchsetzt.

Wiesel1982x
00
22.11.2010, 18:25
1000 Kern CPU

in 10 Jahren in jedem Iphone zu haben. :-D

Darius Minor
04
23.11.2010, 00:25
Fast.

Das iPhone hat's in 15 Jahren - nachdem Apple 4 Jahre lang die Welt wissen lassen hat, warum man gar nicht braucht, was andere seit 5 Jahren machen.

markusM.
00
23.11.2010, 10:40

ich habe ja schon den verdacht, dass die jungs einfach nicht die hellsten sind und drum immer ein bisschen länger brauchen um die neuen sachen zu verstehen. gerechtfertigt wird das dann mit "braucht kein mensch" ;)

Waldorf
 
02
22.11.2010, 17:22

Auf die Task Manager der Zukunft darf man gespannt sein.

werwolfi
10
22.11.2010, 20:40

das hat damit genau was zu tun?

das OS macht die tatsache, ob alle prozesse pseudoparallel auf einer oder echt massiv parallel auf 1000 CPUs bzw. cores laufen ja ohnedies völlig transparent.
wozu willst du also einen anderen taskmanager?

aceFruchtsaft
02
22.11.2010, 20:51

Ich denk es geht ihm um den Windows Task Manager, der eine Grafik für die Auslastung jedes Cores anzeigt (zumindest bei 4-Core-Systemen macht er das noch). Wäre interessant, was bei Rechnern mit noch mehr Cores passiert, da diese Darstellungsmethode nicht sonderlich gut skaliert.

Waldorf
 
00
23.11.2010, 10:09

Unter RH funktioniert das auch mit 20 Kernen noch sehr gut, bei MS zwar auch, aber so ganz glaube ich der Graphik hier nicht mehr.

Heinrich Dacher
00
22.11.2010, 16:00
Erinnerungen an Netburst werden wach.

Kommentar posten
Posting 1 bis 25 von 45
1 2

Die Kommentare von Usern und Userinnen geben nicht notwendigerweise die Meinung der Redaktion wieder. Die Redaktion behält sich vor, Kommentare, welche straf- oder zivilrechtliche Normen verletzen, den guten Sitten widersprechen oder sonst dem Ansehen des Mediums zuwiderlaufen (siehe ausführliche Forenregeln), zu entfernen. Der/Die Benutzer/in kann diesfalls keine Ansprüche stellen. Weiters behält sich die derStandard.at GmbH vor, Schadenersatzansprüche geltend zu machen und strafrechtlich relevante Tatbestände zur Anzeige zu bringen.