Gå til innhold

Kan lage 5- eller 7-kjerne-prosessor


Anbefalte innlegg

fra multithreading i wiki linken:

"As multitasking greatly improved the throughput of computers, programmers started to implement applications as sets of cooperating processes (e.g. one process gathering input data, one process processing input data, one process writing out results on disk.) This, however, required some tools to allow processes to efficiently exchange data.

 

Threads were born from the idea that the most efficient way for cooperating processes to exchange data would be to share their entire memory space. Thus, threads are basically processes that run in the same memory context. Threads are described as lightweight because switching between threads does not involve changing the memory context.

 

While threads are scheduled preemptively, some operating systems provide a variant to threads, named fibers, that are scheduled cooperatively. On operating systems that do not provide fibers, an application may implement its own fibers using repeated calls to worker functions. Fibers are even more lightweight than threads, and somewhat easier to program with, although they tend to lose some or all of the benefits of threads on machines with multiple processors.[citation needed]

 

Some systems directly support multithreading in hardware."

 

OK det er ingenting her som utelukker flertråding && XP.

 

fra PDF dokumentet:

"The concept of simultaneous execution of multiple user programs, each as an independent process, can be extended by breaking each user program into several independent (parallel) threads. Then we have simultaneous execution of multiple parts of user programs, each as an independent thread. With time sharing, the interaction between processes requiring synchronization is handled by the operating system. With general multithreading, the interaction between threads requiring synchronization must be handled explicitly by the user. Several modern programming languages (Java, c++) provide support for synchronization primitives."

 

Dette utelukker eksplisitt din påstand og drar samtidig fokus på flertråding fra OS til programmeringsspråk hvor det rettmessig hører hjemme.

 

Sjekk ut disse isteden:

http://en.wikipedia.org/wiki/Monitor_(synchronization)

http://en.wikipedia.org/wiki/Semaphore_(programming)

http://en.wikipedia.org/wiki/Amdahl%27s_law

Endret av Anders Jensen
Lenke til kommentar
Videoannonse
Annonse
På den annen side er det drygt å referere til mangelen på en kjerne som teknologi.

 

"Oi se den mannen med krykketeknologi. Han må være heldig du..."

Vet ikke om dette var en ren morsomhet eller om du faktisk mener dette.

 

Jeg velger å tro at du mente dette. Isåfall må du gjerne fortelle meg hvorfor ikke fleksibilitet i forhold til antall kjerner og deaktivering av dårlige kjerner kan kalles teknologi.

 

Og for å følge opp krykke-analogien din, selv om jeg ikke helt ser relevansen: Hvis krykker kan få en mann med ett ben til å gå, så burde vel det også kunne kalles teknologi, selv om det er en nokså primitiv sådan sett i forhold til hva vi snakker om her)

Lenke til kommentar

Å så av enheter er like basic teknologi i CMOS som hjulet er for bilen. Alle som lager CMOS brikker gjør det og har alltid gjort det. Om markedsavdelignen finner ut at de skal lage et eget tullesegment for å få oppmerksomhet eller om de like tullete ønsker å blåse stort opp at de er i mot konkurrentens PR stunt så er jo det en sak for seg, men ikke bland teknologi inn i dette.

Lenke til kommentar
Å så av enheter er like basic teknologi i CMOS som hjulet er for bilen. Alle som lager CMOS brikker gjør det og har alltid gjort det.

Først var det krykker, så er det hjul på bilen. For meg virker dette som arroganse og tom retorikk.

 

Hvis en ny arkitektur tillater å være mer fleksibel enn en annen (deaktivere en kjerne og sitte igjen med et fungerende produkt, klokke kjerner med forskjellig hastighet osv) forstår jeg ikke hvorfor man ikke kan kalle det teknologi. Kanskje jeg er litt treg, men du må gjerne opplyse meg om begrensningen for bruk av uttrykket "teknologi", og hva som gjør annen "teknologi" verdig dette begrepet.

 

Utdrag fra Wikipedia: "Teknologi er læren om teknikker og problemløsninger."

 

For meg virker dette som problemløsning. Hvordan få flere fungerende produkter ut av hver silisiumskive.

Lenke til kommentar
Å så av enheter er like basic teknologi i CMOS som hjulet er for bilen. Alle som lager CMOS brikker gjør det og har alltid gjort det.

Først var det krykker, så er det hjul på bilen. For meg virker dette som arroganse og tom retorikk.

 

Hvis en ny arkitektur tillater å være mer fleksibel enn en annen (deaktivere en kjerne og sitte igjen med et fungerende produkt, klokke kjerner med forskjellig hastighet osv) forstår jeg ikke hvorfor man ikke kan kalle det teknologi. Kanskje jeg er litt treg, men du må gjerne opplyse meg om begrensningen for bruk av uttrykket "teknologi", og hva som gjør annen "teknologi" verdig dette begrepet.

 

Utdrag fra Wikipedia: "Teknologi er læren om teknikker og problemløsninger."

 

For meg virker dette som problemløsning. Hvordan få flere fungerende produkter ut av hver silisiumskive.

Du har rett jeg burde ikke hengt meg opp i ordet teknologi, men ordet klonet. my bad.

Lenke til kommentar
Du har rett jeg burde ikke hengt meg opp i ordet teknologi, men ordet klonet. my bad.

Ok, jeg ser den. Intel klarer sikkert å finne på sin egen variant uten å direkte klone AMD sin, så det var kanskje litt upresist.

 

Men man kan ihvertfall si at Intel nå implementerer teknologi som er identisk med den de latterliggjorde for et år siden (AMD sin).

Lenke til kommentar
  • 3 uker senere...

Sist jeg leste rundt for å finne ut om jeg skulle kjøpe 3 eller 4 kjerner (forrige uke) sjekket jeg en del tester, og det viste seg at særlig spill skalerer dårlig etter antall kjerner. Virker som om de teller antall kjerner, om manuellt segmenterer programmet (sikkert stramme deadlines i den bransjen)

 

Om Microsofts sheduler er dum, finnes det OS med inteligent sheduler som kan fordele prosessering etter load? Om ikke vil det jo bli komplisert å programmere fremover....

Lenke til kommentar
Sist jeg leste rundt for å finne ut om jeg skulle kjøpe 3 eller 4 kjerner (forrige uke) sjekket jeg en del tester, og det viste seg at særlig spill skalerer dårlig etter antall kjerner. Virker som om de teller antall kjerner, om manuellt segmenterer programmet (sikkert stramme deadlines i den bransjen)

 

Om Microsofts sheduler er dum, finnes det OS med inteligent sheduler som kan fordele prosessering etter load? Om ikke vil det jo bli komplisert å programmere fremover....

Du kan ikke fordele lasten over flere prosessorer med mindre du har flere tråder/prosesser. Dette gjelder alle OS og er der kjernen av problemet ligger. For mange typer kode er nemlig meget vanskelig å skrive flertrådet på en god måte. Og ja, man må skrive flertrådet eksplisitt i praktisk talt alle programmeringspråk.

Lenke til kommentar
Vil gjerne anbefale dere å lese gjennom denne pdfen. Så kan dere se på wiki, spesielt under Multithreading.

Er det dette du sikter til?

"While threads are scheduled preemptively"

 

Skal jeg prøve meg på litt usakkyndig famling, som forhåpentligvis kan bidra på en eller annen bisarr måte.

 

Dette betyr jo at det er scheduleren i operativsystemet som "deler ut" oppgaver til ressursene i systemet, basert på et sett regler, slik man fra innsiden i en prosess ikke vil ha noen formening om hvor mange kjerner/prosessorer som kjører trådene i prosessen. I prinsippet er det ikke noe i veien for at alle trådene kjøres av samme kjerne, og i dette tilfellet vil du jo ha helt rett i at det ikke skjer noe rent samtidig.

 

Til spørsmålet om to tråder faktisk kan kjøre parallelt i en CPU, så vil vel det avhenge av om Windows XP kan dele ut oppgaver til flere kjerner, slik at det deles ut en oppgave til kjerne 2 mens kjerne 1 fortsatt jobber med noe annet? Det ville vel vært rart om ikke XP kunne det?

Lenke til kommentar
Til spørsmålet om to tråder faktisk kan kjøre parallelt i en CPU, så vil vel det avhenge av om Windows XP kan dele ut oppgaver til flere kjerner, slik at det deles ut en oppgave til kjerne 2 mens kjerne 1 fortsatt jobber med noe annet? Det ville vel vært rart om ikke XP kunne det?

Det ville vært svært rart ja. Hvis ikke XP kunne det så ville det heller ikke stått på spesifikasjonslista at det støtter inntil 2 stk prosessorer med inntil 4 logiske kjerner hver. (Mulig det er patchet opp til 8 logiske kjerner per prosessor nå etter at Nehalem har kommet). Uten støtte for flere samtidige oppgaver ville man heller aldri sett noen ytelseøkninger på dobbeltkjerner vs enkeltkjerner osv.

 

Til informasjon så støtter både Win XP og 2000 flertråding. Mange programmer viser ytelseøkning nettopp på grunn av flere kjerner ved bruk av XP og Win 2000. Multiprosessorytelsen skalerer litt bedre med XP enn med 2000 på grunn av bedre sceduling. Vista skalerer ennå litt bedre på grunn av NUMA-støtte. Det er sikkert rom for ytterligere forbedringer, noe jeg forventer kommer med Win7.

 

Konklusjonen er i hvert fall at 2000, XP, Vista og W7 kan kjøre flere tråder samtidig og at det gir en betydelig gevinst i mange tilfeller.

Lenke til kommentar
Du kan ikke fordele lasten over flere prosessorer med mindre du har flere tråder/prosesser. Dette gjelder alle OS og er der kjernen av problemet ligger. For mange typer kode er nemlig meget vanskelig å skrive flertrådet på en god måte. Og ja, man må skrive flertrådet eksplisitt i praktisk talt alle programmeringspråk.

Quoter meg selv for å hive inn denne nyheten som viser at det skjer spennende ting på denne fronten også!

 

GCC To Receive Automatic Parallelization Support

http://www.phoronix.com/scan.php?page=news...m&px=NzEzNA

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...