WinFuture-Forum.de: Was Ist Zu Beachten Beim Programmieren Für 64bit Cpu's Und Multico - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Was Ist Zu Beachten Beim Programmieren Für 64bit Cpu's Und Multico


#1 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 29. November 2007 - 06:40

Ja wie der Thread Titel schon sagt, wollte ich mal Infos sammeln oder Links oder was auc immer die sich mit einem oder beiden Themen aus der Überschrift beschäftigen.

Da ich gerade eine Ausbildung zum FiAE mache und somit viel mit dem programmieren zu tun habe, hat mich die Sache mal interessiert.

Also meine Frage an euch:

Was muss man beim programmieren beachten/anders machen um die Software als 64Bit Software laufen zu lassen
und
was muss man beachten um die Software für MultiCore CPU's (2, 4 .. Kerne) zu designen.

greetz skelle
0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 29. November 2007 - 08:18

Hallo skelle,

es kommt zum Teil drauf an in welcher Programmiersprache du entwickelst. Bei Sprachen wie Java oder C#, wo um Hintergrund eine Runtime läuft, musst du dir um 64-Bit keine Sorgen machen. Sämtliche Optimierungen (Laufe ich auf einem 64-Bit System, unterstützt es SSE, SSE2...?) übernimmt die Runtime für dich.
Bei Sprachen wie C++, sieht das anders aus. 64-Bit-Systeme bringen eigene 64-Bit Datentypen (Long_Long oder so ähnlich), die du natürlich verwenden solltest, falls benötigt (Manchmal brauchst du das auch nicht, weil du bspw nicht mit so großen Zahlen hantierst). Hier ein wenig Lesestoff für Windows.

Bei Multithreading kommt es auch wieder auf die Sprache an, da es einige Sprachen gibt, die sowas nicht unterstützen, wie bspw PHP (sch**ß Gefrickle), aber diese sind zum Glück Minderware.

Multithreading zu implementieren ist für viele nicht wirklich einfach, weil wir nicht parallel Denken können, bzw uns dabei sehr schwer tun.
Bei zwei parallelen Threads kann z.B. der eine die gerade Indizes und der andere die ungeraden bearbeiten. Bei vier Threads jedes vierte...
Zudem kommt noch dazu, dass das Debuggen von parallellaufenden Threads nicht wirklich trivial ist.

C# und Java bringen entsprechende Klassen mit, die es ermöglichen parallele Threads zu entwickeln.
Für C/C++ gibt es Bibliotheken, wie OpenMP, die dir dabei helfen können.
0

#3 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 29. November 2007 - 16:45

Zur Zeit beschäfzige ich mit Java.
Um die 64Bit unterstüzuung brauch ich mir also nich so die Gedanken machen, weil das die Runtime im Endefft macht.
Aber woher weiss denn die Runtime wann sie die 64Bit Datentypen nehmen muss?

Wenn ich mit Threads arbeite, denn mach ich das so:

Thread t1 = new Thread(object);
t1.start();

Is dies so richtig oder muss ich es anders machen?
mfg skelle
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 02. Dezember 2007 - 11:42

Zitat

Um die 64Bit unterstüzuung brauch ich mir also nich so die Gedanken machen, weil das die Runtime im Endefft macht.

Richtig, zudem gibt es bei Sun sowieso zwei verschiedene Runtimes zum Download, eine für 32bit und ein für 64bit.

Zitat

Aber woher weiss denn die Runtime wann sie die 64Bit Datentypen nehmen muss?

s.o.
Wobei hier eher die Frage interessanter wäre, wann weiß die Runtime, wann sie SSE oder SSE2 Befehle nutzen kann. Die Antwort hierdrauf ist eigentlich auch relativ simpel, sie fragt einfach den Prozessor, was er kann.

Zitat

Is dies so richtig oder muss ich es anders machen?

Ist im Prinzip schon mal richtig. Hier ein wenig Lesestoff, falls es dir noch nicht bekannt ist.
http://java.sun.com/docs/books/tutorial/es...al/concurrency/
http://www.dpunkt.de/java/Programmieren_mi...hreading/3.html
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0