+- +-

Benutzer

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?

Autor Thema: Wohin mit den vielen Kernen?  (Gelesen 5148 mal)

Carfesch

  • Trident Vollmitglied
  • Buchstabenmillionär
  • Beiträge: 1.050
  • alive, but unworthy of attention
    • Profil anzeigen
Wohin mit den vielen Kernen?
« am: 26. April 2010, 17:55:53 »
Mittlerweile hat ja alles, was größer als ein Netbook ist, mehrere CPU(-Kerne). Und Dank offensiver Vermarktung seitens der Chiphersteller gibt es ja auch in jeder 08/15 Computerzeitschrift zwischen "Tittenseiten im Dauertest" und "Excel erklärt" einen Artikel der erklärt was mit Multicore alles schöner, länger und besser werden könnte. Wenn die faulen Entwickler endlich damit anfangen würden die vielen schönen Kerne zu nutzen.

Aus meiner Sicht (der eines offensichtlich faulen Entwicklers) führt das vermehrt zu dazu dass in Projektmeetings sogar technisch total unbeleckte Menschen ernsthaft fragen "Das Programm ist langsam warum nutzt ihr nicht mehr Kerne?".

An dem Punkt frage ich mich immer (leise) "Was soll ich mit den ganzen Kernen?". Abgesehen von Aufgabenstellungen, die nicht sowieso gleich einen großen Servercluster erfordern, und den üblichen Verdächtigen bei Grafik- und Videoverarbeitung fällt mir wenig ein wo die vielen tollen Kerne wirklich etwas bringen.

Da aber die Prozessorhersteller sich darauf festgelegt haben Leistungssteigerungen über mehr Kerne zu realisieren wird sich an der Situation wohl wenig ändern.

Wo sehen die IT-affinen Tridents den Sinn und Zweck der Multicores?
Und Windows 8 mit Sprachein- und Ausgabe ist keine gute Antwort  :evil3:.
Dieses Posting wurde von einem IPad verschlimmbessert.

Moribal

  • Administrator
  • Textkönig
  • Beiträge: 2.347
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #1 am: 26. April 2010, 18:06:55 »
Läuft das nicht so ab, dass die Brechnung von Prozessen auf die Kerne aufgeteilt werden, wodurch der Gesamtprozess schneller wird?
"I guess we're the insane as we ignore the mirror's truth"

Mongrel

  • Trident Vollmitglied
  • Labermonster
  • Beiträge: 482
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #2 am: 26. April 2010, 18:07:28 »
Spiele können gut mehrere Kerne benutzen. IO-Thread(s), Game-Thread, Rendering-Thread, (Physik), ...

Außerhalb der Spieleindustrie wird's schon schwer, zumindest für mehr als zwei Kerne. Es ist eigentlich mehr eine Frage des Programmierdesigns. Viele Dinge lassen sich threaden: UI, Datenbanken, IO. Man muss es nur vorher planen.
Die typische Manager-Entscheidung ("Ach so, na dann macht das doch in den zwei Wochen vor Release noch schnell multi-threaded.") funktioniert natürlich nicht.

Als Benutzer sind mehrkernige Prozessoren aber eine feine Sache.  :wink1:

Yat

  • Trident Vollmitglied
  • Buchstabenmillionär
  • Beiträge: 1.459
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #3 am: 26. April 2010, 18:09:00 »
Macht schon Sinn, Problem ist das die Programme entsprechend geschrieben sein müssen damit sie mehrere Kerne überhaupt (effizent) nutzen können(Multithreading).

Bei uns aber auch ein Thema das erst seid gut einem Jahr verstärkt im kommen ist.



Moribal

  • Administrator
  • Textkönig
  • Beiträge: 2.347
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #4 am: 26. April 2010, 18:10:19 »

Bei uns aber auch ein Thema das erst seit gut einem Jahr verstärkt im kommen ist.




2-

Wo ist Sky? Der ist doch für Rechtschreibflames zuständig... :blue:
"I guess we're the insane as we ignore the mirror's truth"

Ronnie Drew

  • Trident Vollmitglied
  • Boardmonster
  • Beiträge: 4.618
  • aka GRANTIG
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #5 am: 26. April 2010, 18:27:47 »
Ich habe den Umstieg von 1 auf 4 Kerne am deutlichsten gemerkt, wenn mehrere Programme gleichzeitig liefen, die jeweils die CPU stark belasteten. Da war ich glatt begeistert vom Umstieg.

In dem Fall NWN2, NWN2-Toolset und Winamp (letzteres natürlich kein CPU-Belaster) gleichzeitig:

1 Kern (AMD Athlon 3800+, 2,4 GHz):
Das Grauen der Langsamkeit, Lags, sekunden- nein halbminutenlange Umschaltdauer zwischen beiden Prozessen (mitunter auch Programmabstürze eines oder beider Programme). Kurz gesagt, der Prozessor ging quasi in die Knie.

4 Kerne (Intel Q6700, 4x 2,4 GHz):
Kein Performanceverlust in einem der Programme, butterweiches Umschalten in X-tel Sekundenschnelle.
Ich führe das daruf zurück, dass NWN2 und NWN2-Toolset sich einfach auf 2 Kerne verteilten.

Jetzt hau noch, von mir aus, ein Videomitschnittprogramm dazu, das kann dann bequem Kern 3 benutzen...

Necrowizard

  • Trident Vollmitglied
  • Textkönig
  • Beiträge: 1.622
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #6 am: 26. April 2010, 20:08:01 »
Das Abwärmeproblem bei extrem hohen Taktraten ist sicher auch ein Grund für Mehrkern-CPUs.

Itchy

  • Administrator
  • Boardmonster
  • Beiträge: 5.862
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #7 am: 26. April 2010, 21:11:34 »
An dem Punkt frage ich mich immer (leise) "Was soll ich mit den ganzen Kernen?". Abgesehen von Aufgabenstellungen, die nicht sowieso gleich einen großen Servercluster erfordern, und den üblichen Verdächtigen bei Grafik- und Videoverarbeitung fällt mir wenig ein wo die vielen tollen Kerne wirklich etwas bringen.

Früher ist man mit einem Kern und ein paar MHz auch gut ausgekommen, für was braucht man das Zeug also? Es ist doch ganz einfach: im Bereich der Taktraten bewegt man sich eh schon seit geraumer Zeit an den derzeit gültigen physikalischen Grenzen - die lassen sich nicht beliebig steigern. Eine Verdoppelung der Kerne ist dagegen keine unüberwindbare Aufgabe. Klar, die Chips sollen nicht handtellergroß werden, aber im Vergleich zur deutlichen Erhöhung der Taktfrequenz ist das eher eine leichte Aufgabe.

Das Problem ist, dass die Entwickler (ich zähle mich da auch hinzu), bislang noch kaum parallel denken, das wird sich aber ändern. Ich hatte letztens ein deutliches Performanceproblem bei einer Java Applikation, dass sich jetzt in Luft aufgelöst hat, nachdem wir uns hingesetzt haben und eine Lösung gefunden haben, die Bearbeitung zu parallelisieren. Das ist nicht ganz easy, weil man selber ja auch nur sequentiell denkt, ich bin mir aber sicher, dass Du in ein paar Jahren fragen wirst, wie man früher mit einem oder zwei Kernen ausgekommen ist.

Carfesch

  • Trident Vollmitglied
  • Buchstabenmillionär
  • Beiträge: 1.050
  • alive, but unworthy of attention
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #8 am: 26. April 2010, 21:53:33 »
Das Problem ist, dass die Entwickler (ich zähle mich da auch hinzu), bislang noch kaum parallel denken, das wird sich aber ändern. Ich hatte letztens ein deutliches Performanceproblem bei einer Java Applikation, dass sich jetzt in Luft aufgelöst hat, nachdem wir uns hingesetzt haben und eine Lösung gefunden haben, die Bearbeitung zu parallelisieren. Das ist nicht ganz easy, weil man selber ja auch nur sequentiell denkt, ich bin mir aber sicher, dass Du in ein paar Jahren fragen wirst, wie man früher mit einem oder zwei Kernen ausgekommen ist.

Bei mir ist es so dass die Server, mit denen ich arbeite, quasi "schon immer" mehrere CPUs hatten.
Nur früher waren es zwei, dann vier.
Jetzt sind da schon 16 Kerne in einem Server, der weniger insgesamt kostet als eine extra CPU damals gekostet hatte.
Am Anfang war das ja eine gute Sache, nur leider wächst (in der Geräteklasse) der Rest nicht mit. Trotzt Glasfaser zum SAN hinkt IO hinterher, so dass selbst in den Fällen, wo theoretisch eine parallele Datenverarbeitung möglich wäre, die Daten nicht schnell genug kommen um alle Kerne zu beschäftigen (und der Datenumfang hingegen wächst schneller als der RAM-Ausbau).
In ein paar Fällen konnte da noch etwas beschleunigt werden, eine Verarbeitung läuft für ein paar Sekunden dann mit 24 Threads gleichzeitig. Aber die meiste Zeit über würde die Hälfte an Kernen langen und es wäre immer noch viel Luft nach oben.

Ich sehe hier im Moment den Punkt wo sich einfach nicht mehr gleichzeitig erledigen lässt. Und trotzdem stehen jetzt schon Octacores vor der Türe, wo ich im Zweifelsfall mehr Speed auf weniger Kernen besser gebrauchen könnte.

Deswegen, was soll ich mit den vielen Kernen machen? Mir fehlen sozusagen die passenden Probleme. Und auf meinem Desktop ist es genau so, nur da gibt es wenigsten die Hoffnung auf Spiele die 4 Cores nutzen können. Nur der Rechner mit der dazu passenden Restaustattung hat dann wohl schon 8 oder 16 Kerne.

Ich sehe hier einfach eine Entwicklung, die mir Hardware bringt, wo einzelne Komponenten sich in eine Richtung entwickeln die dem Gesamtsystem nichts bringt.
Dieses Posting wurde von einem IPad verschlimmbessert.

Blaukool

  • Trident Vollmitglied
  • Boardmonster
  • Beiträge: 3.793
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #9 am: 26. April 2010, 22:30:16 »
Ich denke das die vielen Kerne aktuell an den meisten Stellen brach liegen. Parallel Verarbeitung ist in vielen der aktuellen Sprachen einfach zu weit weg vom Entwickler, was sich meiner Meinung nach mit Java und co auch nicht ändern wird. In den Sprachen ist es einfach nicht zwingend erforderlich parallel zu arbeiten und da ohne wird der gemeine Programierknecht immer den Weg des geringsten Wiederstands gehen. (Abgesehen davon darf man ja in nem JEE Container beispielsweise nicht ohne weiteres Threads öffnen, und durch die Einbindung von Server spezifika ist man dann wieder Hersteller abhängig. Wenn das dann wie beim WebSphere mehr schlecht als recht funktioniert treibt das einen in den Wahnsinn)
Wenn man verstärkt Sprachen wie Erlang oder Scala nutzen muss/darf(steht für mein nächstes langes Wochenende auf dem Plan :) ) um die Systeme auch aus zu lassten wird sich das ihmo aber noch ändern.

Zu dem Thema Erlang und Spiele steht übrigens in der aktuellen Gamedeveloper nen recht interessanter Bericht... (Fragt mich bitte keiner wieso ich die bekomme, irgendwo schein ich da mal nen Abo abgeschlossen zu haben  :eh:)

abye

  • Trident Vollmitglied
  • Textkönig
  • Beiträge: 2.414
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #10 am: 26. April 2010, 22:36:23 »
Eine bestehende Aufgabe auf mehrere Threads runterzubrechen gehört zu den kommenden Hauptherausforderungen der Informatik. Bei vielen Problem ist dies mit mehr oder weniger Reibungsverlust möglich, bei (vergleichsweise wenigen) Problemen ist es aber auch unmöglich.

Bei gleichartigen Threads (Videoencoding u.Ä) ist es noch recht einfach da man kaum Sync-Mechanismen braucht, deswegen waren dies auch die ersten Anwendungen die gut von Multicores profitiert haben.

Machen die Threads verschiedene Sachen dann wirds aber übel. Der Übergang von singlethread auf multithread-Programmierung ist echt heftig. Witzig scheint hier die Engine von GTA4 zu sein welche auf 3 Hauptthreads festverdrahtet durde (XBOX360 hat 3 cores) und deshalb ein sehr eigentümliches Performanceprofil auf dem PC zeigt.

Vergesst nicht, man kann mehrere Threads auch auf einer CPU laufen lassen, ist aber kein Performancegewinn sondern ein Verlust.

Grundsätzlich im Anwenderbereich ist ein Dual-Core sehr angenehm da ein Betriebsystem schon aus einem Zoo von Diensten besteht die auch schön auf mehrere Cores verteilt werden. Aber dieser Zusatznutzen ist bei den kommenden 6-Kernprozessoren doch recht gering, da spielen andere Zusatzfeatures wie automatisches hochtakten wenn man nur 3 cores benutzt eine größere Rolle.

Edith meint funktionale Programmiersprachen werden hier für Linderung sorgen aber man muß sein Denkmodell kräftig umkrempeln bis man damit zurechtkommt.

Zidahya

  • Global Moderator
  • Boardmonster
  • Beiträge: 7.345
  • Sid Newton, PR Manager bei TriDEnt!
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #11 am: 27. April 2010, 06:55:26 »
Na ja für die großen Chiphersteller zählt im Moment vermutlich eh nur das sie Neuentwicklungen auf den Markt bringen und wie Itchy schon sagte ist bei den Taktraten nicht mehr viel zu holen. Da würde ich als Unternehmen auch lieber ne neue Chipklasse mit noch mehr Kernen auf den Markt werfen (irgendwer kauft es schon), als gar nichts.

Neranja

  • likes pushing buttons
  • Trident Vollmitglied
  • Boardmonster
  • Beiträge: 3.998
  • Thread Necromancer
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #12 am: 27. April 2010, 08:50:18 »
Es ist leider so das der Hauptteil der Entwicklung inzwischen von Server-Markt getragen wird. Die Margen für eure Consumer-Geräte sind einfach zu niedrig. Das ist inzwischen so weit das sogar Nvidia seine Zukunft im Bereich GPGPU-Computing sucht.

Die Zukunft wird wohl in die Richtung gehen die Intel mit den aktuellen Mobile CPUs vormacht: Prozessoren die auf nur wenigen Kernen Last haben takten diese entsprechend ein paar MHz hoch, denn die Kühlung muss nach wie vor für Vollast aller Kerne ausgelegt werden. Da ist sicher noch Potential drin.

Darüber hinaus sind wir vermutlich noch lange nicht am Ende der Prozessorentwicklung angekommen: Die superskalaren Prozessoren entwickeln sich derzeit immer weiter, so das es auch in Richtung "Mehr Bums pro Takt" geht. Da läuft inzwischen schon recht komplexe Software auf dem Prozessor, und wir sind auch schon so weit das man teilweise Patches in die Prozessoren laden muss.

Auf der gegenüberliegenden Seite haben wir dann sowohl die Hochsprachen auch als die Compiler die optimierten Code für diese Targets liefern müssen. Und das Problem das wir nicht genug Frauen in der Software-Entwicklung haben die sich mit dem Konzept des gleichzeitigen Ausführens von mehreren Dingen auskennen. :whistle1:
Außerdem lässt mich mein Schaf nicht mehr ran

Mongrel

  • Trident Vollmitglied
  • Labermonster
  • Beiträge: 482
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #13 am: 27. April 2010, 10:35:15 »
Für mehr Frauen in den Programmier-Räumen!

(Warum sollen nur die ollen Grafiker den ganzen Spaß haben?)

Ok, ok, ich weiß, ich hab gerade wieder einen Grund geliefert, warum es so ist, wie es ist  :mrgreen:

kokunze

  • Abteilungstrident
  • Buchstabenmillionär
  • Beiträge: 1.167
    • Profil anzeigen
Re: Wohin mit den vielen Kernen?
« Antwort #14 am: 27. April 2010, 12:28:27 »
Für mehr Frauen in den Programmier-Räumen!

(Warum sollen nur die ollen Grafiker den ganzen Spaß haben?)

Ok, ok, ich weiß, ich hab gerade wieder einen Grund geliefert, warum es so ist, wie es ist  :mrgreen:

/sign

Das sagen wir auch immer...

Auf Arbeit kann ich im übrigen nie genug Kerne haben. Ich freu mich schon auf unsern neuen 24Kern Server. Aber ist halt industrielle Spracherkennung. Bei meinem Desktop siehts da ja anders aus.

 

Benutzer Online

23 Gäste, 0 Mitglieder
Powered by EzPortal