AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 64 Bit langsamer als 32 Bit

Ein Thema von BigAl · begonnen am 6. Aug 2013 · letzter Beitrag vom 12. Aug 2013
Antwort Antwort
Seite 1 von 2  1 2      
Robotiker
(Gast)

n/a Beiträge
 
#1

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 8. Aug 2013, 09:31
Um mal noch kurz einzustreuen, wie das bei Free Pascal ist:
Sind Anwendungen, wie die des Threaderstellers, eigentlich eine Zielgruppe für Pascal Compiler Entwickler ?

Leute die solche Berechnungen mit Millionen Daten und Millarden Operationen darauf machen, haben ja meist dicke Rechner mit mehreren Prozessoren. (GPUs usw. lassen wir mal ganz außen vor.) Bei den oben erwähnten C++ Lösungen dafür hat man ja heute Libs zum z.B. große Arrays auf CPUs zu partitionieren und hinterher die Teillösungen zusammenzubringen.

Sind die Delphi/Pascal Lösungen dafür Assemblerroutinen und Threads ? Tiling, Loadbalancing usw. alles händisch ? Arbeitet nicht die Zeit gegen solche Lösungen ? Es gibt schliessich immer mehr Kerne auf CPUs, die aber einzeln nicht schneller werden.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 8. Aug 2013, 10:04
@Robotiker: Wir befinden uns hier in einem Delphi (also Pascal Forum) und da wunderst Du dich, dass man hier über Delphi diskutiert? Nach Deiner Definition/Sichtweise gibt es natürlich keinen Grund überhaupt auf die Idee zu kommen, etwas nicht mit (Visual) C++ zu lösen zu wollen, da man mit VC++ ja alles besser machen kann als mit irgendeinem anderen Tool.
Native Gemüter (was wir ja aus Deiner Sicht zu sein scheinen) verwenden, aus vielleicht sentimentalen Gründen, "veraltete" Dinge wie Delphi/FPC/Lazarus, ...

Dieser Beitrag habe ich als Mitglied und nichta als Moderator verfasst, das heisst er muss nicht unbedingt der Meinung des Teams entsprechen.
Markus Kinzler
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#3

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 8. Aug 2013, 10:34
Native Gemüter (was wir ja aus Deiner Sicht zu sein scheinen)
Dieser Eindruck entsteht da in der Tat.

Der Fragesteller hat weiter oben festgestellt, dass ihm schon eine kleine Verbesserung des Codes 200 Minuten (!) Verbesserung bringen würden. Ist es bei solchen Dimensionen vermessen mal zu fragen, warum keiner überhaupt mal über das Thema Parallelisierung redet ?

Ich arbeite seit Turbo Pascal 3 mit Pascal, aber bei solchen Aufgaben heute nicht mehr. Aber ich habe Erfahrungen mit solchen Datenmengen.

Geht es hier also darum möglichst schnell solche Berechnungen zu lösen, oder einfach nur darum "ein Programm wie früher" zu schreiben ?

Besteht "native Code Performance" in Delphi heutzutage daraus "stunning multimedia apps" in FireMonkey zu schreiben, über die dann alle ganz "exited" sind ?

Meine Absicht war nicht den Fragesteller zu einer anderen Programmiersprache zu drängen, sondern zu zeigen, was man braucht um auf heutiger Hardware solche Probleme zu lösen. Deswegen meine Frage, ob und wie man sich bei FreePascal dieser Entwicklung stellt. Das solche Frage nicht erwünscht sind, weil man ja auf dem richten Weg ist, habe ich jetzt verstanden.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 8. Aug 2013, 10:45
Zitat:
Das solche Frage nicht erwünscht sind, weil man ja auf dem richten Weg ist, habe ich jetzt verstanden.
Darum geht es nicht, sondern um die Tatsache, dass in fast jedem Deiner Beiträge etwas von VC, C++ u.ä. steht.

Zitat:
Ist es bei solchen Dimensionen vermessen mal zu fragen, warum keiner überhaupt mal über das Thema Parallelisierung redet ?
Nein es ging hier aber um 32Bit vs. 64Bit. Parallelisierung sollte unabhängig von der Busbreite ein Thema sein.

Zitat:
Besteht "native Code Performance" in Delphi heutzutage daraus "stunning multimedia apps" in FireMonkey zu schreiben, über die dann alle ganz "exited" sind ?
Nein, ich würde sogar sagen "reines FM2 wäre hierfür nicht meine 1. Wahl.
Zitat:
Meine Absicht war nicht den Fragesteller zu einer anderen Programmiersprache zu drängen, sondern zu zeigen, was man braucht um auf heutiger Hardware solche Probleme zu lösen
Nämlich die Verwendung von Bibliotheken für (V)C++, welche in Delphi/BC++ nicht funktionieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#5

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 8. Aug 2013, 11:00
Nämlich die Verwendung von Bibliotheken für (V)C++, welche in Delphi/BC++ nicht funktionieren.
Diese Aussage erstaunt mich jetzt. Hat man den neuen Compiler im BCB nicht eingeführt, damit man Libs wie die Threading Collections und TBB (beide übrigens von Intel) verwenden kann ?

Hat nicht JT von Embarcadero einen Blogeintrag darüber geschrieben, dass man das MS Rest SDK im BCB integriert, da ist die PPLx enthalten, die Cross-Plattform Opensource Variante der PPL aus VC.

Ich hatte eigentlich durchaus den Eindruck, dass es hier Leute gibt, die professionelle leistungsfähige Software erstellen. Die auch mal eine Blick über den Tellerrand wagen, sei es auch nur um sich Ideen für die Entwicklung in Delphi zu holen.

Vom Fragesteller hatte ich schon den Eindruck, dass er sich ernsthaft mit der Materie auseinandersetzt. Ist da ein Link auf ein Video zu MS, wo gezeigt wird, wie man Schleifen cachegünstig optimiert, schlecht, weil es von MS kommt ? Hat das nicht zumindest indirekt mit dem 32/64 Bit Thema zu tun ? (Ganz sicher aber mit dem Problem des Fragestellers.) Gibt es auch nur ansatzweise ähnliche Doku bei Embarcadero, dann verweise ich gerne drauf ?

Geändert von Robotiker ( 8. Aug 2013 um 11:03 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 8. Aug 2013, 11:02
Das Thema war so angenehm zu lesen, eine wahrer Leuchtturm in den tosenden Böen des Internets. Jetzt nicht mehr.

Was hat das jetzt noch mit der ursprünglichen Frage am Hut?
  Mit Zitat antworten Zitat
Patito

Registriert seit: 8. Sep 2006
108 Beiträge
 
#7

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 8. Aug 2013, 11:29
Um das ganze wieder mehr relevant für Pascal zu machen hätte ich da die Frage wie es denn mit der Verwendung der GPU
in Pascal aussieht?

Vermutlich ist da ein Hybrid aus solider Pascal-GUI und einem Number-Cruncher in C for CUDA sinnvoll.
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
316 Beiträge
 
Delphi 12 Athens
 
#8

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 8. Aug 2013, 13:35
Das Thema war so angenehm zu lesen, eine wahrer Leuchtturm in den tosenden Böen des Internets. Jetzt nicht mehr.
Recht hast Du - seit Monaten mal wieder ein fesselnder Thread!
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 9. Aug 2013, 08:26
Um mal noch kurz einzustreuen, wie das bei Free Pascal ist:
Sind Anwendungen, wie die des Threaderstellers, eigentlich eine Zielgruppe für Pascal Compiler Entwickler ?

Leute die solche Berechnungen mit Millionen Daten und Millarden Operationen darauf machen, haben ja meist dicke Rechner mit mehreren Prozessoren. (GPUs usw. lassen wir mal ganz außen vor.) Bei den oben erwähnten C++ Lösungen dafür hat man ja heute Libs zum z.B. große Arrays auf CPUs zu partitionieren und hinterher die Teillösungen zusammenzubringen.
Es sehe hier durchaus Anwendungsmöglichkeiten für Pascal Compiler. Aktuell ist FPC und vielleicht auch die Laufzeitbibliothek nicht unbedingt darauf ausgelegt, aber das heißt ja nicht, dass das so bleiben muss. Vor allem bei einem Open Source Projekt, wo jeder was beitragen kann.
Meine Idee ist zum Beispiel die Funktionalität von Vector Pascal in FPC zu integrieren, was eine native Nutzung von SIMD Units ermöglichen würde (FPC unterstützt zwar aktuell SIMD Instructions, wendet die aber nur für einzelne Werte an, also eher als FPU-Ersatz). Dann müssten auch noch ein paar Optimierungen her wie Auto Vectorizing oder sonstige Nettigkeiten, wie sie LLVM zur Zeit bekommt. Vielleicht auch ein paar Threading Erweiterungen wie sie Oxygene kennt (z. B. parallel for ).

Sind die Delphi/Pascal Lösungen dafür Assemblerroutinen und Threads ? Tiling, Loadbalancing usw. alles händisch ? Arbeitet nicht die Zeit gegen solche Lösungen ? Es gibt schliessich immer mehr Kerne auf CPUs, die aber einzeln nicht schneller werden.
Meine Anmerkung mit Assembler betraf zwei Grundroutinen, die sehr häufig implizit aufgerufen werden. Wenn die nicht schnell sind, dann bringt dir auch die ganze sonstige Optimiererei nicht allzu viel. Und auch wenn natürlich der Compiler auch entsprechend optimieren können muss gibt es hier und da Routinen wo es besser ist, wenn man von Hand ne Assemblerroutine schreibt (eben zum Beispiel diese beiden besagten Routinen FillChar und Move ), da hierdurch Prozessorbefehle verwendet werden können, die der Compiler normalerweise nicht verwendet (ein Compiler reizt das Instruction Set eines Prozessors normal nie voll aus).
Was aktuell (zumindest so weit ich das Überblicke) allerdings tatsächlich noch fehlt sind Frameworks (ich nenn es mal einfach so), die einem das Arbeiten mit und Verwalten von vielen Threads abnehmen (du magst das nennen wie du willst, aber von der OS Perspektive her sind es am Ende immer noch Threads, die da parallel laufen).

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#10

AW: Delphi 64 Bit langsamer als 32 Bit

  Alt 9. Aug 2013, 08:39
Was aktuell (zumindest so weit ich das Überblicke) allerdings tatsächlich noch fehlt sind Frameworks (ich nenn es mal einfach so), die einem das Arbeiten mit und Verwalten von vielen Threads abnehmen
Wobei die OmniThreadLibrary dabei durchaus einiges an Arbeit abnimmt. Ob die auch für solche massiven Berechnungen sinnvoll nutzbar ist, kann ich nicht sagen, dafür kenne ich beides zu wenig.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz