Mga website

Parallelism Needs Killer Application para sa Mass Adoption

Deduplication and Author Disambiguation of Streaming Records via Supervised Models -Reza Karimi

Deduplication and Author Disambiguation of Streaming Records via Supervised Models -Reza Karimi
Anonim

Ang pagdaragdag ng maraming cores sa mga microprocessors ay lumikha ng isang makabuluhang pagkakataon para sa mga parallel programming, ngunit kailangan ng killer application upang itulak ang konsepto sa mainstream, sinabi ng mga mananaliksik sa panahon ng panel discussion sa conference ng Hot Chips.

Karamihan sa software ngayon ay sinusulat pa rin para sa sunud-sunod na pagpapatupad at mga modelo ng programming ay kailangang baguhin upang samantalahin ang mas mabilis na hardware at isang pagtaas ng bilang ng mga core sa chips, sinabi ng mga panelist. Ang mga programmer ay kailangang magsulat ng code sa isang paraan na nagbibigay-daan sa mga gawain na mahati at isasagawa nang sabay-sabay sa maraming mga core at mga thread.

Ang maraming focus at pera ay nakapasok sa paggawa ng mga mabilisang machine at mas mahusay na programming language, sinabi ni David Patterson, isang computer propesor sa agham sa Unibersidad ng California, Berkeley, sa kumperensya sa Stanford noong Lunes. Ang medyo maliit na atensyon ay binabayaran sa pagsusulat ng mga programang desktop na magkapareho, ngunit ang mga application tulad ng paglalaro at musika ay maaaring baguhin iyon. Ang mga gumagamit ng naturang mga programa ay hinihiling ang pinakamahusay na pagganap ng real-time, kaya ang mga programmer ay dapat na magpatibay ng mga modelo na nagbubuwag sa mga gawain sa maraming mga thread at mga core.

Halimbawa, ang mga nobelang anyo ng paralelismo ay maaaring magdulot mapabuti ang kalidad ng musika na nilalaro muli sa mga PC at smartphone, sinabi ni Patterson. Ang code na ang isang mas mahusay na trabaho ng paghihiwalay ng mga channel at instrumento ay maaaring makabuo ng tunog sa pamamagitan ng parallel na pakikipag-ugnayan.

Ang University of California, Berkeley, ay may isang parallel computing lab kung saan ang mga mananaliksik ay nagsisikap na maunawaan kung paano ginagamit ang mga application, na maaaring makatulong sa pag-optimize ng code para sa mga aparatong handheld. Nilalayon ng isang proyekto na magdala ng desktop-quality na pag-browse sa mga aparatong handheld sa pamamagitan ng pag-optimize ng code batay sa mga partikular na gawain tulad ng pag-render at pag-parse ng mga pahina. Ang isa pang proyekto ay nagsasangkot ng pag-optimize ng code para sa mas mabilis na pagkuha ng impormasyong pangkalusugan. Ang lab ay pinondohan sa pamamagitan ng Intel at Microsoft.

Ang mga mananaliksik ng Berkeley ay nagsisikap na dalhin ang parallelism sa pamamagitan ng pagpapalit ng mga piraso ng code na orihinal na isinulat gamit ang mga wika ng scripting tulad ng Python at Ruby on Rails na may bagong mababang antas na C code. Ang bagong code ay partikular na nakatuon sa mga partikular na gawain tulad ng pag-aaral ng isang tiyak na pattern ng boses sa isang speech recognition application, sinabi ni Patterson sa isang pakikipanayam Miyerkules. Ang code ay isinulat gamit ang OpenMP o MPI, mga interface ng application ng application na dinisenyo upang makapagsulat ng mga application na magkakasunod sa makina.

Ang mga eksperto ay kailangang isulat ang mataas na dalubhasang parallel code, sinabi ni Patterson. Binabawasan nito ang oras ng pag-unlad para sa mga programmer na maaaring magamit sa Python at Ruby on Rails, na ginagawang mas madali ang pag-unlad ng application, ngunit hindi tumutok sa parallelism, sinabi ni Patterson sa interbyu. Ang lab ay nagpakita ng tukoy na pagtatalo sa pagpapatupad ng gawain sa pamamagitan ng isang kadahilanan ng 20 na may mababang antas na code ng makina.

Ang konsepto ng paralelismo ay hindi bago, at kadalasan ay ang domain ng mataas na pagganap ng computing. Ang mga mababang antas ng paralelismo ay palaging posible, ngunit ang mga programmer ay nahaharap sa isang nakakatakot na gawain sa kakulangan ng mga tool ng software at patuloy na pagbabago ng mga kapaligiran ng hardware.

"Ang mga thread ay kailangang i-synchronize ng tama," sabi ni Christos Kozyrakis, isang propesor ng electrical engineering at computer science sa Stanford University, sa isang pagtatanghal bago ang panel discussion. Kailangan ng code na maisulat sa isang form na kumikilos nang predictably at kaliskis habang mas maraming cores ang magagamit.

Kailangan ng mga compiler na maging mas matalinong at maging sapat na pang-unawa upang mabuwag ang mga thread sa oras upang ang mga output ay natanggap sa tamang pagkakasunud-sunod, sinabi ni Kozyrakis. Ang mga nasirang pagtatangka upang bumuo ng paralelismo sa code ay maaaring lumikha ng maraming surot na software kung ang mga partikular na kalkulasyon ay hindi isinagawa sa isang tiyak na pagkakasunud-sunod. Iyon ay isang problema na karaniwang tinutukoy bilang mga kondisyon ng lahi. Maaari ring kailanganin ng mga tagapagkodigo na matutunan kung paano gumamit ng maraming mga tool sa programming upang makamit ang mas mahusay na mga antas ng paralelismo, sinabi ng mga panelista.

"Walang tamad na batang diskarte sa programming," sabi ni Patterson sa kumperensya.

Ang memory at latency ng network ay lumikha ng mga bottleneck sa throughput ng data, na maaaring masira ang pagganap na nakamit sa pamamagitan ng parallel task execution.

Maraming mga kasangkapan sa parallelism na magagamit ngayon ay dinisenyo upang gamitin ang kahilera sa pagpoproseso ng kakayahan ng mga CPU at graphics processing unit upang mapabuti ang pagganap ng system. Ang Apple, Intel, Nvidia at Advanced Micro Devices ay kabilang sa mga kumpanya na nagtataguyod ng OpenCL, isang parallel programming environment na suportado sa paparating na Mac OS X 10.6 operating system ng Apple, na tinatawag ding Snow Leopard, na angkop para sa paglabas ng Biyernes. Ang OpenCL ay nakikipagkumpitensya sa Microsoft, na nagpo-promote ng kanyang proprietary DirectX parallel programming tools, at Nvidia, na nag-aalok ng framework ng CUDA.

OpenCL ay nagsasama ng isang C-tulad ng programming language na may APIs (application programming interface) upang pamahalaan ang pamamahagi ng kernels sa hardware na tulad bilang mga processor core at iba pang mga mapagkukunan. Ang OpenCL ay maaaring makatulong sa Mac OS decode ng video nang mas mabilis sa pamamagitan ng pamamahagi ng pagpoproseso ng pixel sa maraming mga CPU at graphics processing unit sa isang sistema.

Ang lahat ng mga umiiral na tool ay nakatuon sa iba't ibang mga kapaligiran ng software at samantalahin ang iba't ibang mga mapagkukunan, sinabi ni Patterson. Halimbawa, ang OpenCL ay mas nakatuon sa pagpapatupad ng mga gawain sa mga GPU. Ang mga pagmamay-ari ng mga modelo tulad ng DirectX ay mahirap na lumawak sa magkakaibang kapaligiran ng computing, habang ang ilang mga modelo tulad ng OpenCL ay umangkop sa mga partikular na kapaligiran na nakasalalay sa mga GPU.

"Hindi sa tingin ko [OpenCL] ay tatanggapin sa lahat ng mga arkitektura." Sinabi ni Patterson. "Kailangan namin pansamantala upang subukan ang iba pang mga bagay," tulad ng sinusubukan upang mapabuti sa mga modelo ng programming na may karaniwang ginagamit na mga tool sa pag-unlad, tulad ng Ruby sa daang-bakal, sinabi niya.

Habang ang mga miyembro ng madla itinuturo na ang parallelism ay isang problema para sa mga dekada, sinabi ng mga panelista na ang mga unibersidad ngayon ay kumukuha ng isang sariwang diskarte sa pagtatrabaho sa maraming mga tool sa programming upang paganahin ang paralelismo. Pagkatapos ng mga taon ng pag-unlad ng pagpoproseso ng chip, ang gobyerno ay nagbabayad din ng higit na atensyon sa pagpaparehong pagproseso sa pamamagitan ng mga programang may kaugnayan sa pagpopondo.

Kozyrakis sinabi Stanford ay nagtatag ng isang lab na naglalayong "gumawa ng magkapareho praktikal na pag-unlad ng application para sa [masa]," noong 2012 Ang mga mananaliksik ay nagtatrabaho sa mga kumpanya tulad ng Intel, AMD, IBM, Sun, Hewlett-Packard at Nvidia.

Ang isang agarang pagsusulit sa gawain para sa mga developer ay maaaring subukan ang pag-convert ng umiiral na legacy code nang magkapareho para sa pagpapatupad sa mga modernong chip, Berkeley's Patterson sinabi. Ang isang pares ng mga kumpanya ay nag-aalok ng awtomatikong parallelization, ngunit muling pagsusulat at pag-compile ng legacy code na orihinal na isinulat para sa sequential pagpapatupad ay maaaring maging isang malaking hamon.

"May pera na ginawa sa mga lugar," Patterson sinabi.