Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Multiprozessor und Windows ? (https://www.delphipraxis.net/51589-multiprozessor-und-windows.html)

spacewolf 15. Aug 2005 17:53


Multiprozessor und Windows ?
 
Sagt mal, wisst ihr wie z.B. Windows 2000 bei ein einem Mulitprozessorsystem reagiert ?
Ist es möglich ein Programm speziell von auf einen Prozessor auszuführen ? Oder/und macht Windows das allein ?

Hab mit überlegt, wichtige Operationen, die im Hintergrund ablaufen können, aus dem Netzwerk vorladen und entpacken zu lassen
und ein solches Programm im Hintergrund auf einem 2. Prozessor ausführen um den allg. Arbeitsfluss nicht zu stören bzw. eigendlich zu beschleunigen... muss immer große Dateien (bis zu 100 MByte aus dem Netzwerk laden und entpacken lassen)...

be blessed euer Andreas :angel2:

Robert_G 15. Aug 2005 18:04

Re: Multiprozessor und Windows ?
 
Zitat:

Zitat von spacewolf
Ist es möglich ein Programm speziell von auf einen Prozessor auszuführen ? Oder/und macht Windows das allein ?

Ja und Ja. Bei einem HT Prozessor würde ich aber XP empfehlen, da es nicht wirklich 2 sind und XP da eine ganz Ecke effizienter verwaltet. (Bei 2 HT Xeons wäre wohl Win2003 nötig)
Zitat:

muss immer große Dateien (bis zu 100 MByte aus dem Netzwerk laden und entpacken lassen)...
Und genau da hört der Spass auf. Solange das nicht auf einer anderen Platte (Platte nicht Partition!) läuft, hast du das Problem, dass du nur ein davon hast...

Daniel G 15. Aug 2005 19:33

Re: Multiprozessor und Windows ?
 
Zitat:

Zitat von Robert_G
Solange das nicht auf einer anderen Platte (Platte nicht Partition!) läuft, hast du das Problem, dass du nur ein davon hast...

Meinst du eine (Festplatte)? AFAIK sind Festplatten (und insbesondere der Schreib-/Lesekopf) doch recht schnell, besonders dann, wenn die Dateioperation auf einer NTFS-Platte geschieht.

Olli 15. Aug 2005 20:03

Re: Multiprozessor und Windows ?
 
Zitat:

Zitat von Daniel G
AFAIK sind Festplatten (und insbesondere der Schreib-/Lesekopf) doch recht schnell, besonders dann, wenn die Dateioperation auf einer NTFS-Platte geschieht.

:shock: ... könnte sein, daß du hier statt der Festplatte gerade den Cache von Windows lobst, ohne daß es dir bewußt ist. Platten sind arschlangsam. Sie sind immernoch *der* Flaschenhals in modernen Computersystemen. Das siehst du am besten, wenn du mal von UDMA auf S-ATA umsteigst - dann mal auf SCSI oder Firewire und von dort auf RAM-Disk.

@Fragesteller: Was du suchst sind MSDN-Library durchsuchenSetProcessAffinityMask und MSDN-Library durchsuchenGetProcessAffinityMask. Wie XP kann aber auch Windows 2000 (Pro!) nur 2 Prozessoren maximal verwalten - nein, nur weil XP ein Dualcore-System mit zwei HT-Kernen verwalten kann, setzt dies meine Aussage nicht außer Kraft.

Robert_G 15. Aug 2005 20:19

Re: Multiprozessor und Windows ?
 
XP erlaubt 2 physikalische Prozis mit akitiviertem HT ? Hätte ich nicht gedacht.

btw: Man kann auch 2k/XP dazu bringen 4 physikalische Prozis zu erlauben: Einfach NT4 draufpacken nix einstellen und sofort ein Upgrade zu XP machen. Dann lässt er auch 4 zu. :mrgreen: (Und mit etwas Glück wurde kein Gekrepel von NT4 ins XP übernommen... :roll: )

Daniel G 15. Aug 2005 20:23

Re: Multiprozessor und Windows ?
 
Zitat:

Zitat von Olli
:shock: ... könnte sein, daß du hier statt der Festplatte gerade den Cache von Windows lobst, ohne daß es dir bewußt ist.

Nee, habe gerade nochmal nachgelesen. Ich hatte 'nen Artikel aus der c't falsch in Erinnerung. Sorry.

rantanplan99 15. Aug 2005 20:23

Re: Multiprozessor und Windows ?
 
Nur Angemerk: Windows2000 unterstützt keine Mehrprozessor System, weder echte noch solche mit HT oder Dualcore. WinXP hingegen schon. Gilt aber nur für Win2000 nicht für XP

//edit: zumindest ist das mein derzeitiger Wissensstand

Olli 15. Aug 2005 20:26

Re: Multiprozessor und Windows ?
 
Zitat:

Zitat von Robert_G
Man kann auch 2k/XP dazu bringen 4 physikalische Prozis zu erlauben: Einfach NT4 draufpacken nix einstellen und sofort ein Upgrade zu XP machen.

:lol: kannste auch einfacher haben. Da gibt es einschlägige Registrywerte, die man "anpassen" kann. Verstößt aber eben gegen den EULA, genau wie vermutlich die Nutzung mit 4 CPUs bei deiner Methode auch.

Zitat:

Zitat von rantanplan99
Nur Angemerk: Windows2000 unterstützt keine Mehrprozessor System, weder echte noch solche mit HT oder Dualcore.

Dann darfst du dich jetzt fragen, warum auf dem Aufkleber mit der Seriennummer komischerweise "1-2 CPU" obensteht. Natürlich unterstützt W2K echte SMP-Systeme. HT glaube ich nicht, weil da spezielle Treiber nötig sind und bei DualCore weiß ich nicht, wieviel Logik da in einem Treiber nötig wäre - IMO müßte DualCore dem System wie echtes SMP erscheinen.

Robert_G 15. Aug 2005 20:26

Re: Multiprozessor und Windows ?
 
Zitat:

Zitat von rantanplan99
Nur Angemerk: Windows2000 unterstützt keine Mehrprozessor System, weder echte noch solche mit HT oder Dualcore. WinXP hingegen schon. Gilt aber nur für Win2000 nicht für XP

Doch 2000 kann das schon. Es erkennt nur in einem HT nicht, dass es ein HT ist sondern hält es für 2 CPUs. Deshalb verteilt er die Threads nicht so günstig (die armen Caches gibt's ja nur einmal ;) ).

Edit:
Zitat:

Zitat von Olli
:lol: kannste auch einfacher haben. Da gibt es einschlägige Registrywerte, die man "anpassen" kann. Verstößt aber eben gegen den EULA, genau wie vermutlich die Nutzung mit 4 CPUs bei deiner Methode auch.

Ja ich weiß, ich dachte nur dass das Upgrade lizenztechnisch korrekt wäre... :gruebel:

spacewolf 16. Aug 2005 16:59

Re: Multiprozessor und Windows ?
 
ich armer Tor jetzt bin ich so schlau als wie zuvor... :=) auf jeden fall sind ein paar Begriffe gefallen, die kannte ich vorher nicht mal... am besten Chef überreden son Ding zu kaufen und dann fleisig drauf los probieren hab bei torry was gefunden um Prozesse auf jeweilige Prozessoren auszuprobieren und die Registry-Werte müsste man dann halt suchen...

kennt ihr so funktionen wie: zu wieviel Prozent ist der Prosessor X ausgelastet ?
Und auf welchem Prozessort läuft das Programm, bzw. .Self ? Etc.
Gibts da so Standard-Units für ?

Olli 16. Aug 2005 17:52

Re: Multiprozessor und Windows ?
 
Zitat:

Zitat von spacewolf
ich armer Tor jetzt bin ich so schlau als wie zuvor... :=) auf jeden fall sind ein paar Begriffe gefallen, die kannte ich vorher nicht mal...

Helfen die Funktionen denn nicht?

Ich hatte oben folgendes geschrieben
Was du suchst sind MSDN-Library durchsuchenSetProcessAffinityMask und MSDN-Library durchsuchenGetProcessAffinityMask. Wie XP kann aber auch Windows 2000 (Pro!) nur 2 Prozessoren maximal verwalten - nein, nur weil XP ein Dualcore-System mit zwei HT-Kernen verwalten kann, setzt dies meine Aussage nicht außer Kraft.


Zitat:

Zitat von spacewolf
am besten Chef überreden son Ding zu kaufen und dann fleisig drauf los probieren

Allerdings. Ohne sollte es in professioneller Umgebung heut nicht mehr gehen!

Zitat:

Zitat von spacewolf
kennt ihr so funktionen wie: zu wieviel Prozent ist der Prosessor X ausgelastet ?

Geht IMO nur über die Native API (wär schön wenn ich mirch irre, dann geht's nämlich konventionell) oder gleich WMI.

Zitat:

Zitat von spacewolf
Und auf welchem Prozessort läuft das Programm

Hast du mal die Antworten oben durchgelesen? Ich habe nochmal die Antwort von mir in diesem Beitrag zitiert ... die beiden Funktionen sind IMO was du willst. Das eine Mal setzt du die Affinity und das andere Mal liest du sie eben aus.

spacewolf 17. Aug 2005 08:51

Re: Multiprozessor und Windows ?
 
ich hab mal 'n bischen rumgeblättert - die Funktionen sind ein guter Tipp - DANKE !!!

dachte nur an sowas wie DelphiWorks oder der gleichen ;-)

aber vielleicht mal selbst machen und dann veröffentlichen ;-)

Was ich meinte mit so "klug als wie zuvor" - war die Unterstützungfrage für die verschiedenen Betriebssysteme... aber ein Blick in die Beschreibung der Funktionen, zeigt: NT 4 Server und WS / Win 2000 / Win XP - also alle nur nicht Win9x ;-) Aber damit Mulitprozessing zu machen, wäre wohl zu versuchen einen Trabantmotor in einen Ferarri einzubauen ;-)

ich glaube ich werde es wagen... wird bestimmt fetzen so mit 2 Prozessoren...

Olli 17. Aug 2005 10:43

Re: Multiprozessor und Windows ?
 
Zitat:

Zitat von spacewolf
dachte nur an sowas wie DelphiWorks oder der gleichen ;-)

Frag Codehunter doch mal, ansonsten kann ich das auch für dich tun.

Zitat:

Zitat von spacewolf
Was ich meinte mit so "klug als wie zuvor" - war die Unterstützungfrage für die verschiedenen Betriebssysteme... aber ein Blick in die Beschreibung der Funktionen, zeigt: NT 4 Server und WS / Win 2000 / Win XP - also alle nur nicht Win9x ;-) Aber damit Mulitprozessing zu machen, wäre wohl zu versuchen einen Trabantmotor in einen Ferarri einzubauen ;-)

Unter Win9x können nichtmal mehr als 512MB sinnvoll genutzt werden. Wissen viele auch nicht. In der Schule gab es bei uns einen cleveren Typen, welcher mal eben 1024MB (das war vor 7 Jahren viel) eingebaut hatte. Nur Ahnung hatte er nicht :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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