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 , , 26 reacties
Bron: Intel, submitter: FFWD

Intel heeft dinsdag nieuwe compileertools, met de naam Intel Compiler 9.0, vrijgegeven voor softwareontwikkelaars die hen kan helpen om multithreaded applicaties te bouwen en een betere performance te verkrijgen van applicaties op multi-corechips. Softwareontwikkelaars gebruiken een compiler om een programmeertaal, zoals C++ of Fortran in het geval van deze compiler, om te zetten naar instructies die een processor kan uitvoeren. De afgelopen maanden zijn verschillende multi-coreprocessors geïntroduceerd en de verwachting is dat de vraag naar deze chips de aankomende tijd verder zal stijgen. Versie 9 van Intels C++-compiler is direct verkrijgbaar en kost 399 dollar. De versie voor de Fortran-taal kost 499 dollar. Beide compilers zijn beschikbaar voor zowel Windows als Linux.

Intel C++ compilerEen van de features in versie 9 van Intels compiler is de optie voor autoparallellisatie. Deze zorgt ervoor dat tijdens het compileren automatisch naar mogelijkheden gezocht wordt om meerdere uitvoerbare threads te creëren. Verder ondersteunt de compiler de OpenMP 2.5-standaard inclusief enkele toekomstige uitbreidingen. Deze standaard is ontwikkeld om de ontwikkeling en het beheer van multithreaded applicaties te vereenvoudigen. Een andere nieuwe feature van de compiler is de mogelijkheid om geoptimaliseerde code te debuggen, iets wat eerder niet of nauwelijks mogelijk was. Ten slotte biedt Intel Compiler 9.0 mogelijkheden om buffer overflows tegen te gaan.

Moderatie-faq Wijzig weergave

Reacties (26)

Ben benieuwd of dit ook de versie is die Apple met z'n developer systemen meeleverde, we kunnen er lijkt me wel vanuit gaan dat die ook dual-core chips in macs gaan gebruiken.
Dat valt nog maar af te wachten, het licht natuurlijk aan Apple of zij dat nodig achten... anders had Intel wel een Apple tool bijgemaakt, dat in staat stelt nu al te ontwikkelen voor de macs...

Apple beslist uiteindelijk welke processor er word gebruikt. Pentuim-D en Pentium-M (die mac wil gaan gebruiken) hebben volgens mij nog geen MT/HT.. P4 daar in tegen wel.

edeit: reactie op Metal Bron of Apple ook een MT/HT tool ontwikeld!!
De toekomstige chips van Intel worden zullen voor een groot deel dual-core chips zijn. Dan is multithreaded code echt wel nuttig, ook al hebben de afzonderlijke cores misschien geen hyperthreading (HT is eigenlijk een soort 'virtuele multi-core').
daar·en·te·gen (bw.)
1 \[form.] ter uitdrukking van een zuivere tegenstelling => daar staat tegenover dat...
Apple levert gcc 4 mee, volgens een persbericht van intel kunnen we binnen enkele maanden het volgende verwachten: "Intel plans to provide industry leading development tools support for Apple later this year, including the Intel C/C++ Compiler for Apple, Intel Fortran Compiler for Apple, Intel Math Kernel Libraries for Apple and Intel Integrated Performance Primitives for Apple."

bron: http://www.intel.com/pressroom/archive/releases/20050606corp.htm
Geinig, ondersteund toekomstige features. Door het ondersteunen zijn het toch geen toekomstige features meer. Of moet ik dit meer lezen als "the future is now!"
volgens mij moet je dit meer lezen in de zin van instructies die toekomstige processors meekrijgen worden nu ook al ondersteunt zodat je je er alvast op voor kan bereiden.
zowel intels software als hardware afdeling weten van elkaar wel waar ze mee bezig zijn en kunnen ze dus ook makkelijk op elkaar afstemmen.
Het gaat over een uitbreiding op OpenMP 2.5 in deze tekst. Die zijn waarschijnlijk alleen nog maar gedraft en dus nog niet officieel. Desalniettemin ondersteunt deze compiler het wel.

Dat heeft dus niets te maken met processor instructies, maar gewoon met OpenMP #pragma syntax.
Zou het niet vestandig zijn voor intel als ze dit gratis aanbiedden? Meer programma's met betere per4mance op hun procs is toch beter??
Er zijn zat gratis C++ compilers voor het intel platform. Deze Intel compilers zijn echter state of the art en bieden duidelijke performancevoordelen tov bv Microsoft, Borland of GCC. Het kost echter een hoop om de compilers te ontwikkelen en een prijs van 399,- is dan ook zeker redelijk.
Sterker nog: Intel biedt de Fortran compiler voor Linux gratis aan voor niet commerciele toepassingen. Deze nieuwe versie is overigens pas in augustus gratis te downloaden.
OpenMP is wel cool, heb er laatst i.o.v. school een kort onderzoek naar gedaan. Wel jammer dat het in GCC de komende tijd nog niet ingebouwd gaat worden (hoewel je OpenMP enabled code wel kan converteren naar code met pthreads).

nvidiot:
ook gezien hoe 't daar mee staat? (en note dat 't geen GNU project is). blader voor de gein eens door de mailinglist.
Development Status : 1 - Planning
(en dat begon al in december 2002)
Uhm, geen GCC ondersteuning voor openMP? Dit voegt OpenMP ondersteuning toe aan GCC: http://savannah.nongnu.org/projects/gomp/ :)
IK weet het niet of dit wel zo`n goed idee is. Dat een source die maar 1 threat heeft op te gaan splitsen in meerdere threats.

de applicaties die er echt wat aan hebben moeten eigenlijk al in meerdere threats zijn gescheven.

ik vraag me af als ik me hele pc hercompileer hoe veel threats ik dan heb draaien.
Waarom zou dat geen goed idee zijn? Op deze manier worden dualcore processoren sneller gemeengoed, en kunnen programma's die nu met één thread werken ook gebruikmaken van de snelheden van meerdere cores.

Als je je "hele pc" hercompileert zul je denk ik niet zo heel veel meer threads hebben omdat het bij een hoop zaken gewoon geen voordeel oplevert.

Ik vind $399 wel een beetje duur voor een compiler, hoe goed ook. Maar dat kan aan mij liggen.
$399 is volgens mij echt niet zoveel geld voor een goede compiler (en dat zijn de Intel compilers wel). Vergeet niet dat de compiler een grote impact kan hebben op de performance van je software.
Dat jij als thuisgebruiker waarschijnlijk geen gebruik zal maken van deze software (niet voor die prijs iig) en waarschijnlijk gewoon GCC zal gebruiken, doet natuurlijk niet af aan de kwaliteit van dit stukje code.
Waarom is het afhankelijk van de compiler? Je kan met de juiste API-calls gewoon threads maken en starten, dan hebje multithreading. Dus waar komt de compiler hierbij kijken?
Je kunt natuurlijk zelf je threading regelen.

De toegevoegde waarde van de Intel compiler is dat ie zelf op zoek gaat naar stukken code die in een apparte thread gestart kunnen worden waardoor resultaten al beschikbaar zijn op het moment dat ze nodig zijn.

Hier zijn redelijk geavanceerde algoritmes voor nodig

Dit geldt trouwens vooral op applicatie niveau. Als we het over mulitcore processoren hebben moet het OS hier ook mee om kunnen gaan!

Bovendien biedt de compiler tooling om multithreaded applicaties beter te kunnen debuggen. Dat kan wel eens rete handig zijn.
Slechte compiler dan. "the optimizer should not alter the meaning of your code" herinner ik me uit de documentatie van Delphi. Een compiler mag nooit iets anders produceren dan wat de programmeur opschrijft, tenzij het een 4G taal is.

Enne, het OS kan prima met multicore, multithreading en multiprocessor omgaan. Dat kon het al sinds NT4, en dat kan het nog steeds.
Natuurlijk is multithreading binnen applicaties de toekomst, gezien het feit dat de nieuwe cpu's dualcore zijn (en de huidige cpu's hyperthreaded zijn).

Maar vergeet niet dat SMP ook al voordelen heeft met non-multithreaded applicaties, als je OS het maar ondersteunt: als je meerdere singlethreaded apps draait, kunnen die ook al verdeeld worden over meerdere cores.

Ik vraag me af hoe het zit met de door deze compilers gemaakte code, en de performance daarvan op single-core cpu's? Het lijkt me lastig om een compiler te bouwen die goed performende code maakt voor zowel single- als multi-core systemen.
Vergis ik mij of doet Eclipse dit al lang voor Java? Ik weet dat je daar meerdere treads mee kunt aanmaken. Vraag is natuurlijk of hij die echt als multitread compileert... Iemand enig idee?

Lijkt me anders op zich erg handig, maar wel maar voor een zeer beperkte groep gebruikers.
Vergis ik mij of doet Eclipse dit al lang voor Java?
Je kunt met behulp van Eclipse als editor natuurlijk wel threads aanmaken maar Eclipse gaat bij een complile opdracht niet zelf onderzoeken of code multi threaded kan worden gemaakt.

Bovendien is Eclipse zelf geen Compiler maar een IDE. Eclipse maakt van de standaard Java compiler gebruik.
Bovendien is Eclipse zelf geen Compiler maar een IDE. Eclipse maakt van de standaard Java compiler gebruik.
Niet dat het iets afdoet aan je punt, maar Eclipse heeft wel degelijk een eigen compiler geïmplementeert en gebruikt niet de standaardcompiler van Sun (of wie dan ook).

Het voordeel van de Eclipse compiler is dat hij incrementeel kan compileren en goed te integreren is in de IDE; dit eerste kan de Sun compiler sowieso niet en als het tweede technisch gezien al mogelijk was dan zou de restrictieve licentie van Sun dat niet toestaan.

Verder is parallellisatie iets wat op dusdanig laag nivo gebeurt, dat het waarschijnlijk eerder een feature van de JIT-compiler zou zijn, ook omdat voor zinnige optimalisaties waarschijnlijk profiling data nodig is wat pas tijdens executie beschikbaar is. (Wat dat betreft is het wel een interessante vraag hoe de C/Fortran-compiler van Intel het klaarspeelt.)
Strax krijge we softwere die geoptimaliseerd id voor Intel Of AMD
(fatsoenlijke spelling zou niet misplaatst wezen)

OT:
Dat is bij sommige software nu ook al het geval. En dan niet alleen tussen twee merken, maar ook tussen typen processoren van hetzelfde merk.

Voor normale kantoor applicaties zal dit niet zo heel veel uitmaken, maar voor videobewerking of numerieke wiskunde wil je wel graag alles uit je processor halen. En dan moet je inderdaad specifiek op een processor compileren.

In de praktijk hoeft dit nog geen problemen op te leveren: de noodzakelijke libraries worden dan voor verschillende platformen voorgecompileerd, en degeen die het beste past bij jou platform wordt dan on-the-fly geladen.

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