Fredagspanelen 104: Steam Machines, Broadwell-E får tio kärnor och Fallout 4

Permalänk

HURRA!!!
Snälla säg inte att det bara e jag som är helt lyrisk över WCIII?! Blir nog inge festande i sommar, Legacy of the void, WoW expansion, W C I I I ! ! !!!!!!!!! Barndommen! Länge leve Blizzard, att de köpte Candy Crush känns både kul och konstigt på något underligt vis....

Visa signatur

| MB: ASRock Extreme 9 | CPU: i7-4790K | CPU-Kylare: Coolermaser Nepton 240M | GPU: SLI Gigabyte GTX 970 G1 Gaming 3,5GB | PSU: Corsair RM1000 80+ Gold Certified | RAM: Corsair Vengeance 16GB 2x8GB 1600MHz | Lagring: Samsung 850 EVO 500GB | Chassi: BitFenix Colossus Window Blue | Skärmar: 3st VG248QE (144Hz), Samsung 42 Tum LED | Mus: Corsair RGB M65 | Tanjentbord: Corsair RGB K70 |

Permalänk
Inaktiv

De hintade lite lurt om att det är inte är slut på gradikkortsläpp. Jag tror de har ett AMD Radeon R9 380X den fulländade Tonga XT i byxbrallorna

Skickades från m.sweclockers.com

Permalänk
Inofficiell ambassadör

En av de mest intressanta avsnittet på länge! Bra jobbat grabbar!

Visa signatur

Mobo Aorus B550 Pro V2 CPU Ryzen 5600X RAM Corsair Vengance 16GB @ 36000 MHZ
GPU MSI GTX 1080 ti Gaming X Skärm Acer X34A

Permalänk
Medlem
Skrivet av Xyborg:

En av de mest intressanta avsnittet på länge! Bra jobbat grabbar!

Ja väldigt bra jobbat, som alltid!

Sen vad som blir intressant personligt, tror jag går hand i hand i själva nyhetsflödet.

Har jag följt nyhetsflödet på Swec, varje dag, så är ju faktiskt fredagspanelen en resumé av det jag läst tidigare.

Har jag missat några dagars nyheter, så blir ju resumén en av de mest intressanta avsnittet på länge!

Men även om man läst allt, så är det helskönt att se pågarna Och man måste bara se det!

Själva poängen jag menar: Varför inte ibland spara en nyhet till panelen?

Ni sitter på en massa info som ni får först, varför inte en liten teaser ?

Och sen, Boom, så är det!
Boom, detta skall komma!

Det hade varit nått? eller

Visa signatur

Pc 1--> [AsRock DualSata2][AMD4600+X2][7800GT] [Intel SSD X-25 80GB G2][1TB F3][750GB IDE][4GB XMSCorsiar]Pc 2--> [Asus Crosshair] [AMD 4800+X2] [2st 8800GT i SLI] [RAID 0 2x250GB] [6GB XMSCorsair] [Corsair HX750]Pc 3-->[HP Microserver 12TB]Pc 4--> AsRock P67 Extreme 4,i7 2600K @ 4.0 GHz,830 256GB,16GB 1600MHz, R9 290X Foto [Nikon D7000][70-300/35 1,8/18-55 [Skärmar=24",24",24" Eyefinity]

Permalänk
Medlem
Skrivet av Zaltrip:

Min fråga är om det sista du skriver att om man har lediga kärnor så kan flera processer köras parallellt. Kan man köra flera olika processer parallellt på flera kärnor? Av vad jag funnit så pratar man bara om trådar som kör parallellt, det jag tänker mig då är att CPUn väljer en process som ska köras och alla dess trådar kommer då in i processorn och körs parallellt, eller är det så att CPUn fyller kärnorna med en process och sedan om den ser att det finns t ex två kärnor som inte gör något så fyller den dessa med en annan process trådar?

Detta är svar i lekmannatermer och helt från minnet utifrån min egen kunskapsnivå. Ta det med en nypa salt och läs officiell dokumentation om ämnet om du vill ha exakt fakta.
Till andra så uppskattar jag korrigeringar såvida dom inte är "lol du är dum".

Generellt sett så sköter ditt OS denna biten. Varje tråd står i kö för att få exekvera en viss sekvens på processorn.
En sekvens (funktion, kod) kan vara t.ex:

  1. Ta argumenten A, B, C, D och E. Lagra dom i register (32 eller 64 bitars minnesplatser som ligger så nära kärnan som möjligt) för bearbetning.

  2. Plussa A och B och spara resultatet i register X.

  3. Multiplicera C med X och spara i register Y.

  4. Dividera Y med D och spara i register A.

  5. Hoppa till steg 2 så länge som register A är mindre än register E.

  6. Returnera värdet av register A till anroparen.

Denna kan alltså köras ett antal gånger beroende på argumenten givna.
Ponera att du kör denna sekvensen med argumenten 1, 2, 4, 2, 2^32, då loopar den 29 gånger och ger resultatet 1 342 177 276.

Kanske just denna funktionen anropas ett antal gånger för att ge svaren på många olika frågeställningar som programmeraren har.
Men vid någon punkt är det brukligt att också fråga OS om det finns någonting som OS vill meddela programmet. Som t.ex att användaren trycker på ESC och sådant läggs i en kö med meddelanden som programmet läser av med jämna mellanrum för att hantera användarens input.

Sist men inte minst, många program passar även på att säga "jag har gjort en sekvens beräkningar och vill nu låta OS sköta sina rutiner så som att rita upp resultat och progress på skärmen samt låta andra applikationer dra nytta av processorn.
Detta är extra viktigt om det bara finns en kärna, annars hade ju ett program låst upp datorn och inga andra program hade kunnat utföra någonting under tiden.

Så även om du har 4 kärnor och kör 4 av dessa processer samtidigt på vardera kärna betyder ju inte det att du inte kan göra någonting annat under tiden eftersom programmet är snällt nog att yielda (alltså, ge andra program en chans att köra sin kod) vilket innebär att programmet i fråga inte tar all processorkraft i anspråk för sig självt. Även om det är rent teoretiskt sett är möjligt att inte yielda med undantag av att ditt OS fortfarande alltid lyssnar på en viss tangentbordskombination (om inte denna blivit avaktiverad) så som CTRL+ALT+DEL, CTRL+SHIFT+ESC eller CTRL+C etc etc.

...

Så vad innebär detta för dig om du har 4 kärnor istället för endast en kärna?
Ja, som tidigare nämnt kan du köra samma process i 4 exemplar parallellt med varandra utan att dom stör ut varandra.
Hade du kört 4 likadana processer på samma kärna hade det tagit 4 gånger så lång tid för samtliga 4 att ge dig resultaten.

Detta gäller för samtliga applikationer, har du en ledig kärna så kan denna applikation använda den lediga kärnan och det fungerar helt sonika såhär...

- Program A: Lägger sig i exekveringskön.
- Program B: Lägger sig i exekveringskön.
- Program C: Lägger sig i exekveringskön.
OS: Program A, varsegod att exekvera på kärna 0.
OS: Program B, varsegod att exekvera på kärna 1.
OS: Program C, varsegod att exekvera på kärna 2.
OS: Lyssnar på input.
OS: Exekverar egna rutiner på kärna 3.
OS: Lyssnar på input.
OS: Exekverar egna rutiner på kärna 3.
OS: Exekverar egna rutiner på kärnor 0 och 3. (två saker alltså)
- Program A: Lägger sig i exekveringskön.
OS: Är klar med kärna 3.
OS: Program A, varsegod att exekvera på kärna 3.
- Program C: Lägger sig i exekveringskön.
OS: Är klar med kärna 0.
OS: Program C, varsegod att exekvera på kärna 0.
OS: Lyssnar på input.
OS: Exekverar egna rutiner på kärna 2.

...

Detta är alltså anledningen till att vissa program i första hand alltid använder kärna 0 men likaväl kan använda kärnor 1, 2 och 3.
Dessutom kan ett program säga till OS "jag MÅSTE använda ENDAST kärna 3" varpå OS endast tilldelar programmet tid på kärna 3 och aldrig på dom andra kärnorna.

Utöver detta kan ett program säga "Jag är viktigare och går före i kön". Det finns egentligen en väldans massa (2^32) prioritetsnivåer men generellt sätt används följande:

4: Vila
6: Under normalt
8: Normalt
10: Över normalt
13: Hög
24: Realtid

Så ett program som har prioritet 10 går alltså före i kön framför ett program med prioritet 8.
Och sätter man prioritet 24 (Realtid) så förväntar sig programmet att den ALLTID skall gå före i kön och kommer med hög trolighet att se till att en kärna är konstant i 100% belastning.

Man kan alltså (generellt sett) prioritera ut alla andra program från att få köra någon kod på processorn om så önskas. Men detta innebär att tillochmed ditt OS inte har tid (eller lov) att köra vissa sekvenser vilket inte är önskvärt av många anledningar. Som t.ex att ditt program kanske ber OS göra något men det aldrig blir utfört för att ditt program sedan tar upp alla kärnor med andra trådar och därav kan aldrig OS hoppa in och slutföra uppgiften som den blivit tillbedd.

.....

Enklast sett, se en flerkärning processor som en motorväg med 2, 4, 6 osv filer. Snabbare bilar kör i yttre filen (enkla uträkningar) och långsamma fordon som t.ex tunga lastbilar körs i inre filen. (tunga beräkningar)
Om du benämner filen längst till höger till kärna 0 och omkörnings filen längst till vänster till kärna 1, 3, 5 etc så är det i mångt och mycket samma fördelning.

Tunga program brukar mestadels ta upp första kärnan eftersom dessa fordon också hänger kvar längre i den kärnan.

Sedan att OS kan bestämma att en lastbil skall köras på kärna 1, 2 eller 3 en stund har att göra med att inte belasta samma kärna konstant utan istället slita lika mycket på alla kärnor.

Hoppas det svarar din fråga. Det var kul att skriva svaret i alla fall.

Visa signatur

Chassi: Svart, PSU: 230 volt, Moderkort: Stort, CPU: Med fläkt, Minne: Tappat, GPU: Klarar MsPaint jättebra, Hårddiskar: Stor och liten, Mus: Med rullhjul, Tangentbord: Svenskt, Skärm: Platt