Ik zei dus ook: upgraden vanaf een Core2Duo. Met 2 cores kan het OS+services op 1 core draaien, en jouw applicatie op de andere. Met 2 tot een aantal zware apps tegelijk kan zelfs 3-4 cores nuttig zijn. Maar daarboven zal de software multithreaded moeten worden om performancewinst te halen.LauPro schreef op maandag 10 november 2008 @ 17:55:
[...]
Het is gewoon pertinent onwaar dat mensen geen snelheidsverschil merken bij een dual core tov single core systeem. Als je een OS zou schrijven waar alles in 1 thread draait (non-smp) dan heb je gelijk, alleen de huidige moderne OS'en zijn nu eenmaal smp en dus is er per definitie een snelheidswinst met multi core systemen vs single core. Verder is het single core concept in de grotere rekencentra al decennia afgeschreven, het is gewoon de initiatiefloosheid van de processorfabrikanten dat er nu pas (afgelopen jaren) multi core processoren op de markt zijn, die hadden 10 jaar geleden al moeten bestaan. Toen moest iedereen namelijk dure 2way systemen kopen met exotische chipsets voor een beetje performance.
Ok, dan was jouw 'fingerpointing' nog zinlozer dan ik al dacht. De tools ondersteunen het dus nog breder dan ik dacht, dus het is nu tijd om het in de applicaties te gaan toepassen.[...]
Dan heb je de strekking van op opmerking niet helemaal begrepen, want Java bijvoorbeeld is de afgelopen tijd hard op weg om alle Java software gewoon per definitie threadable te maken en ook veel functies te bieden die de developer ondersteunen. Tevens loopt QT imo erg voorop als het gaat om toolkitintegratie van threads.
En die zijn er ook. Als ze er niet zijn is het niet eens zo moeilijk om er eentje te schrijven, volgens mij. De vraag is of hij dan beter wordt dan die van windows[...]
Je ontkracht jezelf een beetje, je hebt altijd een threadmanager nodig als je een deftige threaded applicatie hebt, ik ben van mening dat dat een taak is van het platform danwel de toolkits.
[...]
Punt 1: heel veel code is nog in Fortran/COBOL geschreven, helaas. Porten is lastig, dus dan moet je iets anders doen.Ik zou het niet weten en eerlijk gezegd zelf zo'n oude koe lekker laten liggen.
[...]
Punt 2: het was een high-level taal die eigenlijk niet eens veel meer met Fortran/Cobol te maken had. Door de constructies die erin zaten was het heel eenvoudig om multi-threaded te schrijven. Eenvoudiger dan in C.
Als die er zijn, maak je een singleton om zo'n lib heen, zodat er maar 1 functie tegelijk aan kan roepen. Hoe heette dat pattern ook al weer? Anyway, dat kost even een paar minuten om die code te schrijven, of een kwartiertje voor een regex die X functies onder elkaar zet.Daar is toch niets mis mee? Hell er zijn zelfs libs die gewoon nog niet threadsafe zijn, wat heeft het dan in godsnaam voor een nut om je applicatie alvast te threaden, het blijft een keten met afhankelijkheden.
Je legt net zelf aan mij uit dat de toolkits er prima op voorbereid zijn, wat is het nou[...]
Ik heb het nergens over het automatiseren van optimalisaties maar wel dat de implementatie van bijvoorbeeld een threadmanager in toolkit/platform hoort te zitten en niet in de applicatie (ja uitzonderingen daargelaten). Als je op deze manier geforceerd expliecite multithreading (zoals Confusion dat zo mooi zegt) gaat invoeren dan voorspel ik een hoop ononderhoudbare code. Het staat buiten kijf dat als je threads wil toepassen in je applicatie de architectuur en de datastructuren in je applicatie wel threadsafe moeten zijn (wat vaak ingrijpende consequenties heeft).
[knip]
Paralleliseerbaar maken is iets waarbij je door je platform/toolkit moet worden ondersteund anders blijf je wielen opnieuw uitvinden.