Cpu`s mit mehren Kernen, 32/64/128 bit für wen ändert sich was?
-
ich glaube als 10jahre vor 64 bit die 32bit kamen und man sich gerade mit 40MB Harddisk im olymp fuehlte (wenn ich mich richtig entsinne), hat auch niemand zu glauben gewagt dass in kurzer zeit der 4GB addressspace ausgeht. das wird bei 64bit auch recht flott passieren.
zum multicore, intel sagt man soll so langsam paradigmen wechseln und nicht mehr in dual oder quadcore denken und programmieren, sondern seine software so designen, dass sie auf beliebig vielen cores laeuft und damit skaliert, weil es in zukunft rapide mehr cores geben wird. ende dieses jahres soll ja schon 8core rauskommen (ich glaube das las ich bei heise) und dann dauert es wie beim MHz-rennen nicht lange bis dann 128cores, 2048cores etc. in einem rechner stecken.
hilfslibs wie openMP oder Intels codeblocks sind da auch nur kleine hilfen fuer jetzt um ein paar schleifen zu parallelisieren. am ende wird man unmengen an aufgaben erstellen muessen die unabhaengig (ohne sync) ablaufen koennen und sich die cores aus einer work-queue rausnehmen sobald sie fertig sind mit dem aktuellen job.
-
Helium schrieb:
Bill Gates (1983) schrieb:
Nobody will ever need more than 640 kB RAM.
Quatsch... das "ever" kannst Du streichen. Die Aussage war eher "640 kByte should be enough for everybody", und zwar auf den damaligen Zeitpunkt bezogen und nicht auf "solange die Menschheit existiert und die Kühe grasen, wird niemals irgendjemand auf die dämliche Idee kommen, mehr als 640 kByte zu benötigen"

-
Rock Lobster schrieb:
Helium schrieb:
Bill Gates (1983) schrieb:
Nobody will ever need more than 640 kB RAM.
Quatsch... das "ever" kannst Du streichen. Die Aussage war eher "640 kByte should be enough for everybody", und zwar auf den damaligen Zeitpunkt bezogen und nicht auf "solange die Menschheit existiert und die Kühe grasen, wird niemals irgendjemand auf die dämliche Idee kommen, mehr als 640 kByte zu benötigen"

Also im Netz finde ich beide Zitate deins von '81 meins von '83.
-
rapso schrieb:
ich glaube als 10jahre vor 64 bit die 32bit kamen und man sich gerade mit 40MB Harddisk im olymp fuehlte (wenn ich mich richtig entsinne), hat auch niemand zu glauben gewagt dass in kurzer zeit der 4GB addressspace ausgeht. das wird bei 64bit auch recht flott passieren.
Von 32 Bit auf 64 Bit kannst Du 32 weitere Bits "füllen". Von 16 Bit auf 32 Bit nur 16. Das heißt, dass bei gleichbleibender technischer Entwicklung die 64 Bit Epoche doppelt so lange anhalten sollte wie die 32 Bit Epoche.
-
Gregor schrieb:
rapso schrieb:
ich glaube als 10jahre vor 64 bit die 32bit kamen und man sich gerade mit 40MB Harddisk im olymp fuehlte (wenn ich mich richtig entsinne), hat auch niemand zu glauben gewagt dass in kurzer zeit der 4GB addressspace ausgeht. das wird bei 64bit auch recht flott passieren.
Von 32 Bit auf 64 Bit kannst Du 32 weitere Bits "füllen". Von 16 Bit auf 32 Bit nur 16. Das heißt, dass bei gleichbleibender technischer Entwicklung die 64 Bit Epoche doppelt so lange anhalten sollte wie die 32 Bit Epoche.
man muss auch noch mit einbeziehen, dass die technische entwicklung auch immer schneller voran geht.
MfG borgolte
-
borgolte schrieb:
man muss auch noch mit einbeziehen, dass die technische entwicklung auch immer schneller voran geht.
Das Gegenteil ist eher der Fall: Am Anfang hat man beim Moore'schen Gesetz noch von 12 Monaten gesprochen, bis sich die Transistoranzahl verdoppelt. Dann waren es 18 Monate und inzwischen spricht man von 24 Monaten.
-
Gregor schrieb:
borgolte schrieb:
man muss auch noch mit einbeziehen, dass die technische entwicklung auch immer schneller voran geht.
Das Gegenteil ist eher der Fall: Am Anfang hat man beim Moore'schen Gesetz noch von 12 Monaten gesprochen, bis sich die Transistoranzahl verdoppelt. Dann waren es 18 Monate und inzwischen spricht man von 24 Monaten.
Ist trotzdem noch eine exponentielle Entwickelung, egal ob man jetzt 12 oder 24 Monate nimmt. Eine Verdoppelung einer großen Zahl ist immer ein größeres Wachstum als die Verdoppelung einer kleinen. Heute geht es schneller als damals, wenn auch nicht so schnell wie damals voraus gesagt wurde.
OK, sollten wir irgendwann mal 128Bit Addressen verwenden, haben wir ein Problem, weil dann die Begriffe ausgehen. Klar, Giga, Tera, Peta, Exa, aber weiter gehts dann AFAIK nicht. Und 295147905179352825856 Exa Byte kann sich doch kein ***** merken.
Wie wäre es mit Kiloexa's ? (Das Apostroph wurde bis dahin in die Sprache aufgenommen :p
)Autoparallelisierung könnte ich mir aber für C++ vorstellen. Der Compiler muss halt Abhängigkeiten für alle Funktionen feststellen und zwischen speichern aber sonst sehe ich da keine großen Probleme. Schleifen kann man auch parallelisieren wenn der Compiler feststellen kann, dass nur lesend auf die Schleifenvariable zugegriffen wird.
-
Ben04 schrieb:
OK, sollten wir irgendwann mal 128Bit Addressen verwenden, haben wir ein Problem, weil dann die Begriffe ausgehen. Klar, Giga, Tera, Peta, Exa, aber weiter gehts dann AFAIK nicht. Und 295147905179352825856 Exa Byte kann sich doch kein ***** merken.
Wie wäre es mit Kiloexa's ? (Das Apostroph wurde bis dahin in die Sprache aufgenommen :p
)Wie wärs denn mit Zetta und Yotta?!
-
Ich glaube nicht, dass der 64bit Adressraum so schnell ausgeht. Einfach in anbetracht der Tatsache, wie lange man braucht um beispielsweise jedes Byte einmal anzufassen... und das selbst dann, wenn man sich superschnelle Zugriffsgeschwindigkeiten gönnt. Natürlich werden die auch schneller, aber eben nicht so schnell.
-
Ben04 schrieb:
Gregor schrieb:
borgolte schrieb:
man muss auch noch mit einbeziehen, dass die technische entwicklung auch immer schneller voran geht.
Das Gegenteil ist eher der Fall: Am Anfang hat man beim Moore'schen Gesetz noch von 12 Monaten gesprochen, bis sich die Transistoranzahl verdoppelt. Dann waren es 18 Monate und inzwischen spricht man von 24 Monaten.
Ist trotzdem noch eine exponentielle Entwickelung, egal ob man jetzt 12 oder 24 Monate nimmt. Eine Verdoppelung einer großen Zahl ist immer ein größeres Wachstum als die Verdoppelung einer kleinen. Heute geht es schneller als damals, wenn auch nicht so schnell wie damals voraus gesagt wurde.
Dir ist aber schon klar, dass man jedes Wachstum als Verdopplung nach einer gewissen Zeit angeben kann? Einfach nur die Größe eines Wertes anzuschaun und zu sagen verdoppelt sich regelmäßig reicht nicht, um das Wachstum zu beschreiben.
Autoparallelisierung könnte ich mir aber für C++ vorstellen. Der Compiler muss halt Abhängigkeiten für alle Funktionen feststellen und zwischen speichern aber sonst sehe ich da keine großen Probleme. Schleifen kann man auch parallelisieren wenn der Compiler feststellen kann, dass nur lesend auf die Schleifenvariable zugegriffen wird.
Ne, das reicht nicht. Und die Unabhängigkeit festzustellen kann ganz schön problematisch sein... insofern sehe ich da große Probleme.
-
Ben04 schrieb:
Autoparallelisierung könnte ich mir aber für C++ vorstellen. Der Compiler muss halt Abhängigkeiten für alle Funktionen feststellen und zwischen speichern aber sonst sehe ich da keine großen Probleme. Schleifen kann man auch parallelisieren wenn der Compiler feststellen kann, dass nur lesend auf die Schleifenvariable zugegriffen wird.
Ne, C und C++ sind imho sonderlich schlecht für Autoparallelisierung geeignet. Dafür kann man einfach zu viele Nebeneffekte auf zu viele Weisen zaubern.
Parallelisierung auf Framework Ebene macht da eher Sinn. Zur Zeit arbeite ich für die Uni an einem Framework mit, bei dem man Formeln in einer Metasprache ausdrückt (diese basiert wie Spirit direkt auf C++) und den daraus generierten Code kann man dann beliebig skalieren lassen. Ansonsten wird es auch wesentlich bessere Tools geben und einfach neue Entwurfs Konzepte.
Selbst wenn Erlang kein Erfolg wird, werden denke ich bald ähnliche Bibliotheken für andere Sprachen wie Pilze aus dem Boden schießen (für Common Lisp und Scheme gibt es schon vergleichbares).
Ein paar Links
* C++ OpenMP Tutorial http://bisqwit.iki.fi/story/howto/openmp/
* Intels Threading Building Blocks http://osstbb.intel.com/
-
Ben04 schrieb:
Gregor schrieb:
borgolte schrieb:
man muss auch noch mit einbeziehen, dass die technische entwicklung auch immer schneller voran geht.
Das Gegenteil ist eher der Fall: Am Anfang hat man beim Moore'schen Gesetz noch von 12 Monaten gesprochen, bis sich die Transistoranzahl verdoppelt. Dann waren es 18 Monate und inzwischen spricht man von 24 Monaten.
Ist trotzdem noch eine exponentielle Entwickelung, egal ob man jetzt 12 oder 24 Monate nimmt. Eine Verdoppelung einer großen Zahl ist immer ein größeres Wachstum als die Verdoppelung einer kleinen. Heute geht es schneller als damals, wenn auch nicht so schnell wie damals voraus gesagt wurde.
Es ging darum, wie schnell der 64-Bit Adressraum nicht mehr ausreicht. Und in diesem Zusammenhang ist es so, dass jedes zusätzliche Bit bei den Adressen den adressierbaren Speicher verdoppelt. Und die Speichermenge beim Arbeitsspeicher ist nunmal an das Moore'sche Gesetz gekoppelt. Da so eine Verdopplung früher schneller stattgefunden hat als heute, hat man früher auch schneller mehr Bits zur Adressierung benötigt.
Dein Beitrag bezüglich dem beschleunigten technischen Fortschritt habe ich so gewertet, dass einem die Bits vielleicht früher ausgehen könnten, als man ansonsten annehmen könnte. Das ist Unsinn. Die Menge des adressierbaren Speichers ist genauso exponentiell von der Anzahl der Bits abhängig, wie die Speichermenge exponentiell wächst. Insofern kann man durchaus sagen, dass einem die doppelte Anzahl an Bits die doppelte Zeit verschafft, bis man an dieser Schraube wieder drehen muss.
-
Jester schrieb:
Ben04 schrieb:
Gregor schrieb:
borgolte schrieb:
man muss auch noch mit einbeziehen, dass die technische entwicklung auch immer schneller voran geht.
Das Gegenteil ist eher der Fall: Am Anfang hat man beim Moore'schen Gesetz noch von 12 Monaten gesprochen, bis sich die Transistoranzahl verdoppelt. Dann waren es 18 Monate und inzwischen spricht man von 24 Monaten.
Ist trotzdem noch eine exponentielle Entwickelung, egal ob man jetzt 12 oder 24 Monate nimmt. Eine Verdoppelung einer großen Zahl ist immer ein größeres Wachstum als die Verdoppelung einer kleinen. Heute geht es schneller als damals, wenn auch nicht so schnell wie damals voraus gesagt wurde.
Dir ist aber schon klar, dass man jedes Wachstum als Verdopplung nach einer gewissen Zeit angeben kann? Einfach nur die Größe eines Wertes anzuschaun und zu sagen verdoppelt sich regelmäßig reicht nicht, um das Wachstum zu beschreiben.
Wo hab ich dem widersprochen? und ich bleib dabei : "Anzahl der Transistoren morgen" - "Anzahl der Transistoren heute" > "Anzahl der Transistoren gestern" - "Anzahl der Transistoren vorgestern" also entwickelt es sich schneller. Ok wenn einen 64Bit Adressraum voll kriegen will dann muss es schon noch ein gutes Stück schneller gehen.
Jester schrieb:
Autoparallelisierung könnte ich mir aber für C++ vorstellen. Der Compiler muss halt Abhängigkeiten für alle Funktionen feststellen und zwischen speichern aber sonst sehe ich da keine großen Probleme. Schleifen kann man auch parallelisieren wenn der Compiler feststellen kann, dass nur lesend auf die Schleifenvariable zugegriffen wird.
Ne, das reicht nicht. Und die Unabhängigkeit festzustellen kann ganz schön problematisch sein... insofern sehe ich da große Probleme.
Natürlich kommt es nicht an Programme ran welche extra für mehrere Kerne entwickelt wurden und daher könnte es den Aufwand nicht wert sein. Abhängigkeiten werden dreckig sobald Zeiger ins Spiel kommen. Dies hatte ich vorher nicht bedacht.
-
@ Helium:
Hmm okay, und wieder andere Quellen sagen, Bill hätte sowas überhaupt nie gesagt... naja was soll's

-
Gregor schrieb:
borgolte schrieb:
man muss auch noch mit einbeziehen, dass die technische entwicklung auch immer schneller voran geht.
Das Gegenteil ist eher der Fall: Am Anfang hat man beim Moore'schen Gesetz noch von 12 Monaten gesprochen, bis sich die Transistoranzahl verdoppelt. Dann waren es 18 Monate und inzwischen spricht man von 24 Monaten.
die verdopplung der transistoren hat kaum mit dem technischen fortschritt im allgemeinen zu tun, lediglich bei der halbleiterfertigung.
dass mittlerweile eine graka 1GB ram haben kann und PCs mit 4GB ausgeliefert werden, wobei der address-space auf alle komponenten verteilt werden muss, zeigt in welche richtung es geht. address-space wird nicht gleichbedeutend mit ramgroesse oder bandbreite sein. du wirst deine blueray memorymapped oeffnen. vielleicht auch die ganze HDD? du hast ja genug "speicher", und wie schaut's aus mit address-space-collisions aus wenn mehrere processe eine resource sharen? vielleicht sollte die ja dann doch fuer alle processes den selben address-space reservieren etc. und schon bist du auf dem wege dass 64bit nicht reichen.
eventuell kannst du dir ja deine online-movie-bibliothek memorymappen, wieso auch nicht? du hast ja 64bit... ich glaube 128bit wird in 10jahren das mass der dinge sein.
-
Oh 128bit = ca. 340.000.000.000.000.000.000.000.000 Terabyte
Könne man ja alle Informationen der Welt speichern...
-
Wenn man von einer Verdopplung des Arbeitspeichers in einem Jahr ausgeht, so würde der Sprung von 32 auf 64 Bit immerhin 32 Jahre reichen, bis man auch an die Grenzen von 64 Bit gelangt.
Damit in 10 Jahren 64 Bit nicht ausreicht müsste die Entwicklung ja noch schneller werden, also eine Verdopplung ca alle 4 Monate.Ich würde persönlich die Zahl 32 Jahre aber weit höher einschätzen, da die Physik uns einen Strich durch die Rechnung machen kann. Wieviel Teilchen brauchen wir um so viele Zustände abbilden zu können? Quanten bieten uns zwar mehr Zustände und die Entwicklung ist nicht auf Transistoren beschränkt, aber irgendwie sehe ich keinen Grund warum die Entwicklung auch in 3 Jahren immernoch so riesige Sprünge schaffen sollte.
Das die Entwicklung durch verbesserte Herstellung zur Zeit recht schnell voran geht halte ich persönlich eher für eine Ausnahme. Es wäre auch möglich, dass in 5 Jahren die Halbleitertechnologie an ihre Grenzen stößt und die nächste neue Technologie erst in 50 Jahren gefunden wird, bzw. marktreife erreicht.Dazu glaube ich nicht, dass wir Speicher von ca 1 Millionen Blue Ray Disks überhaupt brauchen werden.
-
Interessante Diskussion. Mich würde mal interessieren woher die Daten bekommen, die ihr so addressieren wollt.

Eine 32-Bit Adressierung ist für höhere Auflösungen bei Ton/Bild nicht wirklich toll. Dafür sind 32-Bit Wald-Feld-Wiesen-Systeme auch nicht ausgelegt.
Stellt sich im Anschluß die Frage welche Art von Daten stößt bei einer 64-Bit Adressierung am die Grenze?
Denke die Antwort auf diese Frage ist entscheidend wann, ob bzw. für welche Anwendungen 128Bit-Rechner auf den Markt gebracht werden.
-
BTW: Nehmen wir mal an, man bräuchte zur Speicherung eines einzigen Bits nur ein Atom. ...und nehmen wir weiter an, dass ein Atom einen Würfel mit einer Kantenlänge von 0,1nm belegt. Jetzt kann man sich ja mal überlegen, wieviel Fläche benötigt werden würde, um einen 64-Bit-Adressraum auszulasten, wenn man annimmt, dass man weiterhin nur "zweidimensional" speichern kann.
Also wir wollen 8*2^64 Bits bzw. Atome in der Ebene anordnen. ...nach etwas rechnen kommt man dann darauf, dass man dafür ein Quadrat mit einer Kantenlänge von 1,2m benötigen würde.
...nicht sehr realistisch, einen solchen Speicher in absehbarer Zeit in einem Desktoprechner anzutreffen. Abgesehen davon denke ich, dass die Bitzellen nicht so klein werden. Bei einer Kantenlänge von ~10nm wird vermutlich Schluss sein. ...dafür könnte aber möglicherweise die 3. Dimension stärker genutzt werden.
-
MathiasTemp schrieb:
Interessante Diskussion. Mich würde mal interessieren woher die Daten bekommen, die ihr so addressieren wollt.

Eine 32-Bit Adressierung ist für höhere Auflösungen bei Ton/Bild nicht wirklich toll. Dafür sind 32-Bit Wald-Feld-Wiesen-Systeme auch nicht ausgelegt.
Stellt sich im Anschluß die Frage welche Art von Daten stößt bei einer 64-Bit Adressierung am die Grenze?
Ich glaube, die Industrie, die Wissenschaft und auch die Medizin hätten zumindest keine Probleme, auf Dauer Speicher mit so einer Kapazität auszunutzen. Stell Dir zum Beispiel in der Medizin einen dreidimensionalen Ganzkörperscan mit einer Auflösung von 1µm vor. ...so als CT-Aufnahme oder MRT-Aufnahme oder so.
...in der Wissenschaft kannst Du Dir ja mal angucken, was nächstes Jahr so an Datenmengen am LHC produziert werden. Dafür werden zwar noch keine 128Bit gebraucht, aber das ist ja auch schon nächstes Jahr.

EDIT: Also Petabytes an Daten werden zumindest heutzutage schon gehandhabt. Siehe die Beispiele da: http://en.wikipedia.org/wiki/Petabyte
EDIT 2: Der 64Bit Adressraum geht auch nur bis 16 Exabytes. Das ist nur um einen Faktor 1000 mehr als heutige Systeme teilweise schon brauchen.