Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 25 reacties
Bron: The Inquirer

Bij The Inquirer heeft men wat meer details gepubliceerd omtrent Suns Niagara-processor. Ze hadden namelijk een gesprek met Suns vice president Marc Tremblay over de vernieuwingen en wijzigingen in deze chips. De eerste chip in deze familie zal over acht cores beschikken, waarbij elke core vier threads parallel kan uitvoeren. Dit brengt het totaal aantal parallelle threads op tweeŽndertig. Bovendien kan de gebruiker zelf aangeven welke cores voor welke doeleinden gebruikt moeten worden, zodat men zelf de controle heeft over welke resources bijvoorbeeld door de webserver of door de databaseserver gebruikt kunnen worden.

Sun Niagara

Elke core beschikt over 24K L1-cache, die op zijn beurt opgesplitst is in 16K voor instructies en de resterende 8K voor data. In totaal beschikt dit systeem over 3MB L2-cache, wat neerkomt op ongeveer 400K per core, maar aangezien deze cache gedeeld wordt kan men hieruit geen rechtstreekse conclusies trekken wat betreft de prestaties. Deze worden namelijk sterk beÔnvloed door het threaded systeem. Wel vermeldt The Inquirer nog dat software tegenwoordig geschreven wordt met bepaalde beperkingen omtrent het doorgeven van data tussen threads in het achterhoofd, maar dat er met de Niagara-chips zo goed als geen prestatieverlies optreedt bij het doorgeven van data tussen vier threads en slechts een miniem verlies bij het doorgeven van data tussen verschillende cores.

Tot slot wordt nog een blik geworpen op het resourcegebruik. Bij traditionele processors zal men vaak zien dat het cpu-gebruik gedurende lange tijd heel laag is, om vervolgens plotseling de hoogte in te schieten richting honderd procent en daarna terug af te dalen naar een bijna idle-toestand. De Niagara zal echter proberen om steeds zoveel mogelijk resources in gebruik te hebben zodat er geen cpu-tijd verspild wordt. De piekbelasting zal dan ook zo dicht mogelijk bij de gemiddelde belasting gehouden worden. Dit betekent dat de Niagara eigenlijk net het tegengestelde van de Pentium 4 is. Bij deze Pentium-processors is de enige manier om prestaties te verhogen de kloksnelheid op te drijven. Niagara-chips zijn dan wel trager per thread, maar doordat ze veel 'breder' zijn maken ze dit ruimschoots goed, aldus The Inquirer en Sun.

De plek van de Niagara-chip in de rest van Sun familie
Moderatie-faq Wijzig weergave

Reacties (25)

Dit ziet er zeker niet verkeerd uit, zou het een commerciele processor worden voor de mainstream?
mainstream servers, ja :)
Ga er maa niet vanuit dat ze een desktop-omgeving in gedachte hadden tijdens het ontwerpen. Bijvoorbeeld alleen al vanwege de architectuur (SPARC), en bijvoorbeeld de afhankelijkheid van het OS om deze CPU goed te laten functioneren wat betreft thread-afhandeling e.d.
Voorlopig zal het alleen Solaris zijn denk ik wat erop zal draaien en later mischien wel een implementatie in Linux of *BSD maar verder dan dat zal het mijns inziens niet (hoeven) gaan
Even een mythe wegnemen:

SPARC is niet equivalent met server.

Hier staan talloze Sun SPARC workstations, desktops dus (ok, het zijn wel grote bakken die onder het bureau staan, maar dat terzijde ;) ).

De Niagara lijkt inderdaad wel meer gericht op servertoepassingen.
Lijkt ja. Natuurlijk heb je op de desktop tegenwoordig ook vele processen en threads tegelijk lopen dus mischien dat het nog niets eens zo gek zou staan op de desktop.
zoals je ook al kan zien aan de grafiek is deze cpu niet bedoelt voor desktop gebruik, waar je vaak veel power nodig hebt voor 1 enkel process, zoals bij het spelen van games of kijken naar een dvdtje. deze cpu is bedoelt voor server bakkies die deamons draaien die continu eigenlijk hetzelfde doen (http, email, sql, etc...)
Het maakt niet uit hoeveel processen er draaien.
Het gaat er om hoeveel threads er draaien, die parallel verwerkt kunnen worden.

In die zin kan zo'n processor ook heel nuttig zijn voor spellen.
Helaas is in spellen vrijwel altijd maar 1 thread actief. (Maar dat komt niet omdat het in spellen niet nuttig zou zijn, maar dat spel programmeurs er geen ervaring mee hebben, en het dus niet gebruiken)

Kijk je bv naar een Exchange server, dan is er maar '1 proces dat veel cpu tijd vergt. Maar dat ene proces heeft wel 250 threads, zodat het uitstekend schaalt als je meerdere processors gebruikt.

OVerigens is het grafiekje uitermate dubieus, want wat staat er nou eigenlijk uitgezet op die assen? :)
Dat was nou precies direct de vraag die in mijn kop op komt. Wat levert het op om op de y-as de many thread en op de x-as de single thread performance op te maken? Moet ik hier uit lezen dat een Xeon 1 thread heel snel afhandeld, maar meerdere threads minder snel? En wat geeft bijvoorbeeld het vlekje van niagare familys aan? Onder die vlek: Bestaat er daar helemaal geen performance? Ikkie niet snap..
Helaas is in spellen vrijwel altijd maar 1 thread actief. (Maar dat komt niet omdat het in spellen niet nuttig zou zijn, maar dat spel programmeurs er geen ervaring mee hebben, en het dus niet gebruiken)
Ik denk niet dat een team van programmeurs dat een spel ontwikkeld niet weet hoe multi-threading werkt. Ze zullen eerder andere redenen hebben. x86 procs voor de desktop (p4,athlon) ondersteunen maar 1 thread tegelijk. Waarom rekening houden met meerdere threads? Je code wordt er meestal niet sneller of beter op. Het is pas sinds dat er hyperthreading op de p4 zit dat het echt prestatie verbeteringen gaat geven, en dat nog niet eens in alle gevallen.

Tegen de tijd dat multi core procs mainstream zijn zul je ook zien dat game engine's meer gebruik maken van multi threading.
Helaas is het nivo van spel-programmeurs niet zo hoog als je wel zou denken.

Zelf heb ik ooit wat geprogrammeerd in muds. (zal de meeste hier wel niets meer zeggen, maar dat waren mmorpg's in tekst mode)
Dat was helemaal geen bijzondere code en vrij amateuritisch. Maar ik zie met grote regelmatig bugs in spellen die bij muds als echte beginnersfouten werden gezien die je na een maand echt niet meer maakte. En dat zie je dan bij ervaren spel-programmeurs die al 10 jaren succesvolle spellen maken.

Kijk naar AI code. Alle spellen zitten ontzettend te cheaten, omdat een goede AI zo moeilijk zou zijn.
Maar er is 1 spel op de markt met een zeer sterke AI, die niet cheat. (Galciv)
En dat komt helemaal niet van een ervaren programmeur, maar van een electrotechnicus die vanuit een hobby een spel had gemaakt.

IMO zijn spel programmeurs wat dat betreft erg conservatief, en daarom ook niet geneigd iets nieuws als multithreading aan te leren.

Wat betreft meerdere threads op 1 processor.
Ik heb verderop in de thread in mijn post van 16:29 al aangegeven waarom multithreading ook met 1 processor snelheidswinst geeft.
De Niagara zal echter proberen om steeds zoveel mogelijk resources in gebruik te hebben zodat er geen cpu-tijd verspild wordt. De piekbelasting zal dan ook zo dicht mogelijk bij de gemiddelde belasting gehouden worden.
Is dit niet een taak van het OS en daarbij ook nog afhankelijk van de taken die het systeem heeft? :?
Wat betreft dat zoveel mogelijk in gebruik houden van resources heeft The Inquirer gewoon niet begrepen wat daarmee bedoeld wordt.

Inderdaad is het afhankelijk van het OS, maar nog meer van het aantal threads in de processen op het systeem.

Je moet dan even bekijken wat het doel is van multithreaded programmeren. Het doel is je CPU continu op 100% te hebben staan.

Het probleem van een single-threaded applicatie met een CPU die 1 thread tegelijkertijd kan verwerken, is dat op een gegeven moment die ene thread staat te wachten op I/O. En aangezien I/O zo traag is, staat die thread zelfs heel lang te wachten op I/O. En al die tijd staat je cpu idle. (Zie je bv als die ene thread continu op je disk bezig is, dan doet je cpu bijna niets.

Heb je echter een multi-threaded applicatie, en een thread zit te wachten op I/O, dan kan je ondertussen met een andere thread bezig gaan. Op die manier voorkom je dus dat je cpu idle gaat staan, omdat ie op 1 thread wacht.
Dat kan je doen net zolang, totdat alle threads zitten te wachten op I/O, of op de resultaten van andere threads.

Om deze reden is multithread programmeren niet alleen gunstig voor multi-processor systemen, maar ook voor single-processor systemen.

Het effect is dat je cpu veel minder vaak niets staat te doen, en daardoor wordt er dus minder cpu-tijd verspild.
Bij die niagara heb je dan ook nog eens heel veel threads die per cpu verwerkt kunnen worden, en waarschijnlijk ook applicaties die heel veel thread gebruiken. Daardoor krijg je nog meer dat je cpu zelden idle staat, en dat pieken en dalen uitgemiddeld worden. Daarom dus ook dat je piekbelasting dichter bij je gemiddelde belasting zal komen.
Bovendien kan de gebruiker zelf aangeven welke cores voor welke doeleinden gebruikt moeten worden, zodat men zelf de controle heeft over welke resources bijvoorbeeld door de webserver of door de databaseserver gebruikt kunnen worden.
Dus er is vrij veel controle van de gebruiker imo dus dat zal het beoogde OS wel moeten ondersteunen idd

mn vorige post was nog niet af ;)
Gebruik daar dan voortaan de Edit knop voor graag, die je rechtsboven je eigen post ziet :)
Hij heet niet voor niets schizo83 ;)
Ik moest hierbij meteen aan die nieuwe hoge-toeren motoren denken van de bmw m5 :P Als die vergelijking ook maar enigzins op zou gaan zou de processor zichzelf al continu op 'hoge toeren' laten draaien zodat de gebruiker als ie de hoge toeren eenmaal nodig heeft die ook meteen krijgt en niet eerst een boel 'gas' hoeft geven d.w.z te wachten totdat de processor snel gaat draaien.
je zegt het goed: "ALS de vergelijking op zou gaan"...

Het probleem is een beetje dat een processor niet zo makkelijk zijn eigen gas kan maken. Een processor zou dan zelf iets moeten verzinnen om mee bezig te zijn, bijvoorbeeld spontaan je HD af gaan zoeken naar MP3tjes en die om gaan zetten naar OGG ofzo :+

Het is natuurlijk mogelijk om de processor zo te ontwerpen dat de transistoren constant schakelen, maar dat heeft in dit kader totaal geen nut, omdat het alleen maar onnodige warmte oplevert...
een CPU met embedded koetje }:O :+
Inderdaad, kijk maar naar de features van Solaris Express :)
@ mjtdevries
ik meen mij te herinneren uit mijn uni tijd, dat je als je hoog genoeg in level was geworden, je programmeer rechten in een MUD kon krijgen zodat je zelf het spel kon uitbreiden/aanpassen, dus ik denk niet dat de code-kwaliteit van een MUD nou zoveel zegt over de programmeerkwaliteiten van een ID-software of EA Games programmeur.
En dat de AI van games vaak vals speelt is omdat goeie AI nou eenmaal veel CPU tijd nodig heeft.
Zie bijv.
Colin McRae Rally en Full Spectrum Warrior voor interviews met game AI proggers
Dat is dus precies wat ik bedoel. De code kwaliteit van MUDs was niet zo hoog.

Maar de beginnersfouten van MUD coders, komen nog steeds in grote getalen voor in de commerciele software pakketten. Wat zegt dat dan over de kwaliteiten van games programmeurs, als die jongens na 10 jaar nog steeds dezelfde fouten maken, die MUD coders na een maand al niet meer maakten?

En wat betreft AI. Ken je Galciv? Het is het enige spel met een AI die niet cheat, en die bovendien ontzettend sterk is.
In een galaxy met alleen Drengin AI, kunnen zelfs ervaren spelers niet winnen.
In andere spellen is dat gewoon ondenkbaar. Leuk dat ze dan interviews geven over de neurale netwerken die ze gebruiken, maar misschien moeten ze zich eens afvragen waarom de beste AI in een spel geschreven is door een amateur, terwijl de rest nog steeds zwaar zit te cheaten.
(En wat erger is, zodanig zit te cheaten dat het de speler duidelijk opvalt)

En wat ook helpt is dat de programmeur ook is blijven opletten met welke tactieken menselijke spelers wonnen van de AI. Hij heeft vervolgens de AI ook dat soort tactieken laten gebruiken, of mogelijkheden gegeven dat soot tactieken af te straffen.
Daar issie dan. De laatste SUN processor.
Waarom gebruikt tweakers eigenlijk niet dit soort proc. voor zijn servers?
Ehhh, omdat ze er nog niet zijn ?

En verder is er prijstechnisch nogal wat verschil tussen een Xeon of Opteron en deze 8-core CPU's en platformen van Sun. Nog even afgezien van de keuze in OS.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True