AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken ADO/MSSQL mit Multi Prozessor Board
Thema durchsuchen
Ansicht
Themen-Optionen

ADO/MSSQL mit Multi Prozessor Board

Ein Thema von bernhard_LA · begonnen am 15. Apr 2016 · letzter Beitrag vom 20. Apr 2016
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: ADO/MSSQL mit Multi Prozessor Board

  Alt 18. Apr 2016, 07:55
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#12

AW: ADO/MSSQL mit Multi Prozessor Board

  Alt 18. Apr 2016, 11:49
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?
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: ADO/MSSQL mit Multi Prozessor Board

  Alt 18. Apr 2016, 11:53
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#14

AW: ADO/MSSQL mit Multi Prozessor Board

  Alt 18. Apr 2016, 13:35
Oh, das habe ich übersehen. Danke!
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#15

AW: ADO/MSSQL mit Multi Prozessor Board

  Alt 19. Apr 2016, 09:43
[OT]
....
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: ADO/MSSQL mit Multi Prozessor Board

  Alt 19. Apr 2016, 10:06
bei so was lohnt eigentlich immer ein Blick auf die Omnithread lib
http://www.thedelphigeek.com/2010/11...sses-with.html
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: ADO/MSSQL mit Multi Prozessor Board

  Alt 19. Apr 2016, 11:51
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.121 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: ADO/MSSQL mit Multi Prozessor Board

  Alt 19. Apr 2016, 16:52
Danke schon mal für die Beiträge, aktuell laufen div. Profiler Messungen
ich melde mich dann wieder
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#19

AW: ADO/MSSQL mit Multi Prozessor Board

  Alt 20. Apr 2016, 06:57
@Lemmy
Vielen dank, da schau ich mal rein.

Gruß
k-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 01:20 Uhr.
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