Multi-Core GHz Threads Intel Ultra?

nein
IO und Kontextwechsel fressen auch gut Zeit
Voll ausgerezitwird das nur, wenn eine CPU nur einen Typ aufgaben bekommt, nur die Elemente zur Bewaeltigung dieser verbaut hat und konstant auf allen Kernen nur mit dieser Aufgabe ausgelastet wird
 
  • Gefällt mir
Reaktionen: ILoveShooter132 und Clark79
Mirlo schrieb:
Ja, da geht es dann ins Detail. Aber grob wäre dem wohl schon so, dass ein 4-Core mit 3 GHz insgesamt 12 GHz zur Arbeitserledigung hat.
Als Vereinfachung, ja. Setzt aber voraus, dass die Cores auch alle gleichzeitig ausgelastet werden können.
 
OK. Bei der Bearbeitung einer Aufgabe ist es schwierig diese Aufzuteilen. Aber bei Batch sieht es anders aus. Simples Beispiel: Ein Grafikprogramm im Batch-Modus. Es sollen 100 Fotos neu bearbeitet werden (zB Resize). Das Grafik-Programm kann aber kein Multi-Core. Auf einem (alten) 4-Core nutzt das Grafikprogramm nur 1 Core. Die Aufgaben werden eine nach der anderen und immer nur auf 1 Core abgearbeitet. Die angezeigte CPU-Last ist maximal 25 %. Hier ist die Frage, ob das bei den Intel Core Ultra anders ist und die Aufgaben auf die Cores aufgeteilt werden, so dass bestenfalls 14 parallel erledigt werden können, oder weiterhin nur 1 Core genutzt wird?
 
Mirlo schrieb:
Hier ist die Frage, ob das bei den Intel Core Ultra anders ist und die Aufgaben auf die Cores aufgeteilt werden
Nein, das wird sich ohne Änderung am Software Verhalten (z.B. Parallelisierung des Batch-Prozesses) nicht ändern.

Mich würde auch immer noch interessieren wo steht, dass die Core Ultras hier überhaupt irgendwas gesondert anders machen als die vorherigen Generationen. Außer ggf. die zuvor (#15) von mir erwähnten Dinge wie Thread Director.
 
Mirlo schrieb:
Auf was möchtest du denn hinaus?

Die Leistung einer CPU wird gemessen.
Diese Messungen kannst du dir ansehen.
Unterteilt wird meistens in Games und Anwendungen.
Beides ist aber nochmal separat zu betrachten, da nicht alle Games und Anwendungen gleich gut mit der Anzahl der Kerne skalieren..

Du kannst dir zusammenrechnen was du magst, das macht eine CPU nicht schneller..
 
  • Gefällt mir
Reaktionen: ILoveShooter132, Alexander2 und Clark79
Mirlo schrieb:
Ja, da geht es dann ins Detail
Ist aber leider ein Wesentliches und nicht zu vernachlässigen. Schau Dir mal Gaming Benchmarks an. Da siehst Du exemplarisch wie gut die mit mehr Kernen skaliert. Wird auch meist bei Tests zu produktiver Software eingegangen.

Kann Dir nur noch mal den Post #19 von @madmax2010 empfehlen. Und viele, viele andere hier in dem Thread ...

Schönen Sonntag noch!
 
Mirlo schrieb:
Simples Beispiel: Ein Grafikprogramm im Batch-Modus. Es sollen 100 Fotos neu bearbeitet werden (zB Resize). Das Grafik-Programm kann aber kein Multi-Core. Auf einem (alten) 4-Core nutzt das Grafikprogramm nur 1 Core. Die Aufgaben werden eine nach der anderen und immer nur auf 1 Core abgearbeitet. Die angezeigte CPU-Last ist maximal 25 %. Hier ist die Frage, ob das bei den Intel Core Ultra anders ist
nein, das bleibt so.
Aber: Bildbearbeitung kann, falls die passenden Compilerflags gesetzt wurden stark von AVX erweiterungen profitieren. Was da gerechnet wird siehst du nicht in der Auslastung
 
ILoveShooter132 schrieb:
Wenn ich drei Autos mit je 75PS habe, habe ich drei Autos mit je 75PS. Da kommt doch auch keiner auf die Ideen da irgendwas zusammenzurechnen.
Tja, weil das zu kurz gedacht ist und der Vergleich unangemessen ist, weil 1 Auto meist nur 1 Motor hat. Nehme einen Sternmotor bei einem Propellerflugzeug, das 8 Motoren mit je 75 PS hat.
Ergänzung ()

madmax2010 schrieb:
nein, das bleibt so.
wow, das ist milde gesagt schwach. OK, dass Progs nur Single-Core können auch, aber das ist bei den von nur einer Person programmierten Programmen meist eine Frage der Zeit und des Könnens der Prgorammierer. 13 Cores im Leerlauf und das bei Batch ist heftig.
 
Zuletzt bearbeitet:
Mirlo schrieb:
13 Cores im Leerlauf und das bei Batch ist heftig.
Bash:
#!/bin/bash

INPUT_DIR="$1"
OUTPUT_DIR="$2"

if [ -z "$INPUT_DIR" ] || [ -z "$OUTPUT_DIR" ]; then
  echo "Usage: $0 input_directory output_directory"
  exit 1
fi

mkdir -p "$OUTPUT_DIR"

find "$INPUT_DIR" -type f \( -iname '*.jpg' -o -iname '*.jpeg' \) | parallel --bar '
  filename=$(basename {})
  convert {} -resize 800x600 "'"$OUTPUT_DIR"'"/"$filename"
  echo "Processed: {} -> "'"$OUTPUT_DIR"'"/"$filename""
'

echo "All images processed."

mal eben aus 2 anderen skripten zusammen geworfen, so wuerde ich das in bash "stumpf" parallelisieren, wenn das rechnende Programm nicht paralellisiert. GNU parallel hilft da sehr.

Mit windows habe ich weniger erfahrung.
Chatgpt übersetzt es so nach "Batch" und kurzes googlen sagt, dass das so parallel gehen sollte:

Bash:
@echo off
setlocal enabledelayedexpansion

:: Check for input arguments
if "%~1"=="" (
  echo Usage: %~nx0 input_directory output_directory
  goto :eof
)
if "%~2"=="" (
  echo Usage: %~nx0 input_directory output_directory
  goto :eof
)

set "INPUT_DIR=%~1"
set "OUTPUT_DIR=%~2"

:: Create output directory if it doesn't exist
if not exist "%OUTPUT_DIR%" (
  mkdir "%OUTPUT_DIR%"
)

echo Searching for JPEG images in %INPUT_DIR%...
set count=0

:: Process each JPG/JPEG file found
for %%F in ("%INPUT_DIR%\*.jpg" "%INPUT_DIR%\*.jpeg") do (
    if exist "%%F" (
        set /a count+=1
        :: Launch ImageMagick convert in parallel.
        :: Use /B to not open a new window.
        start "" /B convert "%%F" -resize 800x600 "%OUTPUT_DIR%\%%~nxF"
        echo Started processing: %%F
    )
)

if %count%==0 (
    echo No JPEG images found in %INPUT_DIR%.
    goto :eof
)

echo.
echo Started %count% processes. Waiting for all to finish...

:wait_loop
:: Pause briefly before checking again
timeout /t 2 /nobreak >nul

:: Check if any convert.exe processes are still running.
tasklist /fi "imagename eq convert.exe" | find /i "convert.exe" >nul
if %errorlevel%==0 goto wait_loop

echo All image processes have completed.
 
Mirlo schrieb:
Tja, weil das zu kurz gedacht ist und der Vergleich unangemessen ist, weil 1 Auto meist nur 1 Motor hat. Nehme einen Sternmotor bei einem Propellerflugzeug, das 8 Motoren mit je 75 PS hat.
Hilfe. Wo ist mein Alu Hut.?
Wiki Sternmotor
Ein Sternmotor hat keine 8 Motoren, wenn dann Zylinder. -> ein Motor (einreihig oder zweireihig)
Genau wie ein Automotor, von 1 bis 16 Zylinder haben kann. -> ein Motor (egal ob, 1, 2, 3; in Reihe 4; V4; V5; in Reihe 5; V6; in Reihe 6; V8; V12; V16; W16)
 
  • Gefällt mir
Reaktionen: ILoveShooter132 und BarBaer
Ganz kurz als Informatiker, weil es manche hier kompliziert machen. Ein Intel Core Ultra mit mehreren Kernen verhält sich NICHT anders als ein Intel 14900k oder ein 9950x mit mehreren Kernen. Das zeigt nicht nur die Logik dahinter, sondern auch jedes Benchmark Ergebnis. Wäre das anders, müsste der Intel Core Ultra ja mehrere hundert Prozent schneller sein als die anderen Prozessoren. Ist er aber nicht.

Programme die nur 1 Kern nutzen können (Singlecore-Benchmark), können auch weiterhin nur einen Kern nutzen. Programme die mehrere Kerne unterstützen, können auch weiterhin mehrere Kerne nutzen.

Der einzige Unterschied zwischen den CPUs ist der Scheduler. Dieser teilt von Programmen, die mehrere Kerne unterstützen, entsprechende Lasten den einzelnen Kernen zu.

Eine Aufrechnung von Kernen (4GHz + 4GHz = 8GHz) macht aber niemals Sinn, weil es so einfach nicht abläuft. Bei Singlecore bleibt es bei 1x 4GHz und bei Multicore wird entsprechend aufgeteilt. Heißt eine Aufgabe wird geteilt und wird dann auf z.B. 2 Kernen anstelle von einem Kern abgearbeitet. Je nachdem wie gut die Skalierung ist, kann man dann im Bestcase die doppelte Leistung haben, in der Realität ist es aber normal eher etwas weniger.
 
  • Gefällt mir
Reaktionen: ILoveShooter132 und BarBaer
Seit nicht mal ner Woche im Forum und versuchst hier den alten Hasen zu erklären, wie falsch sie liegen und dass du allein weißt wie die Leistung einer Multicore-CPU skaliert...^^

Mirlo schrieb:
Wieso? Ob man 1 Arbeiter oder 5 Arbeiter anstellt ist ein Unterschied. Zwar schafft je einer nicht mehr als alle je anderen einen, aber insgesamt mehr. Bei den Taktfrequenzen ist es in etwa gleich. Einer kann pro Minute 1 Schraube anziehen. 5 können in 1 Minute 5 Schrauben anziehen.

Du bringst doch selbst einen Vergleich mit echter Arbeit und Fertigung ein, dann ergänze ich den mal und weise dich auf Fließbänder hin:
Bei Programmen die nur einen einzelnen Kern verwenden stehen die Arbeiter alle hintereinander und können erst anfangen zu arbeiten wenn ihr Vorgänger seine Schraube angezogen hat. Wenn der trödelt werden alle danach ausgebremst.
Bei Programmen die mehrere Kerne verwenden hast du mehrere parallele Fließbänder und wenn ein Band stockt, dann geht es bei den anderen Fließbändern aber weiter.
So können mehrere parallele Fließbänder problemlos mehr Endprodukte fertigen, selbst wenn da weniger Arbeiter stehen.
Aber: Das bringt dir halt nichts, wenn du ein Einzelstück fertigen willst, das ist "singlethreaded"...

Mirlo schrieb:
Die Frage nach dem Intel® Core™ Ultra wurde nicht beantwortet.
Beispiel: Intel® Core™ Ultra 5 Prozessor 245K mit 14 Cores (8 Cores Grundtaktfrequenz 4,20 GHz und 6 Cores Turbo-Taktfrequenz 5,20 GHz).

Bei diesen Core Ultras wird angegeben, dass diese die zu erledigenden Aufgaben auf die Cores aufteilen.

1. Du fokussierst dich eh viel viel viel sehr sehr auf den Begriff Takt bzw. Gigahertz.
Viel wichtiger - schon seit Jahrzehnten! - sind die IPC, also wie viel Arbeit eine CPU pro Taktzyklus geleistet bekommt. Das ist spätestens seit dem AMD Athlon XP mit seiner Zahl im Titel, die ganz offensichtlich aber nicht offiziell darauf anspielte wie viel Leistung die CPU im Vergleich zu einem Pentium mit einer bestimmten Taktrate leistete - obwohl der Takt der Athlon XP niedriger war!
Später wechselte Intel dann von der Pentium 4 zu den Core-Prozessoren und dabei sank die Taktrate deutlich - aber die Leistung wuchs!
Dann kamen Mehrkernprozessoren weil es einfacher wurde für parallelisierbare Aufgaben mehr Kerne zu verbauen als die Taktrate weiter zu steigern und durch brute force mehr Leistung zu gewinnen.
Und nun gibt es eben auch noch Prozessoren mit CPU-Kernen die eine hohe IPC und häufig auch einen hohen Takt haben und die eine geringere IPC und geringeren Takt haben.

Aber:
2. Da kannst du nicht einfach irgendwelche Taktraten zusammenzählen!
Taktraten spielen absolut keine Rolle mehr, das ist eine Zahl die bei ansonsten grundlegend identischen Prozessoren die Leistung veranschaulicht, aber bei unterschiedlichen Prozessoren keine Aussagekraft hat.
Wichtig ist einfach nur die Leistung die am Ende "auf die Straße kommt", dafür gibt es wunderbare Benchmarks.

Für die Apple M4-Prozessoren hatte ich letztens mal überschlagen, dass soweit ich mich erinnere die Performance-Cores iirc viermal so viel Leistung bieten wie die Efficiency-Cores, d.h. es braucht vier von den "kleinen" Kernen um die Leistung eines "großen" Kerns zu ersetzen. Wie willst du da irgendwelche Gigahertzadditionen machen um die Leistung zu errechnen?
Wie funktioniert das dann da, wo das Programm nur von einem Kern profitiert?

Denn:
3. Ignorier doch das - wahrscheinlich von dir eh falsch verstandene - Marketing-Blabla von Intel!
Ich lehne mich mal aus dem Fenster und behaupte du hast eine Aussage wie "Die Programmlast wird von der Intel Core Ultra intelligent auf die verschiedenen Kerne der CPU verteilt" missverstanden und sie nicht als "Die CPU packt Aufgaben die viel Leistung erfordern auf die P-Cores und Krams der nebenbei laufen kann auf die E-Cores" gelesen sondern als "Ha, die CPU kann singlethreaded-Aufgaben auf mehrere Kerne verteilen!" gedeutet.
 
  • Gefällt mir
Reaktionen: Dieder87, ILoveShooter132, BarBaer und 2 andere
Mirlo schrieb:
Ja, da geht es dann ins Detail. Aber grob wäre dem wohl schon so, dass ein 4-Core mit 3 GHz insgesamt 12 GHz zur Arbeitserledigung hat.
Na an der stelle Trollst du aber nurnoch :D das hat ja nichts mehr mit verstehen wollen zu tun, wenn du alles bisherige jetzt mit dem "doch" ignorierst
Ergänzung ()

Mirlo schrieb:
Das Grafik-Programm kann aber kein Multi-Core
Zack, an der stelle ist egal welche CPU kommt. eine CPU ändert keinen Programmcode. Wenn eine Software nur einen Kern belasten kann, dann ist egal welche CPU daherkommt, das bleibt so.

Du brauchst für Belastung mehrerer Kerne Software/aufgaben, die das auch können.
 
  • Gefällt mir
Reaktionen: ILoveShooter132
Ggf. liegt auch ein Missverständnis vor (ich hänge mich mal an Intel für die Definitionen)
Die Taktfrequenz misst die Anzahl der Takte oder Zyklen, die von der CPU pro Sekunde durchgeführt werden in GHz (Gigahertz).[...]
In diesem Fall ist ein „Zyklus“ die Grundeinheit, mit der die Geschwindigkeit einer CPU gemessen wird. Mit jedem Zyklus öffnen und schließen sich Milliarden von Transistoren im Prozessor. Auf diese Weise führt die CPU die in den empfangenen Befehlen enthaltenen Berechnungen aus.[...]
Eine CPU mit einer Taktfrequenz von 3,2 GHz führt pro Sekunde 3,2 Milliarden Takte aus.
Man könnte also sagen: Eine vier Kern CPU mit 3,2 GHz kann 12,8 Milliarden Takte/Zyklen pro Sekunde ausführen, aber:
Manchmal werden mehrere Anweisungen in einem einzelnen Takt durchgeführt; in anderen Fällen könnte eine Anweisung über mehrere Takte hinweg ausgeführt werden.[...]Beispielsweise könnte eine CPU mit höherer Taktfrequenz von vor fünf Jahren von einer neuen CPU mit einer geringeren Taktfrequenz übertroffen werden, da die neuere Chiparchitektur die Anweisungen effizienter behandelt.
Das wars aber auch. Nur weil die CPU in Summe so und so viel Milliarden Zyklen pro Sekunde kann, heißt das nicht nicht, dass die Software diese einfach so komplett nutzen kann. Mehr oder weniger passende Vergleiche und wurden hier ja schon gepostet.
 
Nilson schrieb:
Ggf. liegt auch ein Missverständnis vor (ich hänge mich mal an Intel für die Definitionen)

Man könnte also sagen: Eine vier Kern CPU mit 3,2 GHz kann 12,8 Milliarden Takte/Zyklen pro Sekunde ausführen, aber:

Und selbst das wäre nur ein theoretischer Wert, wenn kein TDP-Limit irgendwann rein knallt. Gerade bei 20 Kernen+ oder gar bei 100 Kernen+ im Server-Segment, limitiert ja immer die TDP, bevor jeder Kern bei 100% wäre.
 
  • Gefällt mir
Reaktionen: iSight2TheBlind
Mirlo schrieb:
Tja, weil das zu kurz gedacht ist und der Vergleich unangemessen ist, weil 1 Auto meist nur 1 Motor hat. Nehme einen Sternmotor bei einem Propellerflugzeug, das 8 Motoren mit je 75 PS hat.
Diese Analogien sind nur Hilfestellungen zum verstehen, wenn du die noch auseinander nimmst.. und auch noch falsch am ende.

Motor vs Zylinder.
 
Sternmotor, ja, sorry, hab das auf die Schnelle verwechselt. Schlagt mich halt nicht gleich tot wegen so einer Kleinigkeit. Zylinder anstatt Motoren. Wobei es da auch die Versionen mit mehreren Sternmotoren hintereinander gibt. Also es war gemeint Zylinder = Core. Aber egal jetzt. Fließband passt besser.

@madmax2010 , Batch in einem Prog, nicht ein eigenes #bash. Aber ja, das wäre so ein Beispiel. Kenne das nur von PHP Multithreading https://www.php.net/manual/en/intro.pthreads.php (aber, wie zu sehen, auch da geändert in "parralel"). Bei PHP lief das so, das Aufgaben einer Batch-Liste parallel abgearbeitet wurden. Also nicht typisch PHP eins nach dem anderen (also warten, bis eine Aufgabe erledigt ist und dann die nächste), sondern beispielsweise 10 auf einmal. Das ist ein immenser Unterschied. 1.000 Aufgaben in 10 anstatt 100 Minuten.

Also ergibt eine hohe Anzahl an (bis zu 24) Cores wenig Sinn?
iSight2TheBlind schrieb:
"Ha, die CPU kann singlethreaded-Aufgaben auf mehrere Kerne verteilen!" gedeutet.
Das wurde so irgendwo kommuniziert und von mir angezweifelt, deswegen dieses Thema mit den Fragen hier.

Also ist da viel Hokuspokus und nichts dahinter? Single-Core-Progs haben weiterhin wie bisher keinen Vorteil bei Multi-Cores? Leider gibt es noch einige und sehr gute Single-Core Progs. Das ist dann schon sehr heftig, wenn die nur 1 von 24 nutzen. Irgendwie auch absurd.

Aber zurück zur Frage der Addierung: Also kann ein 16 Core 3GHz "annähernd" 4x soviel wie ein 4 Core 3GHz (bei Multi-Core Progs im Batch)?
4 Core = Batch: 4 Befehle parallel
16 Core = Batch: 16 Befehle parallel
also 4x schneller?
 
Mirlo schrieb:
Rein rechnerisch müssten das insgesamt: 33,6 + 31,2 = 64,8 GHz sein. Meine Frage ist, ob dem so ist?
Nein. Eigentlich hättest du dir die Frage ganz simpel selbst beantworten können, nämlich:

Stell dir mal vor, du hast ein Auto mit insgesamt 4 Motoren. Jeder Motor bietet eine Höchstgeschwindigkeit von 100 km/h.

Fährt dein Auto dann 400 km/h?

Natürlich nicht.
 
Zurück
Oben