Android

Multicore Chip Pose Next Big Hamon para sa Industriya

6. Multicore Programming

6. Multicore Programming
Anonim

Ang pagdaragdag ng higit pang mga pagpoproseso ng mga core ay lumitaw bilang pangunahing paraan ng pagpapalakas ng pagganap ng server at PC chips, ngunit ang mga benepisyo ay lubhang mawawalan kung ang industriya ay hindi maaaring magtagumpay sa ilang mga hardware at programming hamon, ang mga kalahok sa Multicore Expo sa Santa Clara

Karamihan sa software ngayon ay isinusulat pa rin para sa mga single-core chips at kailangang muling isulat o ma-update upang samantalahin ang pagtaas ng bilang ng mga core na Intel, Sun Microsystems at iba pang mga chip makers ay nagdaragdag sa ang kanilang mga produkto, sinabi Linley Gwennap, presidente at prinsipal analyst sa The Linley Group.

Mga off-the-shelf na mga application ay kadalasang tumatakbo nang mas mabilis sa mga CPU na may hanggang sa apat na core ng processor, ngunit lampas sa pagganap na iyon ang mga antas off at maaaring kahit na lumala bilang mas maraming mga cores ay idinagdag, sinabi niya. Ang isang kamakailang ulat mula sa Gartner ay naka-highlight din ang problema.

Ang mga gumagawa ng chip at mga tagapagtatag ng sistema ay nagsimulang mag-aral ng mga developer at nagbibigay ng mas mahusay na mga tool para sa multicore programming. Isang taon na ang nakalilipas, sinabi ng Intel at Microsoft na mamuhunan sila ng US $ 20 milyon para buksan ang dalawang sentro ng pananaliksik sa mga unibersidad ng Estados Unidos na nakatuon sa pagharap sa problema. Ang kakulangan ng multicore programming tools para sa mga pangunahing developer ay marahil ang pinakamalaking hamon na kinakaharap ng industriya ngayon, sinabi ni Gwennap.

Pagsusulat ng mga aplikasyon sa isang paraan na nagbibigay-daan sa iba't ibang bahagi ng isang gawain ng computing, tulad ng paglutas ng isang problema sa matematika o pag-render ng isang imahe, ay nahahati at isinasagawa nang sabay-sabay sa maraming mga core ay hindi bago. Ngunit ang modelong ito, kadalasang tinatawag na parallel computing, ay limitado hanggang sa kalakhan lamang sa mga nagdadalubhasang, mataas na pagganap ng mga kapaligiran sa computing. Ngunit sa mga nagdaang taon, ang Intel at Advanced Micro Devices ay nagdaragdag ng mga core bilang isang mas mahusay na paraan upang mapalakas pagganap ng maliit na tilad, isang minarkahang pagbabago mula sa kanilang tradisyunal na pagsasanay ng pagtaas ng bilis ng orasan. Ang Intel ay nagtatayo ng walong cores sa paparating na Nehalem-EX chips, at ang AMD ay nagdidisenyo ng 12-core chips para sa mga server. Ang mga ito ay nagdaragdag din ng mga kakayahan ng multi-threading, na nagbibigay-daan sa bawat core na magtrabaho sa maramihang mga linya ng code nang sabay.

Iyon ay nangangahulugang ang mga pangunahing aplikasyon ay dapat na maisulat sa ibang paraan upang samantalahin ang mga karagdagang cores na magagamit. Ang trabaho ay mahirap gawin at lumilikha ng potensyal para sa mga bagong uri para sa mga bug ng software. Ang isa sa mga pinaka-karaniwang ay "mga kondisyon ng lahi," kung saan ang output ng pagkalkula ay depende sa iba't ibang mga elemento ng isang gawain na nakumpleto sa isang tiyak na pagkakasunud-sunod. Kung ang mga ito ay hindi, ang mga error ay maaaring magresulta.

Ang ilang mga parallel programming tools ay magagamit, gaya ng Intel's Parallel Studio para sa C at C ++. Ang iba pang mga vendor sa espasyo ay ang Codeplay, Polycore Software at Clik Arts. Mayroon ding isang bagong C-based na parallel programming model na tinatawag na OpenCL, na binuo ng The Khronos Group at sinuportahan ng Apple, Intel, AMD, Nvidia at iba pa.

Ngunit marami sa mga tool na magagamit ay gumagana pa rin sa pag-unlad, mga kalahok sa sinabi ng Multicore Expo. Kailangan ng mga tagatangkilik ng software na makilala ang code na maaaring parallelized, at pagkatapos ay gawin ang trabaho ng parallelizing ito nang walang manu-manong interbensyon mula sa mga programmer, sinabi Shay Gal-on, direktor ng software engineering sa EEMBC, isang hindi pangkalakal na samahan na bubuo benchmarks para sa naka-embed na chips. Sa kabila ng kakulangan ng mga tool, ang ilang mga software vendor ay natagpuan na ito ay medyo madali upang lumikha ng kahilera code para sa mga simpleng computing trabaho, tulad ng imahe at video processing, sinabi Gwennapp. Adobe ay muling isinulat na Photoshop sa isang paraan na maaaring magtalaga ng mga tungkulin tulad ng pag-magnify at pag-filter ng imahe sa mga tiyak na x86 core, pagpapabuti ng pagganap ng tatlo hanggang apat na beses, sinabi niya.

"Kung ikaw ay gumagawa ng video o graphics, maaari kang kumuha ng iba't ibang set ng pixels at italaga ang mga ito sa iba't ibang mga CPU.Maaari kang makakuha ng maraming paralelismo sa ganitong paraan, "sabi niya. Ngunit para sa mas kumplikadong mga gawain, ito ay mahirap na makahanap ng isang solong diskarte para sa pagkilala ng isang pagkakasunod-sunod ng mga computations na maaaring parallelized at pagkatapos ay paghahati ng mga ito.

Habang ang programming side ay maaaring ipakita ang pinakamalaking hamon, mayroon ding mga pagbabago sa hardware na kailangang gawin, upang mapaglabanan ang mga isyu tulad ng memory latency at mabagal na bilis ng bus. "Kapag nagdaragdag ka ng higit pa at higit pang mga CPU sa chip, kailangan mo ang memory bandwidth upang i-back up ito," sabi ni Gwennap.

Ang pagbabahagi ng isang memory cache o data bus sa maraming mga core ay maaaring lumikha ng isang bottleneck, ibig sabihin ang dagdag na core ay higit sa lahat ay nasayang. "Sa oras na makakakuha ka ng anim o walong CPUs, ginugugol nila ang lahat ng kanilang oras sa pakikipag-usap sa isa't isa at hindi sumusulong sa pagkuha ng anumang gawaing ginawa," sabi niya.

Ang onus ay maaaring huli sa mga developer na tulay ang puwang sa pagitan hardware at software na magsulat ng mas mahusay na mga parallel program. Maraming coders ay hindi sapat upang mapabilis ang mga pinakabagong pagpapaunlad sa disenyo ng hardware, sinabi ni Gal-on. Dapat nilang buksan ang mga sheet ng data at mga arkitekturang pag-aaral ng chip upang maunawaan kung paano mas mahusay na maisagawa ang kanilang code, sinabi niya.