Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ADO/MSSQL mit Multi Prozessor Board (https://www.delphipraxis.net/188883-ado-mssql-mit-multi-prozessor-board.html)

Sir Rufo 18. Apr 2016 07:55

AW: ADO/MSSQL mit Multi Prozessor Board
 
Wenn bei der Berechnung jedes Datensatzes ca. 1 Sekunde benötigt wird, dann braucht man im Idealfall
AnzahlCoresDauer (h)
1.000.0001277,77
1.000.000646,30
Dies ist aber jetzt die reine Berechnungszeit und erfodert die volle Aufmerksamkeit eines jeden Cores. Hat man 4 Cores, dann nützen einem 6 Threads hier nichts ... sie sind eher schädlich.

Bei der Menge der Datensätze und dem Thread-Aufbau (Daten lesen, Berechnen, Daten schreiben) spielen die Zeiten für Lesen/Schreiben auch eine Rolle und addieren sich hinzu. Eine CriticalSection sorgt auch noch dafür, dass die Threads sich untereinander ausbremsen.

Darum nimmt man dafür eine Pipeline.
  1. Die erste Stage holt die Datensätze und schiebt diese in eine Queue A
  2. Die zweite Stage holt einen Datensatz aus der Queue A, führt die Berechnung aus und gibt das Ergebnis in eine Queue B
  3. Die dritte Stage holt einen Datensatz aus der Queue B und schreibt den Datensatz wieder zurück
Mit diesem Aufbau kommt man ziemlich nahe an den Idealfall von Anzahl * Berechnungszeit / Cores, denn die gegenseitige Behinderung ist nur beim Zugriff auf die Queues A/B gegeben und die sind extrem kurz.

jobo 18. Apr 2016 11:49

AW: ADO/MSSQL mit Multi Prozessor Board
 
Zitat:

Zitat von Sir Rufo (Beitrag 1335836)
Wenn bei der Berechnung jedes Datensatzes ca. 1 Sekunde benötigt wird, ..

Ist denn irgendwo angegeben, dass die Datenbasis für die Berechnung 1 Datensatz ist?

Sir Rufo 18. Apr 2016 11:53

AW: ADO/MSSQL mit Multi Prozessor Board
 
Zitat:

Zitat von jobo (Beitrag 1335855)
Zitat:

Zitat von Sir Rufo (Beitrag 1335836)
Wenn bei der Berechnung jedes Datensatzes ca. 1 Sekunde benötigt wird, ..

Ist denn irgendwo angegeben, dass die Datenbasis für die Berechnung 1 Datensatz ist?

Ja, im ersten Beitrag liest man
Zitat:

komplexere Mathematische Operationen im Client pro Datensatz

jobo 18. Apr 2016 13:35

AW: ADO/MSSQL mit Multi Prozessor Board
 
Oh, das habe ich übersehen. Danke!

p80286 19. Apr 2016 09:43

AW: ADO/MSSQL mit Multi Prozessor Board
 
[OT]
Zitat:

Zitat von Sir Rufo (Beitrag 1335836)
....
Darum nimmt man dafür eine Pipeline.
...

Gibt es dafür eine Standardimplementation?

Meine Lösungen waren bisher eher gefrickeltes "geht jetzt und hier".
[/OT]

Gruß
K-H

Lemmy 19. Apr 2016 10:06

AW: ADO/MSSQL mit Multi Prozessor Board
 
bei so was lohnt eigentlich immer ein Blick auf die Omnithread lib
http://www.thedelphigeek.com/2010/11...sses-with.html

Sir Rufo 19. Apr 2016 11:51

AW: ADO/MSSQL mit Multi Prozessor Board
 
Zitat:

Zitat von Lemmy (Beitrag 1335908)
bei so was lohnt eigentlich immer ein Blick auf die Omnithread lib
http://www.thedelphigeek.com/2010/11...sses-with.html

Jupp, hilft mir leider nicht, denn ich möchte so etwas immer für jede Plattform haben, darum war selber bauen angesagt :stupid:

bernhard_LA 19. Apr 2016 16:52

AW: ADO/MSSQL mit Multi Prozessor Board
 
Danke schon mal für die Beiträge, aktuell laufen div. Profiler Messungen
ich melde mich dann wieder

p80286 20. Apr 2016 06:57

AW: ADO/MSSQL mit Multi Prozessor Board
 
@Lemmy
Vielen dank, da schau ich mal rein.

Gruß
k-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz