Avatar uživatele
Josif

Jak je to s jádry v procesoru?

Někdo mi tvrdil, že když mám více jádrový procesor, tak každá aplikace využívá jedno jádro, a tak že jsou osmi jádra při používání výkonnější než čtyřjádra.
jak to je?

Uzamčená otázka

ohodnoťte nejlepší odpověď symbolem palce

Zajímavá 0 před 3541 dny Sledovat Nahlásit



Nejlepší odpověď
Avatar uživatele
gecco

Odpoveď byla označena jako užitečná

…„každá aplikace využívá jedno jádro“…
Mno – to není pravda, ale, řekněme, jako zjednodušené vysvětlení by to mohlo stačit…
…„a tak že jsou osmi jádra při používání výkonnější než čtyřjádra“…
Jistě (pokud jsou zbylé parametry procesoru stejné).
Ale ani toto není tak jednoduché – OS a i samotné aplikace musí být na takovéto procesory naprogramované (pokud budeš mít např. OS, který neumí využít více, než jedno jádro, bude makat jedno – a zbytek bude ´spát´).
😉

1 NominaceKdo udělil odpovědi nominaci?Josif Nahlásit

Další odpovědi
Avatar uživatele
mosoj

Ono to tak nějak je, ale aby to platilo na 100% musí být aplikace pro vícejádrový procesor napsaná.

0 Nominace Nahlásit


Avatar uživatele
cochee

K těm osmijádrům: to jsou procesory od AMD, intel osmijádra nemá v nabídce. AMD a intel mají ale jinak navrženou architekturu a jedno core (jádro) u AMD není totéž jako u intelu, například u AMD mají dvě jádra společnou cache a FPU (mimo jiné) a i další omezení, takže se rozhodně nedá jednoznačně porovnávat počet jader u konkurenčních procesorů. Navíc AMD je za intelem o generaci pozadu, co se týká výrobního procesu: AMD stále 32 nm, intel 22 nm proces (to je tloušťka vodivých drah na čipu), takže AMD více „žerou“ a hřejí. Pro využití více jader musí být samozřejmě optimalizována aplikace, ale nejlépe by bylo i optimalizování samotného operačního systému; troufám si tvrdit, že ještě i v současnosti mají v tomto navrch operační systémy na bázi GNU/Linux nad Windowsy. Není-li totiž na vícejádro optimalizována aplikace, dokáže toto do jisté míry dirigovat operační systém.

0 Nominace Nahlásit


Diskuze k otázce
Avatar uživatele
Magix.cz

A já si myslel, že prográmky sami používají jádra procesoru stylem "tohle jádro není vytíženo, tak si tam něco spočítám. To ne ?

před 3541 dny Odpovědět Nahlásit
Avatar uživatele
Dochy

standardně jsou programy psány stylem: vezmu cislo A, k tomu prictu cislo B ulozim to jako cislo C, potom vezmu cislo D prictu cislo E a ulozim jako F.
Standardně zde není nikdo, kdo by rozhodl, že druhý výpočet se může dělat zároveň s prvním. Protože pokud by tam byla instrukce E=C, pak je třeba s druhým výpočtem počkat…

Pouze pokud programátor ví, že tyto výpočty se neovlivní, může napsat něco ve smyslu:
spusť výpočet 1 (a nečekej na dokončení), spusť výpočet 2(a nečekej na dokončení)
počkej na dokončení výpočtů…

Definice vypoctu 1: C=A+B
Definice vypoctu 2: F=D+E
… ted OS může OS poslat každý z výpočtů na jiné jádro.
Tohle má samozřejmě smysl pro větší úlohy (místo toho primitivního sčítání tam může být klidně operace pro zpracování fotografie)

Pro jednoduché úlohy jako je třeba jen to sčítání se o to zpravidla pokouší samo jádro procesoru (platí pro současné CPU), který načítá frontu instrukcí předem a upravuje jejich pořadí a rozdělení na vlákna – ten mechanismus ale nevyužije druhé jádro procesoru, může využít třeba druhou matematickou jednotku uvnitř jádra…

před 3541 dny Odpovědět Nahlásit
Avatar uživatele
Magix.cz

Dík za odpověď, Dochy.

před 3540 dny Odpovědět Nahlásit
Avatar uživatele
Lamalam

Tak to nefunguje. Program i OS musí být napsaný tak, aby více jader mohl využít.

před 3541 dny Odpovědět Nahlásit
Avatar uživatele
gecco

😉

před 3541 dny Odpovědět Nahlásit
Nový příspěvek