Acovea

Szoftver screenshot:
Acovea
Szoftver adatai:
Változat: 1.0.1
Feltöltés dátuma: 3 Jun 15
Fejlesztő: Scott Robert Ladd
Engedély: Ingyenes
Népszerűség: 76

Rating: 3.0/5 (Total Votes: 2)

Acovea valósít genetikus algoritmus megtalálja a "legjobb" lehetőség Programok fordítása a GCC C és C ++ fordítók.
ACOVEA (Analysis of Compiler Options keresztül evolúciós algoritmus) végrehajtja a genetikus algoritmus, hogy megtalálják a "legjobb" lehetőség Programok fordítása a GNU Compiler Collection (GCC) C és C ++ fordítók.
"Legjobb", ebben az összefüggésben, a meghatározás szerint azok lehetőségeket, amelyek a leggyorsabb futtatható program egy adott forráskódot. Acovea egy C ++ keretrendszer, amely meghosszabbítható kipróbálni más programozási nyelvek és nem GCC fordító.
Képzelek Acovea mint optimalizációs eszköz, hasonló célú, hogy a profilalkotás. A hagyományos funkció-szintű profilalkotás azonosítja az algoritmusok legbefolyásosabb program teljesítményét; Acovea akkor alkalmazzák azokra algoritmusokat, hogy megtalálják a fordító zászlók és lehetőségeket generálni a leggyorsabb kódot.
Acovea is tesztelésére alkalmas kombinációit zászlók pesszimista kölcsönhatások, és megbízhatóságának tesztelésére a fordító.
A modern szoftverek nehezen érthető, és ellenőrizze a hagyományos eszközökkel. Millió sornyi kódot előállítani tartalmazó alkalmazások bonyolult kölcsönhatások, dacolva egyszerű leírást, vagy brute-force vizsgálatot.
Vezetett, determinisztikus megközelítést vizsgálatok támaszkodik emberi tesztelők elképzelni minden lehetséges kombinációját akciók - irreális ajánlatot adott szoftver bonyolultsága. Mégis, annak ellenére, hogy a komplexitás, meg kell választ fontos kérdéseket modern, nagyszabású programnak.
Milyen fontos kérdéseket? Tekintsük a GNU Compiler Collection. Írok cikkeket, hogy benchmark kódot generációs, a feladatot tele van nehézségekkel miatt a számtalan lehetőség által nyújtott különböző fordítóprogramok. Az én referenciaértékek hogy nincs értelme, azt kell tudni, hogy melyik alternatíva kombinációja eredményezi a leggyorsabb kódot adott alkalmazáshoz.
Megtaláljuk a "legjobb" az opciókat úgy hangzik, mint egy egyszerű feladat, mivel a mértéke GCC dokumentáció és a hagyományos bölcsesség a GCC fejlesztői közösség. Ah, mintha csak ilyen egyszerű! A GCC dokumentációját, míg kiterjedt, az is őszintén pontatlan.
Nagyra értékelem ezt a stílust a dokumentációt; ellentétben sok kereskedelmi gyártó, akik abszolút kijelentéseket a "minőség" a termékeiket, GCC dokumentátorok elismerem bizonytalanságok milyen különböző lehetőségek változtatja kódgenerálást. Sőt, kódgenerálást teljes mértékben függ a kérelem típusát állítja össze és a célrendszer. Az egyik lehetőség, hogy termel gyors futtatható kódot egy forráskód káros lehet a teljesítményét egy másik program.
"A hagyományos bölcsesség" érkezésekor, amikor azt közzé új cikket. Kezdve az udvarias, hogy a kitartó, hogy a durva, ezeket az e-maileket tartalmaz ellentmondó javaslatokat előállítására gyors kódot.
Az esetek túlnyomó többségében, mint anekdotikus állításokat hiányzik bármilyen formális igazolást azok érvényességét, és gyakrabban, mint nem, a javasolt "javulást" hatástalan vagy káros. Ez különösen szembetűnővé vált, hogy senki --myself tartalmazza - pontosan tudja, hogyan mindezek GCC lehetőségek dolgoznak együtt generáló program kódját.
Keresem a Szent Grál a Optimization - de hogy pontosan mi az optimalizálás? Megérteni a probléma az első lépés a megoldás megtalálását.
Optimalizálási megpróbálja előállítani a "legjobb" gépi kódot forráskód. "Legjobb" a különböző dolgokat különböző alkalmazások; adatbázis lapát darabokat információkat, míg a tudományos pályázat szempontjából gyors és pontos eredményeket; Az első gond az, hogy egy beágyazott rendszer lehet kódméret.
És ez nagyon is lehetséges, hogy a kis kódot gyors, vagy gyors kódot pontos. Optimization korántsem egy egzakt tudomány, mivel az eltérő hardver és szoftver konfiguráció.
Az optimalizálási algoritmus lehet olyan egyszerű, mint eltávolítása a hurok változatlan, vagy olyan bonyolult, mint vizsgálata egy egész programot, hogy megszüntesse közös globális al-kifejezéseket. Sok optimalizáció változás, amit a programozó írt egy sokkal hatékonyabb formája, azonos eredmény, míg megváltoztatása mögöttes adatai hatékonyságát; Más "optimalizálás" termék kódot használó sajátosságait a mögöttes hardver, mint például a speciális oktatást készletek.
Memória architektúrák, csővezetékek, on- és off-chip cache - mind hatással kódot teljesítményét oly módon, hogy nem nyilvánvaló, hogy a programozók egy magas szintű nyelv. Az optimalizálás tűnhet, hogy készítsen gyorsabb kódot, sőt, hozzon létre nagy kódot, ami miatt több cache, így a teljesítmény csökkentése.
Még a legjobb kéz hangolt C kód területeket tartalmaz értelmezése; nincs abszolút, egy-egy levelezés között C nyilatkozatok és gépi utasításokat. Szinte minden sorozata forráskód lehet összeállítani a különböző - de funkcionálisan egyenértékű - gépi utasítás patakok különböző méretű és teljesítményű jellemzőit.
Inline-kódkezelő funkciók egy klasszikus példa erre jelenségek: felváltja a hívás egy funkciót az kódját okozhat gyorsabb programot, de az is növeli a program mérete. Fokozott program mérete, lehet, viszont megakadályozzák algoritmust aknába nagysebességű cache memória, ami lassítja a programot miatt cache.
Figyeljük meg az általam használt menyét "lehet" - inline-kódkezelő kisebb rendezvények néha lehetővé teszi más algoritmusok egy esélyt, hogy tovább javítsa kódot helyi viszonyokat, termelő gyorsabban és kisebb kódot.
Optimalizálás nem egyszerű, nyilvánvaló, és ezek közül algoritmusok nem várt eredményekhez vezethet. Ami visszavezet minket arra a kérdésre: minden adott alkalmazás, mik a leghatékonyabb optimalizálási lehetőségek?
Újdonságok ebben a kiadásban:
· Kisebb változások a nem-szabad engedély.
· Kiegészítő támogatást nyújt a legújabb változatai libcoyotl és libevocosm.

Hasonló program

pinocchio
pinocchio

14 Apr 15

MPI-IO Test
MPI-IO Test

2 Jun 15

mongonose
mongonose

11 May 15

tissue
tissue

15 Apr 15

Más szoftver fejlesztő Scott Robert Ladd

Acovea/GTK
Acovea/GTK

3 Jun 15

Hozzászólások a Acovea

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!