Anzahl logischer CPUs > 32

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Benutzeravatar
BJelinek
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 218
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen
Hat sich bedankt: 9 Mal
Danksagung erhalten: 3 Mal

Anzahl logischer CPUs > 32

Beitrag von BJelinek »

Hallo zusammen,

ich bestimme im Programm die Anzahl der logischen CPU's
und weise beim Start des Programms immer die nächste CPU zu und
dann wieder von Vorne. Hilfreich bei Terminalservern

Code: Alles auswählen

nProcessor      := 1
 nProcessorCount := 1
 .
 .
 .
 do while _sysSetCPU(nProcessor) # 0
  lMultiProcessor := .T.
  nProcessorCount ++
  nProcessor ++
  if nProcessor >=32
   nProcessor      := 32
   nProcessorCount := 32
   exit
  endif
 enddo
 .
 .
 . 
FUNCTION _sysGetCPU()
LOCAL rc
rc := DllCall("Xpprt1.dll",DLL_CDECL, "_sysGetCPU")
RETURN rc

FUNCTION _sysSetCPU(nCpuMask)
LOCAL rc
nCpuMask := 2 ** (nCpuMask-1)
rc := DllCall("Xpprt1.dll",DLL_CDECL, "_sysSetCPU", nCpuMask)
RETURN rc
Bin jetzt auf einen Server mit 40 logischen CPU getroffen.

>32 kommt dann Fehler falsche Parameter

Wie macht Ihr das ?

Kann man mit xBase++ die restlichen 8 CPU's nutzen ?
Zuletzt geändert von BJelinek am Do, 20. Aug 2020 12:01, insgesamt 1-mal geändert.
Grüße
Bernd

Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Anzahl logischer CPU's > 32

Beitrag von HaPe »

Hallo Bernd !

Geht es an der Konsole mit:

Code: Alles auswählen

wmic CPU Get DeviceID,NumberofCores,NumberOfLogicalProcessors
bzw. Auslesen der Umgebungs-Variable

Code: Alles auswählen

NUMBER_OF_PROCESSORS
--
Hans-Peter
Benutzeravatar
BJelinek
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 218
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen
Hat sich bedankt: 9 Mal
Danksagung erhalten: 3 Mal

Re: Anzahl logischer CPU's > 32

Beitrag von BJelinek »

Hallo Hans-Peter,

ja der Befehl geht.
DeviceID NumberOfCores NumberOfLogicalProcessors
CPU0 10 20
CPU1 10 20
Grüße
Bernd

Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Anzahl logischer CPU's > 32

Beitrag von Tom »

"_sysSetCpu" kann mit mehr als 32 Prozessoren einfach nicht umgehen.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Anzahl logischer CPU's > 32

Beitrag von Jan »

Ich mach das nicht stur nach Reihenfolge, sondern nach Zufallsprinzip:

SetLogicalProcessor(RandomInt(GetLogicalProcessorCount()))

Bislang liefen meine Programme (meines Wissens) noch nie auf einem Rechner mit so vielen Kernen. Selbst auf Servern sind das immer nur VM, die nur eine Handvoll Kerne zugewiesen bekommen haben.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Anzahl logischer CPU's > 32

Beitrag von georg »

Hallo, Bernd -


nach Jans Hinweis habe ich doch mal nachgeschlagen, die 2.0 bietet mit

GetLogicalProcessorCount() und SetLogicalProcessor() "hausinterne" Mittel. Hast Du es mal mit denen versucht?

Ich habe leider gerade keinen >32 Kerner hier rumstehen, um das schnell auszuprobieren ...
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Anzahl logischer CPU's > 32

Beitrag von Tom »

Ab dieser Größenordnung wird das meines Wissens in Clustern verwaltet, weil es sich aufgrund der Exponentialadressierung sonst auch nicht einzeln ansprechen ließe. Aber ich mag irren.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Anzahl logischer CPU's > 32

Beitrag von AUGE_OHR »

hi,
BJelinek hat geschrieben: Mi, 19. Aug 2020 16:52 Kann man mit xBase++ die restlichen 8 CPU's nutzen ?
bei einem 32 Bit OS hat man nur 2 ^ 32
\Source\samples\solution\smp\smprun.prg
das ergibt also

Code: Alles auswählen

 nWorkCPU := 2 ^ INT( nStep - 1 )
solange du mit 32 Bit arbeitest kommst du bei der Function > 32 CPU nicht weiter.

---

anbei 64 Bit App (harbour) incl. Source ( Xbase++ fähig )
MCPU64.zip
(1.5 MiB) 258-mal heruntergeladen
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Anzahl logischer CPU's > 32

Beitrag von brandelh »

Code: Alles auswählen

Microsoft Windows [Version 10.0.19041.450]
(c) 2020 Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\BRANDELH>wmic CPU Get DeviceID,NumberofCores,NumberOfLogicalProcessors
DeviceID  NumberOfCores  NumberOfLogicalProcessors
CPU0      2              4


C:\Users\BRANDELH>
oh ich wurde betrogen ... mein i5 Laptop hat nur 2 echte Kerne, ich dachte die i5 haben immer 4 .... :badgrin:
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Anzahl logischer CPU's > 32

Beitrag von Tom »

Am Rande. Es gibt immer noch keinen Pluralapostroph in der deutschen Sprache (und einen Genitivapostroph nach wie vor nur dann, wenn das Substantiv auf s, tz, ß oder x endet). Einen Pluralapostroph gibt's übrigens nicht einmal im Englischen (wo es den Genitivapostroph tatsächlich gibt). Der Plural von "CPU" schreibt sich "CPUs". So ähnlich wie bei CDs, DVDs, LKWs, PKWs und MGs. Oder auch bei "Infos" (es gibt Leute, die schreiben das tatsächlich mit einem Apostroph) oder ähnlichem. Einfach merken: Plural (Mehrzahl) -> in Deutschland immer ohne Apostroph, ohne jede Ausnahme, auch in Sachsen und Thüringen. Im englischsprachigen Raum auch. Und Genitiv hierzulande auch, außer bei Substantiven, die wie eingangs angemerkt enden. Dann folgt aber kein "s" mehr.

Oder so (leicht abgenutzt, aber immer noch zutreffend):

Andreas Auto gehört Andrea.
Andreas' Auto gehört Andreas.
Andrea's Auto gehört einem Idioten.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Anzahl logischer CPU's > 32

Beitrag von Jan »

Tom hat geschrieben: Do, 20. Aug 2020 11:45Andreas Auto gehört Andrea.
Andreas' Auto gehört Andreas.
Andrea's Auto gehört einem Idioten.
Der ist gut. Und so eindeutig und leicht als Regel zu verstehen. Aber manchen ist halt nie zu helfen.

Wobei ich ganz ehrlich zugeben muß das die deutsche Rechtschreibung und ich manchmal auf Kriegsfuß stehen (mal ganz abgesehen von meinen ständigen Buchstabendrehern, wenn die FInger mal wieder das machen was die wollen). Ich pendle immer mal zwischen alter, neuer, der dazwischen rum. Und mach mich dann selber irre damit das ich dann manchmal auch noch meine eigene kreiere. Das Problem: Wenn ich mir sicher bin das etwas genau so geschrieben wird, dann schau ich auch nicht im Duden nach. Warum sollte ich auch, ich weiß es ja.

Das ist halt manchmal der Unterschied zwischen normalen Alltagsschreibern und Profis, Tom;-)

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Anzahl logischer CPU's > 32

Beitrag von Tom »

Huhu, Jan.

Auch Nichtprofis sollten den Unterschied zwischen dem Plural (=Mehrzahl - viele Autos) und Genitiv (=Wes-Fall - Toms Auto) kennen, und beim Plural gibt's in der deutschen Sprache einfach nie einen Apostroph, feddisch. Das gilt für den Alltagsgebrauch von Schriftsprache genauso wie für den vermeintlich professionellen. Und wenn ich von jemandem eine Mail oder ein Schreiben erhalte, in dem von "Info's" die Rede ist, verringern sich dessen Chancen, mich mit seiner Botschaft zu erreichen, um Fensterkreuz mal Pi 80 Prozent (aber eher mehr als weniger).
Herzlich,
Tom
Benutzeravatar
BJelinek
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 218
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen
Hat sich bedankt: 9 Mal
Danksagung erhalten: 3 Mal

Re: Anzahl logischer CPUs > 32

Beitrag von BJelinek »

Hallo Tom,

Danke für die Info.

Wieder was gelernt.
Grüße
Bernd

Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von Tom »

Hallo, Bernd.

Gerne! :)
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von Jan »

Tom,

mit dem Deppenapostroph hast Du ja Recht. Wobei vermutlich das mit dem Plural für die meisten einfacher einzuschätzen ist als das mit dem Genetiv. Ich meinte eher all die anderen Fallstricke in der deutschen Rechtschreibung. Wobei mir vollkommen klar ist das für jemanden, der die Regeln kennt, alles eher Deppenprobleme sind. Aber das ist dann halt der Unterschied zwischen dem Alltagsschreiber und dem Profi. Wenn Rechtschreibung mein Beruf ist ist das alles klarer als wenn ich das nur so nebenbei mache.

Ich glaube das eines der Probleme ist das wir im Alltag überall zu viel englisch lesen und hören. Und dabei zu viel lesen was auch auf englisch schon falsch ist - weil der Schreiber keine Ahnung hatte oder weil das doch so viel besser aussieht. Englisch ist doch viel schöner als die passenden deutschen Vokabeln. Selbst wenn das das englisch klingende Wort gar nicht im Englischen gibt. Und weil man das überall so oft sieht kommt es dann oftmals dazu, das man deutsche Vokabeln in (vermeintlich) englischer Schreibweise gibt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von Jan »

Gerade hab ich die Seite http://www.deppenapostroph.info/ gefunden. Da kann man ja nun wirklich vol'l die Kri'se kriegen!' Bei manchen Sachen könnte man ja vielleicht ncoh drüber nachdenken. Aber vieles davon ist ja nun wirklich sehr - sagen wir mal individuelle - Auslegung.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von Tom »

@Jan: In Deutschland ist der Apostroph ein Auslassungszeichen. Bei einem Substantiv im Genitiv, das z.B. auf "S" endet, lässt man das eigentlich für den Genitiv nötige "S" weg, dafür gibt's dann einen Apostroph: Alex' Bistro. Eigentlich müsste es "Alexs Bistro" heißen, aber das kann kein Mensch aussprechen, das "S" wird weggelassen. Genau wie bei "Das gibt's doch nicht!". "gibt's" ist eine zusammengeführte Version von "gibt es", aber das "E" ist ausgelassen, dafür steht der Apostroph. Deshalb ist das "deppenapostroh.info"-Beispiel mit dem "für's" grenzwertig, denn "fürs" steht für "für das", genau wie "ums" für "um das" steht, also eine Zusammenführung und Auslassung stattgefunden hat. Aber inzwischen wird das so häufig verwendet, dass der Apostroph auch weggelassen wird - es gilt als eigenständiges Wort, obwohl es sich um eine Verschmelzung aus Präposition und Artikel handelt.

Mehr dazu hier:
https://www.spiegel.de/kultur/zwiebelfi ... 83781.html
Herzlich,
Tom
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von Koverhage »

Tom,
wie kommst Du auf Sachsen bzw. Thüringen ?
Der Themenersteller kommt aus Baden-Württemberg, eventuell hat er die schwäbische Rechtschreibprüfung aktiviert ;-)
Gruß
Klaus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von Tom »

Huhu, Klaus.
wie kommst Du auf Sachsen bzw. Thüringen ?
Das hatte mit dem Fragesteller nichts zu tun; sorry, wenn es so rübrekam. Jedenfalls: Dort ist meines Wissens nicht nur der Anteil der AfD-Wähler besonders hoch, sondern auch derjeniger, die hier und da mal ein Apostroph zu viel einsetzen. Vielleicht korreliert das. :wink:
Herzlich,
Tom
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von Wolfgang Ciriack »

Heißt es da nicht auch "Tom sein Auto" ? :D
Viele Grüße
Wolfgang
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von brandelh »

Ich habe grundsätzlich ein Problem damit jemanden als "Deppen" zu bezeichnen, nur weil seine Begabung nicht auf den Sprachen liegt.
Ich habe meine Mitschüler auch nicht als Idioten bezeichnet, nur weil der Dreisatz etwas zu schwer war ...

Man wird leicht abgestempelt und ja, das ist mir auch schon passiert.
2 Seiten Abhandlung über ein Fachgebiet (weiß nicht mehr welches) und der einzige Kommentar ist, "da sind Kommafehler drin" 8)

Lass den Göttern ihre heilige Sprache ... und uns Menschen unsere Ruhe :badgrin:

PS: Hochdeutsch war auch nur ein Dialekt bis jemand den Duden erfunden hat 8)
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von Tom »

@Hubert: Kommas sind ein anderer Schuh. Und, ja, es ist etwas überzogen, jemanden als Deppen oder Idioten zu bezeichnen, weil er den Apostroph falsch einsetzt, aber das ist nicht persönlich, sondern allgemein gemeint. Und man kann das ja leicht ändern, diese Gruppenzugehörigkeit. 8)

@Wolfgang: "Dem Tom sein Auto."
Herzlich,
Tom
Leon
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 118
Registriert: Mi, 28. Nov 2007 12:48
Wohnort: Wien
Hat sich bedankt: 5 Mal
Kontaktdaten:

Re: Anzahl logischer CPU's > 32

Beitrag von Leon »

Tom hat geschrieben: Do, 20. Aug 2020 11:58 Und wenn ich von jemandem eine Mail oder ein Schreiben erhalte, in dem von "Info's" die Rede ist, verringern sich dessen Chancen, mich mit seiner Botschaft zu erreichen, um Fensterkreuz mal Pi 80 Prozent (aber eher mehr als weniger).
Mir geht´s auch so, wenn ich Mails bekomme, in denen von "Standarts" die Rede ist. Ich habe keine Ahnung, wieso immer öfter die Unsitte, "Standart" statt "Standard" zu verwenden, kommt, aber es nervt... :banghead:
Gruß aus Wien
Leon
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von Tom »

@Leon: :badgrin:

Und ich habe schon von innen gegen die Windschutzscheibe gekotzt, weil im Radio ein Spot kam, bei dem eine URL mit Minus(zeichen) genannt wurde: "abi-minus-berlin-de-eh". Ich weiß nicht, was bei der Literalsubstraktion herauskäme, aber ein Minus(zeichen) ist kein Bindestrich, das Substantiv namens "Minus" bezeichnet einen negativen Saldo. Und die halbe Mikrosekunde mehr Zeit für das zutreffende Wörtchen "Bindestrich" muss eigentlich verfügbar sein.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Anzahl logischer CPUs > 32

Beitrag von brandelh »

der CHR() Wert von einem MINUS (das gibt es im ASCII 7 Bit) ist aber anders, als der vom Bindestrich, den es tatsächlich bestenfalls im 8 bit ASCII oder Ansi gibt.
Somit wäre es falsch, die Adresse mit Bindestrich zu nennen ... man sollte schon bei den Fakten bleiben :badgrin:

PS: Ich muss viele Texte aus unterschiedlichen Quellen verarbeiten, dort habe ich große Probleme mit manuellen Trennungen, die nun im Text falsch bleiben, je nach Anwendung ist es ein anderes Zeichen, da ist das Suchen mühsam, mit immer müder werdenden Augen.
Gruß
Hubert
Antworten