Seite 1 von 2

Anzahl logischer CPUs > 32

Verfasst: Mi, 19. Aug 2020 16:52
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 ?

Re: Anzahl logischer CPU's > 32

Verfasst: Mi, 19. Aug 2020 17:09
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

Re: Anzahl logischer CPU's > 32

Verfasst: Mi, 19. Aug 2020 17:17
von BJelinek
Hallo Hans-Peter,

ja der Befehl geht.
DeviceID NumberOfCores NumberOfLogicalProcessors
CPU0 10 20
CPU1 10 20

Re: Anzahl logischer CPU's > 32

Verfasst: Mi, 19. Aug 2020 17:20
von Tom
"_sysSetCpu" kann mit mehr als 32 Prozessoren einfach nicht umgehen.

Re: Anzahl logischer CPU's > 32

Verfasst: Mi, 19. Aug 2020 17:57
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

Re: Anzahl logischer CPU's > 32

Verfasst: Mi, 19. Aug 2020 21:13
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 ...

Re: Anzahl logischer CPU's > 32

Verfasst: Mi, 19. Aug 2020 21:22
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.

Re: Anzahl logischer CPU's > 32

Verfasst: Do, 20. Aug 2020 1:48
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) 263-mal heruntergeladen

Re: Anzahl logischer CPU's > 32

Verfasst: Do, 20. Aug 2020 11:31
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:

Re: Anzahl logischer CPU's > 32

Verfasst: Do, 20. Aug 2020 11:45
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.

Re: Anzahl logischer CPU's > 32

Verfasst: Do, 20. Aug 2020 11:54
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

Re: Anzahl logischer CPU's > 32

Verfasst: Do, 20. Aug 2020 11:58
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).

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 12:06
von BJelinek
Hallo Tom,

Danke für die Info.

Wieder was gelernt.

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 12:10
von Tom
Hallo, Bernd.

Gerne! :)

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 12:26
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

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 12:33
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

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 12:50
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

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 13:17
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 ;-)

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 13:23
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:

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 13:25
von Wolfgang Ciriack
Heißt es da nicht auch "Tom sein Auto" ? :D

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 13:30
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)

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 13:42
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."

Re: Anzahl logischer CPU's > 32

Verfasst: Do, 20. Aug 2020 14:06
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:

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 14:16
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.

Re: Anzahl logischer CPUs > 32

Verfasst: Do, 20. Aug 2020 14:33
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.