Android

Moninapasiruisot esittävät seuraava haaste teollisuudelle

Anonim

Uusien prosessoriytimien lisääminen on noussut ensisijaiseksi tavaksi parantaa palvelimen ja PC-sirujen suorituskykyä, mutta hyödyt pienenevät huomattavasti, jos toimiala ei pysty ratkaisemaan tiettyjä laitteisto- ja ohjelmointihaasteita, osallistujia Santa Clara Multicore Expossa, Kaliforniassa, sanoo tällä viikolla.

Useimmat ohjelmistot tänään on kirjoitettu yhden ydinhiutaleille, ja niitä on kirjoitettava uudelleen tai päivitettävä, jotta ne hyötyisivät Intelin, Sun Microsystemsin ja muiden sirunvalmistajien lisääntyvästä niiden tuotteet, Linley Gwennap, Linley Groupin pääjohtaja ja analyytikko.

Off-the-shelf-sovellukset käyvät usein nopeammin prosessoreilla, joissa on jopa neljä prosessorisydämiä, tasoittaa ja saattaa jopa heikentyä, kun lisää sydämejä lisätään, hän sanoi. Gartnerin äskettäinen raportti korosti myös ongelman.

Chipin valmistajat ja järjestelmärakentajat ovat alkaneet kehittää kehittäjiä ja tarjota heille parempia työkaluja monilähetysohjelmointiin. Vuosi sitten Intel ja Microsoft sanoivat investoivansa US $ 20 miljoonaa avatakseen kaksi Yhdysvaltain yliopistojen tutkimuskeskusta ongelman ratkaisemiseen. Monipuolisten ohjelmointityökalujen puuttuminen valtavirran kehittäjille on kenties alan suurin haaste tänään, Gwennap sanoi.

Sovellusten kirjoittaminen siten, että laskentatehtävän eri osat, kuten matemaattisen ongelman ratkaiseminen tai kuvauksen tekeminen, jaetaan ja toteutetaan samanaikaisesti useiden ytimien kautta, ei ole uusi. Mutta tämä malli, jota kutsutaan usein rinnakkaislaskennaksi, on tähän mennessä rajoittanut pääasiassa erikoistuneisiin ja tehokkaisiin tietojenkäsittelyympäristöihin.

Intel ja Advanced Micro Devices ovat viime vuosina tehostaneet tehoa chip-suorituskykyä, merkittävä muutos niiden perinteisestä käytännöstä kasvattaa kellotaajuutta. Intel rakentaa kahdeksan ytimen tuleviin Nehalem-EX-siruihinsa, ja AMD suunnittelee 12-core-siruja palvelimille. Ne myös lisäävät monisäikeisiä ominaisuuksia, jotka sallivat jokaisen ytimen toimivan samanaikaisesti useilla koodin linjoilla.

Tämä merkitsee sitä, että valtavirran sovellukset on kirjoitettava eri tavoin, jotta ne voivat hyödyntää käytettävissä olevia ylimääräisiä ytimiä. Työtä on vaikea tehdä ja luo mahdollisuuksia uusien tyyppien ohjelmistovikoihin. Yksi yleisimmistä on "rotuolosuhteet", jossa laskutoimituksen tulos riippuu tietyn järjestyksen tietyn järjestyksen eri elementeistä. Jos ne eivät ole, virhe voi johtaa.

Saatavilla on muutamia rinnakkaisia ​​ohjelmointityökaluja, kuten Intelin rinnakkaistudio C: lle ja C ++: lle. Muut toimittajat ovat Codeplay, Polycore Software ja Clik Arts. Lisäksi on olemassa uusi C-pohjainen rinnakkaisohjelmointimalli nimeltä OpenCL, jota kehittää The Khronos -ryhmä ja jota tukevat Apple, Intel, AMD, Nvidia ja muut.

Monet käytettävissä olevista työkaluista ovat vielä keskeneräisiä töitä, Multicore Expo sanoi. Ohjelmiston kääntäjien on kyettävä tunnistamaan koodia, jota voidaan rinnastaa, ja sitten tehdä työ rinnalleen ilman manuaalia ohjelmoijilta, sanoo ohjelmistosuunnittelun johtaja Shay Gal-on EEMBC: ssä, voittoa tavoittelematon organisaatio, joka kehittää vertailuarvoja upotetuille siruille.

Työkalujen puutteesta huolimatta jotkin ohjelmistotoimittajat ovat löytäneet suhteellisen helppoa luoda rinnakkaiskoodin yksinkertaisille laskentatehtäville, kuten kuvankäsittelyyn ja videon käsittelyyn, Gwennapp sanoi. Adobe on kirjoittanut Photoshopin tavalla, joka voi määrittää tehtäviä, kuten suurennuksen ja kuvan suodattamisen tiettyihin x86-ytimiin, parantamalla suorituskykyä kolmesta neljään kertaan.

"Jos käytät videokuvaa tai grafiikkaa, voit tehdä erilaisia ​​sarjoja pikseleitä ja jakaa ne eri suorittimiin. Tästä voi saada paljon rinnakkaisuutta ", hän sanoi. Monimutkaisempien tehtävien osalta on kuitenkin vaikea löytää yhdestä lähestymistavasta sellaisten laskelmien sekvenssin tunnistamiseksi, jotka voidaan rinnastaa ja jakaa ne sitten.

Vaikka ohjelmointipuoli voi olla suurin haaste, on myös laitteistomuutoksia, jotka on tehtävä, jotta voidaan ratkaista esimerkiksi muistin viive ja hidas väylänopeus. "Kun lisäät yhä useampia keskusyksiköitä siruun, tarvitset muistin kaistanleveyden varmistaaksesi sen," Gwennap sanoi.

Yhden muistivälin tai dataväylän jakaminen useiden ytimien kesken voi luoda pullonkaulan, mikä tarkoittaa, että ylimääräiset ytimet on suurelta osin hukkaan. "Kun saat kuusi tai kahdeksaa suoritinta, he viettävät kaiken aikaa puhumalla toisilleen ja etenevät eteenpäin saadakseen aikaan mitään työtä", hän sanoi.

Onnettomuus voi lopulta olla kehittäjien kanssa laitteita ja ohjelmistoja parempien rinnakkaisten ohjelmien kirjoittamiseen. Monet kooderit eivät nopeuta laitteistosuunnittelun viimeisintä kehitystä, Gal-on sanoi. Heidän pitäisi avata tietolomakkeita ja tutkia siruarkkitehtuureja ymmärtääkseen, miten heidän koodinsa voi toimia paremmin, hän sanoi.