AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Ein bisschen InlineAssembler hilfe :)
Thema durchsuchen
Ansicht
Themen-Optionen

Ein bisschen InlineAssembler hilfe :)

Ein Thema von Spiderpig_GER_15 · begonnen am 17. Nov 2009 · letzter Beitrag vom 9. Dez 2009
Antwort Antwort
Seite 4 von 4   « Erste     234   
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#31

Re: Ein bisschen InlineAssembler hilfe :)

  Alt 7. Dez 2009, 14:02
Ah, n ist vorab bestimmbar, alles klar Danke!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#32

Re: Ein bisschen InlineAssembler hilfe :)

  Alt 7. Dez 2009, 19:59
@Medium:
ja, aber es ginge auch ohne das.
Nimm an du willst auf 4 Threads verteilen.
Thread 1 rechnet 1/1 + 1/5 + 1/9 ...
Thread 2 rechnet 1/2 + 1/6 + 1/10 ...
Thread 3 rechnet 1/3 + 1/7 + 1/11 ...
Thread 4 rechnet 1/4 + 1/8 + 1/12 ...
Der erste Thread startet also mit dem Divisor 1 und die folgenden Threads starten mit einem um jeweils 1 höheren Divisor und alle Threads erhöhen den Divisor jeweils um n.
Abbruchbedingung aller Thraeds ist Summe>=Zielwert.
(Im Nachherein wundert es mich, warum ich das so umständlich gemacht habe.)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#33

Re: Ein bisschen InlineAssembler hilfe :)

  Alt 7. Dez 2009, 23:04
Da hättest du das gleiche Problem, dass ich auch gedanklich hatte, als ich den Algo als nicht parallelisierbar bezeichnet hab: Abbruchbedingung ist die Summe aller Thread-Teilergebnisse, d.h. sie müssten nach jeden Schritt synchronisiert, die Summe gebildet und dann ggf. fortgeführt werden. Zwar "erschlägt" man so viele Divisionen wie man CPUs hat auf ein Mal, jedoch ist der organisatorische Aufwand hoch. Und auch dass alle Threads nach jedem Zyklus angehalten werden müssen, und die Summe ja nur noch ein-threadig berechnet wird ist der Sache auch wenig dienlich.
Und was macht man, wenn n jetzt kein Vielfaches der CPU-Anzahl ist? Dann schießt man ggf. über das Ziel hinaus, und muss das noch extra behandeln. Letztlich müsste man es aber wohl auf einen Versuch ankommen lassen um das brauchbar zu bewerten .
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#34

Re: Ein bisschen InlineAssembler hilfe :)

  Alt 9. Dez 2009, 22:17
@Medium:
Oh, ja, da hast du Recht: Abbruchbedingung wäre für alle Threads die Gesamtsumme. Da bin ich wohl zu kurz gehopst, als ich sage es ginge auch ohne den Wert n zu kennen.
Jedoch ist es kein Problem, wenn n kein Vielfaches der CPU-Anzahl ist. Man kann ja (und genau das macht auch mein Programm) nachdem alle Threads fertig sind, noch fehlende Glieder dazu addieren bzw. welche subtrahieren.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 04:15 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