Inafasiriwa moja kwa moja kutoka kwa Wikipedia ya Kiingereza na Tafsiri ya Google

Kompyuta sambamba

BluM / Blue P ya BGB ya sambamba yenye usambazaji .

Kompyuta sambamba ni aina ya hesabu ambayo mahesabu mengi au utekelezaji wa michakato hufanyika wakati huo huo. [1] Mara nyingi matatizo makubwa yanaweza kugawanywa kuwa ndogo, ambayo yanaweza kutatuliwa kwa wakati mmoja. Kuna aina tofauti za kompyuta sambamba: kiwango kidogo , mafundisho-ngazi , data , na ulinganifu wa kazi . Ulinganifu umetumika kwa miaka mingi, hasa katika kompyuta ya juu ya utendaji , lakini riba ndani yake imeongezeka hivi karibuni kutokana na vikwazo vya kimwili kuzuia kuongezeka kwa mzunguko . [2] Kama matumizi ya nguvu (na hivyo joto kizazi) na kompyuta imekuwa kuwa na wasiwasi katika miaka ya hivi karibuni, [3] kompyuta sambamba imekuwa mtawala mkubwa katika usanifu wa kompyuta , hasa katika mfumo wa processor mbalimbali . [4]

Kompyuta sambamba inahusiana na kompyuta moja kwa moja -ambayo hutumiwa mara kwa mara pamoja, na mara nyingi huchanganyikiwa, ingawa mbili ni tofauti: inawezekana kuwa na usawazishaji bila mkataba (kama vile ulinganifu wa kiwango kidogo ), na ushirikiano bila ulinganifu (kama vile multitasking kwa kugawana muda kwenye CPU moja ya msingi). [5] [6] Katika kompyuta sambamba, kazi ya computational ni kawaida kuvunjwa katika kadhaa, mara nyingi nyingi, subtasks sawa sawa ambayo inaweza kusindika kwa kujitegemea na matokeo yake ni pamoja baadaye, baada ya kukamilika. Kwa kulinganisha, katika kompyuta moja kwa moja, taratibu mbalimbali haziingizii kazi zinazohusiana; wakati wanafanya, kama ilivyo kawaida katika kompyuta iliyosambazwa , kazi tofauti zinaweza kuwa na asili tofauti na mara nyingi zinahitaji mawasiliano ya mchakato wa wakati wakati wa utekelezaji.

Kompyuta za sambamba zinaweza kuhesabiwa kulingana na kiwango ambacho vifaa vinasaidia kufanana , na kompyuta nyingi za msingi na nyingi za processor zina vipengele vingi vya usindikaji ndani ya mashine moja, wakati makundi , MPP , na gridi hutumia kompyuta nyingi kufanya kazi sawa kazi. Wakati mwingine usanifu wa kompyuta wa sambamba hutumiwa pamoja na wasindikaji wa jadi, kwa kuharakisha kazi maalum.

Katika matukio mengine, parallellism ni wazi kwa programu ya programu, kama vile kwa kiwango kidogo au kiwango cha maelekezo ya kiwango cha maelekezo, lakini taratibu za uwiano sawa , hususan wale ambao hutumia concurrency, ni vigumu zaidi kuandika kuliko vigezo, [7] kwa sababu concurrency inaleta mpya kadhaa madarasa ya uwezo mende programu , ambapo hali ya mbio ni ya kawaida. Mawasiliano na maingiliano kati ya madawati tofauti ni kawaida ya vikwazo vingi zaidi vya kupata utendaji mzuri wa programu.

Juu ya kinadharia imefungwa juu ya kasi ya mpango mmoja kama matokeo ya kufungamana hutolewa na Sheria ya Amdahl .

Yaliyomo

Hali ya

Kijadi, programu ya kompyuta imeandikwa kwa hesabu ya serial . Ili kutatua tatizo, algorithm imejengwa na kutekelezwa kama mkondo wa maagizo ya serial. Maagizo haya yanatekelezwa kwenye kitengo cha usindikaji kati kwenye kompyuta moja. Maagizo moja tu yanaweza kutekeleza kwa wakati-baada ya maagizo hayo yametimia, ya pili inafanywa. [8]

Kompyuta sambamba, kwa upande mwingine, hutumia vipengele vingi vya usindikaji wakati huo huo kutatua tatizo. Hii imekamilika kwa kuvunja tatizo katika sehemu za kujitegemea ili kila kipengele cha usindikaji kinaweza kutekeleza sehemu yake ya algorithm wakati huo huo na wengine. Mambo ya usindikaji yanaweza kuwa tofauti na yanajumuisha rasilimali kama vile kompyuta moja na wasindikaji wengi, kompyuta kadhaa za mtandao, vifaa maalum, au mchanganyiko wowote hapo juu. [8]

Kuongezeka kwa mzunguko ni sababu kubwa ya maboresho katika utendaji wa kompyuta kutoka katikati ya miaka ya 1980 mpaka 2004. Muda wa kukimbia wa programu ni sawa na idadi ya maagizo yanayoongezeka kwa muda wastani kwa maelekezo. Kudumisha kila kitu mara kwa mara, kuongeza mzunguko wa saa hupungua muda wa wastani inachukua kutekeleza maelekezo. Kuongezeka kwa mzunguko kwa hiyo hupunguza muda wa kukimbia kwa programu zote zinazozingatiwa . [9]

Hata hivyo, matumizi ya nguvu P na chip hutolewa na equation P = C × V 2 × F , ambapo C ni capacitance kuwa switched kwa saa ya saa (sawa na idadi ya transistors ambao pembejeo mabadiliko), V ni voltage , na F ni mzunguko wa processor (mizunguko kwa pili). [10] Kuongezeka kwa mzunguko huongeza kiasi cha nguvu kutumika katika processor. Kuongezeka kwa matumizi ya nguvu ya usindikaji ulisababisha hatimaye kuondolewa kwa Mitel 's May 8, 2004 kwa watengenezaji wake wa tejas na Jayhawk , ambayo kwa ujumla hutajwa kama mwisho wa mzunguko unaozidi kama mtawala mkubwa wa usanifu wa kompyuta. [11]

Sheria ya Moore ni uchunguzi wa uongo kwamba idadi ya transistors katika microprocessor mara mbili kila miezi 18-24. [12] Pamoja na masuala ya matumizi ya nguvu, na utabiri wa mara kwa mara wa mwisho wake, sheria ya Moore bado inafanya kazi. Kwa mwisho wa mzunguko wa mzunguko, transistors hizi za ziada (ambazo hazitumiwi kwa kasi ya mzunguko) zinaweza kutumika kuongeza vifaa vya ziada kwa kompyuta sambamba.

Sheria ya Amdahl na sheria ya Gustafson

Uwakilishi wa kielelezo wa sheria ya Amdahl . Kuongezeka kwa programu kutoka kwa kuzingatia ugawanyiko ni mdogo kwa kiasi gani cha programu inaweza kuwa paralised. Kwa mfano, kama 90% ya programu inaweza kuwa paralised, kasi ya kinadharia kasi kutumia kompyuta sambamba itakuwa mara 10 bila kujali processors wengi kutumika.
Fanya kwamba kazi ina sehemu mbili za kujitegemea, A na B. Sehemu B inachukua karibu 25% ya wakati wa hesabu nzima. Kwa kufanya kazi ngumu sana, mtu anaweza kufanya sehemu hii mara 5 kwa kasi, lakini hii inapunguza tu wakati wa hesabu nzima kwa kidogo. Kwa upande mwingine, mtu anaweza kuhitaji kufanya kazi ndogo ili kufanya sehemu A iwe mara mbili kwa kasi. Hii itafanya hesabu kwa kasi zaidi kuliko kwa kuongeza sehemu B , ingawa sehemu ya B ya kasi ni kubwa kwa uwiano, (mara 5 dhidi ya mara 2).

Kwa hakika, kasi ya kutoka kwa kuhalalisha itakuwa mstari-mara mbili ya idadi ya vipengele vya usindikaji inapaswa kupunguza muda wa kukimbia, na mara mbili mara mbili inapaswa tena kupunguza wakati wa kukimbia. Hata hivyo, algorithms sambamba sana hupata kasi ya haraka. Wengi wao wana kasi ya karibu ya mstari kwa namba ndogo za vipengele vya usindikaji, ambazo hujitokeza kwa thamani ya mara kwa mara kwa idadi kubwa ya vipengele vya usindikaji.

Uwezo wa kasi wa algorithm kwenye jukwaa la sambamba ya kompyuta hutolewa na Sheria ya Amdahl [13]

wapi

  • S utulivu uwezekano speedup katika utulivu ya utekelezaji wa kazi nzima;
  • s ni speedup katika latency ya utekelezaji wa sehemu parallelizable ya kazi;
  • p ni asilimia ya wakati wa utekelezaji wa kazi nzima kuhusu sehemu inayoweza kufanikiwa ya kazi kabla ya kufungamana .

Tangu S latency <1 / (1 - p ) , inaonyesha kuwa sehemu ndogo ya programu ambayo haiwezi kueneza itapunguza kasi ya haraka inayopatikana kutoka kwa kuhalalisha. Programu ya kutatua tatizo kubwa la hisabati au uhandisi kwa kawaida linajumuisha sehemu kadhaa zinazoweza kufanana na sehemu kadhaa zisizo za parallizable (serial). Ikiwa sehemu isiyo ya paralliza ya programu inachukua asilimia 10 ya wakati wa kukimbia ( p = 0.9), hatuwezi kupata zaidi ya mara 10 kasi, bila kujali ni wasindikaji wangapi walioongezwa. Hii inaweka kikomo cha juu juu ya manufaa ya kuongeza vitengo vingi vya utekelezaji. "Wakati kazi haiwezi kugawanyika kwa sababu ya vikwazo vyenye ukiukwaji, matumizi ya jitihada nyingi haipatii ratiba. Utoaji wa mtoto huchukua miezi tisa, bila kujali wanawake wengi wanaopewa." [14]

Uwakilishi wa kielelezo wa sheria ya Gustafson .

Sheria ya Amdahl inatumika tu kwa matukio ambapo ukubwa wa shida huwekwa. Katika mazoezi, kama rasilimali zaidi za kompyuta zinapatikana, huwa hutumiwa kwenye matatizo makubwa (datasets kubwa), na wakati uliotumika katika sehemu inayoweza kuenea mara nyingi huongezeka kwa kasi zaidi kuliko kazi ya asili. [15] Katika kesi hiyo, Sheria ya Gustafson inatoa tathmini ya chini ya tamaa na ya kweli ya utendaji sawa: [16]

Sheria zote za Amdahl na Sheria ya Gustafson wanafikiri kwamba muda unaofaa wa sehemu ya programu hiyo ni huru na idadi ya wasindikaji. Sheria ya Amdahl inadhani kwamba tatizo lote ni la ukubwa wa kudumu ili jumla ya kazi ya kufanywa kwa sambamba pia inajitegemea idadi ya wasindikaji , ambapo sheria ya Gustafson inadhani kwamba jumla ya kazi ya kufanywa kwa sambamba inatofautiana kulingana na idadi ya wasindikaji .

Utegemeaji wa

Kuelewa utegemezi wa data ni msingi katika kutekeleza algorithms sambamba . Hakuna programu inayoweza kukimbia kwa haraka zaidi kuliko mlolongo mrefu zaidi wa mahesabu ya tegemezi (inayojulikana kama njia muhimu ), kwa kuwa mahesabu ambayo hutegemea mahesabu ya awali katika mlolongo inapaswa kutekelezwa kwa utaratibu. Hata hivyo, taratibu nyingi hazijumuisha mlolongo mrefu wa mahesabu ya tegemezi; kuna kawaida fursa za kutekeleza mahesabu huru katika sambamba.

Hebu P i na P i kuwa makundi mawili ya programu. Hali za Bernstein [17] zinaelezea wakati hao wawili wanajitegemea na wanaweza kutekelezwa kwa sambamba. Kwa P i, basi mimi i kuwa wote wa pembejeo vigezo na O i pato vigezo, na vivyo hivyo kwa P j. P i na P j ni huru ikiwa wanatosheleza

Ukiukwaji wa hali ya kwanza hutegemea utegemezi wa mtiririko, sambamba na sehemu ya kwanza inayozalisha matokeo inayotumiwa na sehemu ya pili. Hali ya pili inawakilisha utegemezi wa kupinga, wakati sehemu ya pili inaleta mabadiliko yanayotakiwa na sehemu ya kwanza. Hali ya tatu na ya mwisho inawakilisha utegemezi wa pato: wakati makundi mawili kuandika kwenye eneo moja, matokeo hutokea kwa sehemu ya mwisho ya kutekelezwa. [18]

Fikiria kazi zifuatazo, ambazo zinaonyesha aina nyingi za tegemezi:

1: kazi Dep (a, b)
2: c: = a * b
3: d: = 3 * c
4: kazi ya mwisho

Katika mfano huu, maagizo 3 hayawezi kufanywa kabla (au hata sawa na) mafundisho ya 2, kwa sababu maagizo 3 hutumia matokeo kutoka kwa mafundisho 2. Inakiuka hali ya 1, na hivyo huanzisha utegemezi wa mtiririko.

1: Hakuna kazi (a, b)
2: c: = a * b
3: d: = 3 * b
4: e: = a + b
5: kazi ya mwisho

Katika mfano huu, hakuna dhamana kati ya maagizo, hivyo wanaweza wote kuendeshwa sawa.

Hali ya Bernstein hairuhusu kumbukumbu kugawanywa kati ya michakato tofauti. Kwa hiyo, baadhi ya njia za kutekeleza uagizaji kati ya upatikanaji ni muhimu, kama vile semaphores , vikwazo au njia nyingine ya maingiliano .

Hali ya mbio, kusitishwa kwa pamoja, maingiliano, na kushuka kwa sambamba

Subtasks katika mpango sambamba mara nyingi huitwa nyuzi . Vipande vilivyofanana vya kompyuta vinatumia vidogo vidogo, vyema vya nyuzi inayojulikana kama nyuzi , wakati wengine hutumia matoleo makuu inayojulikana kama mchakato . Hata hivyo, "nyuzi" hukubaliwa kwa ujumla kama neno la kawaida kwa madawati. Vijiti mara nyingi huhitaji kurekebisha tofauti ambazo zinagawanyika kati yao. Maelekezo kati ya mipango mawili inaweza kuingizwa kwa utaratibu wowote. Kwa mfano, fikiria mpango wafuatayo:

Funga A Thread B
1A: Soma variable V 1B: Soma variable V
2A: Ongeza 1 kwa V variable 2B: Ongeza 1 kwa V variable
3A: Andika tena V 3B: Andika tena kwa V variable

Ikiwa maagizo 1B yanatakiwa kati ya 1A na 3A, au ikiwa maagizo 1A yanatumiwa kati ya 1B na 3B, programu itazalisha data sahihi. Hii inajulikana kama hali ya mbio . Mpangilio lazima atumie lock ili kutoa kutengwa kwa pamoja . Kichwa ni ujenzi wa lugha ya programu ambayo inaruhusu thread moja kuchukua udhibiti wa kutofautiana na kuzuia thread nyingine kutoka kusoma au kuandika, mpaka kwamba variable ni kufunguliwa. Funga iliyo na lock ni bure kutekeleza sehemu yake muhimu (sehemu ya programu ambayo inahitaji upatikanaji wa kipekee kwa baadhi ya kutofautiana), na kufungua data wakati imekamilika. Kwa hiyo, ili kuhakikisha utekelezaji sahihi wa programu, mpango hapo juu unaweza kuandikwa tena kwa kutumia kufuli:

Funga A Thread B
1A: Vifunga variable V 1B: Kuzuia vigezo V
2A: Soma variable V 2B: Soma variable V
3A: Ongeza 1 kwa V variable 3B: Ongeza 1 hadi V variable
4A: Andika tena V 4B: Andika tena kwa V
5A: Kufungua V variable 5B: Fungua mabadiliko V

Faili moja itafanikiwa kufungua V, wakati fimbo nyingine itafungwa bila kuweza kuendelea mpaka V imefunguliwa tena. Hii inathibitisha utekelezaji sahihi wa programu. Kufuatilia, wakati muhimu ili kuhakikisha utekelezaji sahihi wa programu, kunaweza kupunguza kasi ya programu.

Kuzuia vigezo mbalimbali kutumia kufuli zisizo za atomic hutoa uwezekano wa kuzuia programu. Hifadhi ya atomiki inafuta vigezo mbalimbali kwa mara moja. Ikiwa haiwezi kuwafunga wote, haifunguzi yeyote kati yao. Ikiwa nyuzi mbili zinahitajika kuziba vigezo viwili viwili kwa kutumia kufuli zisizo za atomiki, inawezekana kuwa thread moja itafungua moja yao na fimbo ya pili itafunga variable ya pili. Katika kesi hiyo, wala thread haiwezi kukamilisha, na matokeo ya kufuta.

Programu nyingi zinazofanana zinahitaji kwamba vitendo vyao vifungue katika synchrony . Hii inahitaji matumizi ya kizuizi . Vikwazo ni kawaida kutekelezwa kwa kutumia lock software. Darasa moja la algorithms, inayojulikana kama algorithms ya bure ya kufunga na bila kusubiri , inaepuka kabisa matumizi ya kufuli na vikwazo. Hata hivyo, mbinu hii kwa ujumla ni vigumu kutekeleza na inahitaji miundo data iliyoundwa kwa usahihi.

Sio matokeo yote ya kueneza parallization kwa kasi. Kwa ujumla, kama kazi inagawanywa katika nyuzi zaidi na zaidi, nyuzi hizo hutumia sehemu inayoongezeka ya muda wao kuwasiliana. Hatimaye, uongozi kutoka kwa mawasiliano unatawala wakati uliotumiwa kutatua tatizo hilo, na kueneza zaidi (yaani, kugawanisha mzigo wa kazi juu ya nyuzi zaidi) huongezeka badala ya kupungua kwa muda unaohitajika kumaliza. Hii inajulikana kama kupungua kwa sambamba . [19]

Nzuri-grained, coarse-grained, na kufanana kufanana kulinganisha

Maombi huwekwa mara kwa mara kulingana na mara ngapi subtasks zao zinahitaji kusawazisha au kuzungumza. Programu inaonyesha ulinganifu mzuri wa kufanana ikiwa sehemu zake lazima ziwasiliane mara nyingi kwa pili; inaonyesha parallelism iliyosababishwa kwa kiasi kikubwa ikiwa haitawasiliana mara nyingi kwa pili, na inaonyesha kufanana kwa kufanana ikiwa haipaswi kuwasiliana. Maombi ya sambamba ya kuzingatia hufikiriwa kuwa rahisi kueneza.

Mifano ya kuzingatia

Lugha zinazofanana na kompyuta na sambamba zinafaa kuwa na mfano wa msimamo (pia unajulikana kama mfano wa kumbukumbu). Mfano wa thabiti hufafanua sheria za jinsi shughuli za kumbukumbu za kompyuta zinatokea na jinsi matokeo yanavyozalishwa.

Moja ya mifano ya kwanza uthabiti alikuwa Leslie Lamport wa mtiririko uthabiti mfano. Uwezo wa usawa ni mali ya mpango sambamba kwamba utekelezaji wake sambamba hutoa matokeo sawa kama mpango mfululizo. Hasa, programu ni sequentially thabiti kama "... matokeo ya utekelezaji wowote ni sawa na kama shughuli za wasindikaji wote walifanywa kwa utaratibu fulani wa uwiano, na shughuli za kila processor binafsi zinaonekana katika mlolongo huu kwa utaratibu uliowekwa na mpango ". [20]

Kumbukumbu ya shughuli za programu ni aina ya kawaida ya mfano wa uwiano. Kumbukumbu ya utayarishaji wa Programu inadaipa kutoka nadharia ya dhana dhana ya shughuli za atomiki na inatumika kwa upatikanaji wa kumbukumbu.

Hisabati, mifano hii inaweza kuwakilishwa kwa njia kadhaa. Vivuli vya Petri , ambavyo vilianzishwa katika Thesis ya Daktari wa Carl Adam Petri, ilikuwa jaribio la awali la kuunganisha sheria za mifano ya uwiano. Nadharia ya data ya baadaye ilijengwa juu ya haya, na architectures Dataflow iliundwa ili kutekeleza kimwili mawazo ya nadharia ya dataflow. Kuanzia mwishoni mwa miaka ya 1970, taratili ya mchakato kama vile Calculus ya Mawasiliano ya Utaratibu na Utaratibu wa Kuwasiliana Uliopita ilianzishwa ili kuruhusu mawazo ya algebraic kuhusu mifumo iliyojumuisha vipengele vya kuingiliana. Vidokezo vya hivi karibuni kwenye familia ya mahesabu ya mchakato, kama vile π-calculus , wameongeza uwezo wa kufikiria juu ya topolojia ya nguvu. Vitambulisho kama vile TLA ya Lamport, na mifano ya hisabati kama vile athari na michoro za tukio la Actor , pia zimeandaliwa kuelezea tabia ya mifumo ya kawaida.

Usimamizi wa Flynn

Michael J. Flynn aliunda mojawapo ya mifumo ya kwanza ya makundi ya kompyuta na mipango inayofanana (na sequential), ambayo sasa inajulikana kama uongozi wa Flynn . Flynn mipangilio ya kompyuta na kompyuta na kama walikuwa wanafanya kazi kwa seti moja au seti nyingi za maagizo, na ikiwa maelekezo hayo yalikuwa au kutumia seti moja au data nyingi.

Utawala wa moja-maagizo-moja-data (SISD) ni sawa na mpango mzima. Taaluma moja-maagizo-data nyingi (SIMD) ni sawa na kufanya operesheni hiyo mara kwa mara juu ya kuweka data kubwa. Hii ni kawaida kufanyika katika maombi ya usindikaji wa ishara . Takwimu nyingi-maelekezo-moja-moja (MISD) ni utunzaji wa kawaida. Wakati usanifu wa kompyuta ili kukabiliana na hili ulibadilishwa (kama vile vitu vya systolic ), maombi machache yanayolingana na darasa hili limefanyika. Programu nyingi za maelekezo-nyingi-data (MIMD) ni aina ya kawaida ya programu zinazofanana.

Kwa mujibu wa David A. Patterson na John L. Hennessy , "Mashine fulani ni mahulufu ya makundi haya, bila shaka, lakini mfano huu wa kawaida umeishi kwa sababu ni rahisi, rahisi kuelewa, na hutoa namba nzuri ya kwanza.Ni pia- labda kwa sababu ya kuelewa kwake-mpango uliotumiwa sana. " [21]

Aina za kulinganisha

Ulinganisho wa kiwango cha chini

Kutoka kwa ujio wa teknolojia ya usambazaji wa kompyuta ya kiwango kikubwa sana (VLSI) katika miaka ya 1970 hadi mwaka wa 1986, kasi ya juu katika usanifu wa kompyuta iliendeshwa na mara mbili ya ukubwa wa neno la kompyuta -kiasi cha maelezo ambayo processor inaweza kuendesha kwa kila mzunguko. [22] Kuongezeka kwa ukubwa wa neno kunapunguza idadi ya maagizo ambayo processor lazima ifanyie kufanya operesheni kwenye vigezo ambavyo ukubwa wake ni mkubwa zaidi kuliko urefu wa neno. Kwa mfano, ambapo processor 8-bit lazima kuongeza mbili mbili -bit integers , processor lazima kwanza kuongeza 8 chini ya bits ili kutoka integer kila kutumia maagizo ya ziada ya maagizo, kisha kuongeza 8 bits ya juu-order kutumia add-na maagizo ya gari na kubeba kidogo kutoka kwa ziada ya ziada; hivyo, processor 8-bit inahitaji maelekezo mawili ya kukamilisha operesheni moja, ambapo processor 16-bit itakuwa na uwezo wa kukamilisha operesheni kwa maagizo moja.

Kwa kihistoria, microprocessors 4-bit zilibadilishwa na 8-bit, kisha 16-bit, kisha microprocessors 32-bit. Mwelekeo huu umekamilika na kuanzishwa kwa wasindikaji 32-bit, ambayo imekuwa kiwango kwa kompyuta kwa madhumuni ya jumla kwa miongo miwili. Hadi kufikia mapema miaka ya 2000, na ujio wa architectures x86-64 , wafanyabiashara 64-bit wamekuwa kawaida.

Ulinganisho wa kiwango cha mafundisho

Programu ya usanii bila bomba . Inachukua mzunguko wa saa tano ili kukamilisha maelekezo moja na hivyo mchakato unaweza kutoa utendaji wa subscalar ( IPC = 0.2 <1 ).
Programu ya mitambo ya tano inayoweza kusambazwa . Katika hali nzuri zaidi, inachukua mzunguko wa saa moja ili kukamilisha maelekezo moja na hivyo mchakato unaweza kutoa utendaji wa scalar ( IPC = 1 ).

Programu ya kompyuta ni, kwa kweli, mkondo wa maelekezo yaliyotokana na processor. Bila kufanana kwa kiwango cha maelekezo, mchakato unaweza tu kutoa maagizo chini ya moja kwa mzunguko wa saa ( IPC <1 ). Wasindikaji hawa wanajulikana kama wasindikaji wa subscalar . Maagizo haya yanaweza kuagizwa tena na kuunganishwa katika vikundi ambazo hufanyika kwa usawa bila kubadilisha matokeo ya programu. Hii inajulikana kama parallelism ya kiwango cha mafundisho. Maendeleo katika parallelism ya kiwango cha mafundisho yaliongozwa na usanifu wa kompyuta kutoka katikati ya miaka ya 1980 mpaka katikati ya miaka ya 1990. [23]

Wasindikaji wote wa kisasa wana mabomba ya mafunzo mengi . Kila hatua katika bomba inafanana na hatua tofauti ambayo processor hufanya juu ya maelekezo hayo katika hatua hiyo; mchakato na N -bomba bomba inaweza kuwa na N maelekezo tofauti katika hatua tofauti za kukamilika na hivyo inaweza kutoa maelekezo moja kwa mzunguko wa saa ( IPC = 1 ). Wasindikaji hawa wanajulikana kama wasindikaji wa scalar . Mfano wa maonyesho ya processor ya pipelini ni programu ya RISC , na hatua tano: Kuchunguza maelekezo (IF), maelekezo ya maelekezo (ID), kutekeleza (EX), upatikanaji wa kumbukumbu (MEM), na kujiandikisha kuandika tena (WB). Pentium 4 processor alikuwa na bomba la hatua 35. [24]

Programu ya tano inayoweza kusambazwa kwa usindikaji superscalar . Katika mazingira mazuri zaidi, inachukua mzunguko wa saa moja ili kukamilisha maelekezo mawili na hivyo mchakato unaweza kutoa utendaji superscalar ( IPC = 2> 1 ).

Wasindikaji wengi wa kisasa pia wana vitengo vingi vya utekelezaji . Mara nyingi huchanganya kipengele hiki na pipelining na hivyo inaweza kutoa maagizo zaidi ya moja kwa mzunguko wa saa ( IPC> 1 ). Wasindikaji hawa wanajulikana kama wasindikaji wa superscalar . Maelekezo yanaweza kuunganishwa tu ikiwa hakuna utegemezi wa data kati yao. Kadi ya ubadilishaji wa alama na taratibu za Tomasulo (ambazo ni sawa na alama ya alama lakini zinafanya matumizi ya rejista ya kujiandikisha ) ni mbinu mbili za kawaida za kutekeleza utekelezaji wa nje na utaratibu wa kufanana na kiwango.

Kazi ya kulinganisha

Ulinganifu wa kazi ni tabia ya mpango sambamba kwamba "hesabu tofauti kabisa zinaweza kufanywa kwa seti moja au tofauti za data". [25] Hii inatofautiana na kufanana kwa data, ambapo hesabu sawa hufanyika kwenye seti sawa za data. Ulinganifu wa kazi unahusisha uharibifu wa kazi katika kazi ndogo na kisha kugawa kila kazi ndogo kwa mchakato wa utekelezaji. Wachunguzi watafanya kazi hizi ndogo wakati huo huo na mara nyingi kwa kushirikiana. Kazi ya kufanana haifai kwa ukubwa wa tatizo. [26]

Duka

Kumbukumbu na mawasiliano

Kumbukumbu kuu katika kompyuta sambamba ni kumbukumbu ya pamoja (iliyoshirikiwa kati ya mambo yote ya usindikaji katika nafasi moja ya anwani ), au kumbukumbu iliyosambazwa (ambayo kila kipengele cha usindikaji kina nafasi ya anwani ya ndani). [27] Distributed kumbukumbu hii ni kweli kwamba kumbukumbu kimantiki kusambazwa, lakini mara nyingi ina maana kwamba ni kimwili kusambazwa pia. Kusambazwa kumbukumbu ya pamoja pamoja na kumbukumbu ya utambulisho huchanganya mbinu mbili, ambapo kipengele cha usindikaji kina kumbukumbu ya ndani na kufikia kumbukumbu kwenye wasindikaji wasio wa ndani. Upatikanaji wa kumbukumbu za ndani ni kawaida kwa kasi kuliko upatikanaji wa kumbukumbu isiyo ya ndani.

Mtazamo wa kimantiko wa usanifu usio wa kawaida wa kumbukumbu (NUMA). Wachunguzi katika saraka moja wanaweza kufikia kumbukumbu ya saraka hiyo kwa latency chini kuliko wanaweza kufikia kumbukumbu katika kumbukumbu nyingine ya saraka.

Usanifu wa kompyuta ambazo kila kipengele cha kumbukumbu kuu kinaweza kupatikana kwa latency sawa na bandwidth wanajulikana kama mifumo ya upatikanaji wa kumbukumbu (UMA) sare . Kwa kawaida, hiyo inaweza kupatikana tu kwa mfumo wa kumbukumbu uliogawanyika , ambapo kumbukumbu haipatikani kimwili. Mfumo ambao hauna mali hii unajulikana kama usanifu wa kumbukumbu isiyo ya sare (NUMA). Mipangilio ya kumbukumbu ya kusambazwa ina upatikanaji wa kumbukumbu isiyo ya sare.

Mifumo ya kompyuta hutumia caches -small na kumbukumbu za haraka iko karibu na processor ambayo huhifadhi nakala za muda za maadili ya kumbukumbu (karibu na hali ya kimwili na ya mantiki). Mifumo ya kompyuta sambamba ina shida na caches ambayo inaweza kuhifadhi thamani sawa katika eneo zaidi ya moja, na uwezekano wa utekelezaji wa programu sahihi. Kompyuta hizi zinahitaji mfumo wa ushirikiano wa cache , unaozingatia maadili yaliyofichwa na kwa uangalizi wa kimkakati, hivyo kuhakikisha utekelezaji sahihi wa programu. Kupiga kura kwa basi ni mojawapo ya mbinu za kawaida za kuweka wimbo wa maadili ambayo hupatikana (na hivyo inapaswa kusafishwa). Kubuni mifumo mikubwa, ya juu ya utendaji wa cache ya ushirikiano ni tatizo ngumu sana katika usanifu wa kompyuta. Matokeo yake, usanifu wa kompyuta za kumbukumbu za kumbukumbu hazizidi kupanua kama mifumo ya kumbukumbu ya kusambazwa. [27]

Programu ya mchakato na mawasiliano ya kumbukumbu ya mchakato inaweza kutekelezwa katika vifaa kwa njia kadhaa, ikiwa ni pamoja na kupitia kwa pamoja (ama multiported au multiplexed ) kumbukumbu, kubadili msalaba , basi iliyoshirikishwa au mtandao wa kuunganisha wa mingi ya topolojia ikiwa ni pamoja na nyota , pete , mti , hypercube , mafuta hypercube (hypercube na processor zaidi ya moja katika nodi), au n-dimensional mesh .

Kompyuta sambamba kulingana na mitandao inayounganishwa inahitaji kuwa na njia fulani ya kuendesha njia ili kuwezesha ujumbe kati ya nodes ambazo haziunganishwa moja kwa moja. Ya kati ya kutumika kwa ajili ya mawasiliano kati ya wasindikaji inawezekana kuwa ya hierarchical katika mashine kubwa ya multiprocessor.

Darasa la kompyuta za sambamba

Kompyuta za sambamba zinaweza kuhesabiwa kulingana na kiwango ambacho vifaa vinasaidia kufanana. Uainishaji huu ni sawa kabisa na umbali kati ya nodes ya msingi ya kompyuta. Hizi sio tofauti kwa pamoja; kwa mfano, makundi ya multiprocessors ya kawaida ni ya kawaida.

Mbalimbali ya msingi ya kompyuta

Programu ya msingi ya msingi ni processor inayojumuisha vitengo vingi vya usindikaji (huitwa "vidonda") kwenye chip sawa. Programu hii inatofautiana na mchezaji wa superscalar , ambayo inajumuisha vitengo vingi vya utekelezaji na inaweza kutoa maelekezo mengi kwa mzunguko wa saa kutoka kwenye mkondoni wa maelekezo moja (thread); Kwa kulinganisha, mchakato wa msingi wa msingi unaweza kutoa maelekezo mengi kwa mzunguko wa saa kutoka kwenye mito mingi ya maelekezo. Microprocessor ya kiini ya IBM , iliyoundwa kwa ajili ya matumizi katika Sony PlayStation 3 , ni programu maarufu ya msingi. Kila msingi katika processor mbalimbali ya msingi inaweza uwezekano kuwa superscalar pia-yaani, kila mzunguko wa saa, kila msingi inaweza kutoa maelekezo mengi kutoka kwenye thread moja.

Mchanganyiko wa mfululizo wa pamoja (ambao Intel ya Hyper-Threading inajulikana zaidi) ilikuwa aina ya mapema ya msingi wa uongo. Programu inayoweza kuunganisha mara moja kwa moja inajumuisha vitengo vingi vya utekelezaji katika kitengo hicho cha usindikaji-ambacho kina usanifu wa superscalar-na kinaweza kutoa maelekezo mengi kwa mzunguko wa saa kutoka kwenye thread nyingi . Kufanya multithreading kwa upande mwingine kunajumuisha kitengo cha kutekeleza moja katika kitengo hicho cha usindikaji na kinaweza kutoa maelekezo moja kwa wakati kutoka nyuzi nyingi .

Mipangilio ya multimetricing

Multiprocessor (SMP) ni mpangilio wa kompyuta na wasindikaji wengi wanaofanana na kushiriki kumbukumbu na kuunganisha kupitia basi. [28] Ushindano wa basi unazuia usanifu wa mabasi kutoka kwa kasi. Matokeo yake, SMPs kwa jumla hazijumuishi wasindikaji zaidi ya 32. [29] Kwa sababu ya ukubwa mdogo wa wasindikaji na kupungua kwa kiasi kikubwa kwa mahitaji ya bandwidth ya basi yaliyopatikana kwa caches kubwa, multiprocessors kama hiyo ni ya gharama nafuu sana, isipokuwa kwamba kiasi cha kutosha cha bandwidth kinapo. [28]

Kusambazwa kwa kompyuta

Kompyuta iliyosambazwa (pia inayojulikana kama multiprocessor ya kumbukumbu iliyosambazwa) ni mfumo wa kompyuta wa kusambazwa kumbukumbu ambapo vipengele vya usindikaji vinashirikiwa na mtandao. Kompyuta zilizosambazwa zinaweza kupanuka. Maneno " kompyuta ya kawaida ", " kompyuta sambamba ", na "usambazaji wa kompyuta" zina mwingiliano, na hakuna tofauti iliyo wazi kati yao. [30] Mfumo huo huo unaweza kuwa na "sambamba" na "kusambazwa"; wasindikaji katika mfumo wa kawaida wa kusambazwa huendeshwa kwa wakati sawa. [31]

Cluster kompyuta
Nguzo ya Beowulf .

Kifungu ni kikundi cha kompyuta ambazo zinaunganishwa kwa karibu, ili kwa namna fulani zinaweza kuonekana kama kompyuta moja. [32] Makundi yanajumuisha mashine nyingi za kusimama zilizounganishwa na mtandao. Wakati mashine katika nguzo haipaswi kuwa na usawa, kupakia kusawazisha ni ngumu zaidi ikiwa hawana. Aina ya kawaida ya nguzo ni nguzo ya Beowulf , ambayo ni nguzo iliyotumiwa kwenye kompyuta nyingi za kufanana na kompyuta za rafu zilizounganishwa na mtandao wa eneo la ndani la TCP / IP Ethernet . [33] Teknolojia ya Beowulf ilianzishwa awali na Thomas Sterling na Donald Becker . Wengi wa waandishi wa juu TOP500 ni makundi. [34]

Kwa sababu mifumo ya kompyuta ya gridi (iliyoelezwa hapo chini) inaweza kushughulikia shida za kufanana kwa aibu, makundi ya kisasa yanafanyika kushughulikia matatizo magumu zaidi-matatizo ambayo yanahitaji nodes kushiriki matokeo ya kati kwa kila mmoja mara kwa mara zaidi. Hii inahitaji bandwidth ya juu na, muhimu zaidi, mtandao wa chini wa latency . Wengi wa wavumbuzi wa kihistoria na wa sasa hutumia vifaa vya mtandao vinavyotengenezwa vizuri vilivyoundwa kwa ajili ya kompyuta ya nguzo, kama vile Mtandao wa Gray wa Cray. [35] Kuanzia mwaka wa 2014, watu wengi wa kisasa wa kisasa hutumia vifaa vya mtandao vya kiwango cha chini-rafu, mara nyingi Myrinet , InfiniBand , au Gigabit Ethernet .

Massively sambamba kompyuta
Baraza la Mawaziri kutoka kwa bwana la Blue Gene / L ya Bunge la Bunge la IBM .

Processor massively sambamba (MPP) ni kompyuta moja na wasindikaji wengi wa mtandao. Wabunge wana sifa nyingi kama vile makundi, lakini MPP zina mitandao maalum ya kuunganisha (wakati makundi hutumia vifaa vya bidhaa kwa ajili ya mitandao). Wabunge pia huwa na ukubwa kuliko makundi, kwa kawaida kuwa na "zaidi zaidi" kuliko wasindikaji 100. [36] Katika MPP, "kila CPU ina kumbukumbu yake mwenyewe na nakala ya mfumo wa uendeshaji na matumizi. Kila mfumo unawasiliana na wengine kwa njia ya kuunganisha kasi." [37]

Blue Gene / L ya IBM , wajumbe wa tano wa haraka sana ulimwenguni kwa mujibu wa Juni 2009 TOP500 cheo, ni MPP.

Gridi ya kompyuta

Kompyuta ya gridi ni aina iliyosambazwa zaidi ya kompyuta sambamba. Inatumia kompyuta zinazowasiliana kwenye mtandao kufanya kazi kwenye tatizo lililopewa. Kwa sababu ya bandwidth chini na latency juu sana inapatikana kwenye mtandao, kusambazwa kompyuta kawaida mikataba tu na matatizo aibu sambamba . Programu nyingi za usambazaji wa kompyuta zimeundwa, ambazo SETI @ nyumbani na Folding @ nyumbani ni mifano inayojulikana zaidi. [38]

Matumizi mengi ya kompyuta ya gridi ya taifa hutumia faili ya katikati (programu ambayo inakaa kati ya mfumo wa uendeshaji na programu ya kusimamia rasilimali za mtandao na kuimarisha interface ya programu). Kompyuta ya kawaida ya kusambazwa katikati ya kompyuta ni Berkeley Open Infrastructure kwa Network Computing (BOINC). Mara nyingi, programu ya kompyuta iliyosambazwa hutumia "mzunguko wa vipuri", kufanya mahesabu wakati wa kompyuta.

Kompyuta maalum za sambamba

Ndani ya kompyuta inayofanana, kuna vifaa maalum vinavyolingana ambavyo vinabaki maeneo ya nia ya maslahi. Wakati sio maalum ya kikoa , huwa hutumika kwa madarasa machache tu ya matatizo yanayofanana.

Kubadilisha upya kompyuta na mipangilio ya malango ya programmable

Kompyuta inayoweza kurekebishwa ni matumizi ya safu ya safu inayowekwa na shamba (FPGA) kama mchakato wa ushirikiano kwa kompyuta yenye lengo la jumla. FPGA ni, kwa kweli, chip chip kompyuta ambayo inaweza rewire yenyewe kwa kazi kupewa.

FPGA inaweza kupangwa na lugha za maelezo ya vifaa kama vile VHDL au Verilog . Hata hivyo, programu katika lugha hizi zinaweza kuchochea. Wachuuzi kadhaa wameunda C kwa lugha za HDL ambazo zinajaribu kutekeleza syntax na semantics ya lugha ya programu ya C , ambayo wengi wa programu wanajua. Lugha inayojulikana zaidi kwa lugha za HDL ni Mitrion-C , Impulse C , DIME-C , na Handel-C . Subsets maalum ya SystemC kulingana na C + + pia inaweza kutumika kwa kusudi hili.

Uamuzi wa AMD wa kufungua teknolojia yake ya HyperTransport kwa wauzaji wa tatu imekuwa teknolojia inayowezesha kwa kompyuta ya juu ya utendaji upya. [39] Kulingana na Michael R. D'Amour, Afisa Mkuu wa Uendeshaji wa DRC Computer Corporation , "wakati tulipokuwa tukiingia kwa AMD, walituita 'wanyang'anyi wa tundu .' Sasa wanatuita washirika wao. " [39]

Kompyuta-madhumuni ya jumla kwenye vitengo vya usindikaji wa picha (GPGPU)
Nvidia ya Tesla GPGPU kadi

Kompyuta ya madhumuni ya vitengo vya usindikaji wa picha (GPGPU) ni mwenendo wa hivi karibuni katika utafiti wa uhandisi wa kompyuta. GPU ni wasindikaji wa ushirikiano ambao umetimizwa sana kwa usindikaji wa picha za kompyuta . [40] Usindikaji wa graphics za kompyuta ni shamba linaloongozwa na shughuli za sambamba za data-hususan taratibu za matrix za mstari .

Katika siku za mwanzo, mipango ya GPGPU ilitumia API za kawaida za graphics kwa ajili ya kutekeleza programu. Hata hivyo, lugha kadhaa mpya za programu na majukwaa yamejengwa ili kufanya hesabu ya jumla ya GPU na mazingira ya programu ya Nvidia na AMD ikitoa programu kwa CUDA na Stream SDK kwa mtiririko huo. Lugha nyingine za programu za GPU ni pamoja na BrookGPU , PeakStream , na RapidMind . Nvidia pia imetoa bidhaa maalum kwa hesabu katika mfululizo wao wa Tesla . Ushirikiano wa teknolojia ya Khronos Group imetoa specifikationer ya OpenCL , ambayo ni mfumo wa kuandika mipango inayofanya kila jukwaa linalo na CPUs na GPUs. AMD , Apple , Intel , Nvidia na wengine wanaunga mkono OpenCL .

Mipangilio maalum ya maombi ya

Mtazamo maalum wa mzunguko maalum (ASIC) umewekwa kwa ajili ya kushughulika na maombi sawa. [41] [42] [43]

Kwa sababu ASIC ni (kwa ufafanuzi) maalum ya programu iliyotolewa, inaweza kufanikiwa kikamilifu kwa programu hiyo. Matokeo yake, kwa ajili ya programu inayotolewa, ASIC huelekea kufuta kompyuta ya kusudi. Hata hivyo, ASIC zinaundwa na photolithography ya UV . Utaratibu huu unahitaji kuweka mask, ambayo inaweza kuwa ghali sana. Seti ya mask inaweza gharama zaidi ya dola za Kimarekani milioni. [44] (Wachache transistors wanahitaji chip, ghali mask itakuwa.) Wakati huo huo, utendaji ongezeko katika kompyuta kwa madhumuni ya jumla kwa wakati (kama ilivyoelezwa na sheria ya Moore ) huwa na kufuta faida hizi kwa moja tu au vizazi viwili vya chip. [39] Gharama ya kwanza ya awali, na tabia ya kukabiliwa na kompyuta ya Moore-inayotokana na madhumuni ya jumla, imetoa ASICs zisizofahamika kwa programu nyingi za kompyuta zinazofanana. Hata hivyo, baadhi yamejengwa. Mfano mmoja ni mashine ya PFLOPS RIKEN MDGRAPE-3 ambayo hutumia ASIC za desturi kwa simulation miundo miundo .

Wasindikaji Vector
Cray-1 ni mchakato wa vector.

Programu ya vector ni CPU au mfumo wa kompyuta ambayo inaweza kutekeleza maelekezo sawa juu ya seti kubwa za data. Wasindikaji wa Vector wana shughuli za kiwango cha juu ambazo zinafanya kazi kwenye safu za namba za namba au vectors. Mfano wa uendeshaji wa vector ni A = B × C , ambapo A , B , na C ni kila vectors ya kipengele 64 cha idadi ya 64-bit yaliyoelekea . [45] Wao ni karibu na uhusiano wa Flynn ya SIMD. [45]

Kompyuta zilizopatikana zimejulikana kwa kompyuta zao za usindikaji wa vector katika miaka ya 1970 na 1980. Hata hivyo, wasindikaji wa vector-wote kama CPUs na kama mifumo kamili ya kompyuta-kwa kawaida wamepotea. Maelekezo ya kisasa ya processor yanajumuisha maagizo ya usindikaji wa vector, kama vile Freescale Semiconductor 's AltiVec na Intel 's Streaming SIMD Extensions (SSE).

Programu ya

Lugha sambamba za programu

Lugha za programu za programu , maktaba , API , na mifano ya programu zinazofanana (kama vile mifupa ya algorithm ) zimeundwa kwa ajili ya programu za kompyuta zinazofanana. Hizi zinaweza kwa ujumla kugawanywa katika madarasa kulingana na mawazo wanayofanya kuhusu kumbukumbu ya usanifu wa usanifu wa kumbukumbu, usambazaji kumbukumbu, au kusambazwa kumbukumbu ya kusambazwa. Lugha za programu za kumbukumbu za ubia zinawasiliana na kuendesha vigezo vya kumbukumbu za pamoja. Kumbukumbu iliyosababishwa hutumia ujumbe unaopita . Threads POSIX na OpenMP ni mbili za API za kumbukumbu za pamoja ambazo zinatumiwa sana, ambapo Interface Passing Interface (MPI) ndiyo API ya mfumo wa ujumbe unaotumiwa sana. [46] Dhana moja iliyotumiwa katika mipango ya sambamba na programu ni dhana ya baadaye , ambapo sehemu moja ya mpango inahidi kutoa dhamana inayohitajika kwenye sehemu nyingine ya programu wakati mwingine.

Kampuni ya CAPS na Pathscale pia huratibu jitihada zao za kufanya miongozo ya msingi ya programu sambamba (HMPP) kwa kiwango cha wazi kinachoitwa OpenHMPP . Mfumo wa programu ya OpenHMPP wa maagizo hutoa syntax kutekeleza uchanganuzi wa kompyuta kwenye kasi ya vifaa na kuboresha harakati za data na / kutoka kumbukumbu ya vifaa. Maelekezo ya OpenHMPP yanaelezea simu ya utaratibu wa kijijini (RPC) kwenye kifaa cha kasi (kwa mfano GPU) au zaidi kwa ujumla seti ya vidonda. Maagizo yanaelezea codes C au Fortran kuelezea seti mbili za utendaji: kupakuliwa kwa taratibu (kutajwa codelets) kwenye kifaa kijijini na kuboresha uhamisho wa data kati ya kumbukumbu kuu ya CPU na kumbukumbu ya kasi.

Kuongezeka kwa GPU za walaji kumesababisha msaada wa nambari za kielelezo , ama katika APIs za picha (inayojulikana kama vivuli vya kielelezo ), katika API zilizojitokeza (kama OpenCL ), au kwa upanuzi wa lugha nyingine.

Uwezeshaji wa moja kwa moja

Ugawanishaji wa moja kwa moja wa mpango mfululizo na compiler ni grail takatifu ya kompyuta sambamba. Licha ya miongo kadhaa ya kazi na watafiti wa compiler, uhamasishaji wa moja kwa moja umekuwa na ufanisi mdogo tu. [47]

Lugha nyingi za programu za sambamba zinabaki wazi kabisa sambamba au (kwa bora) kwa sehemu isiyofaa , ambayo programu hutoa maagizo ya compiler ya kueneza kwa njia. Chache kikamilifu thabiti sambamba programu lugha exist- katani , Sambamba Haskell , SequenceL , System C (kwa kuuza FPGA ), Mitrion-C , VHDL na Verilog .

Maombi checkpointing

Kama mfumo wa kompyuta inakua katika utata, wakati wa maana kati ya kushindwa kawaida hupungua. Ufuatiliaji wa Maombi ni mbinu ambayo mfumo wa kompyuta huchukua "snapshot" ya programu-rekodi ya ugawaji wote wa rasilimali za sasa na mataifa tofauti, sawa na uharibifu wa msingi -; habari hii inaweza kutumika kurejesha programu ikiwa kompyuta inapaswa kushindwa. Ufuatiliaji wa maombi unamaanisha kuwa mpango unapaswa kuanzia kutoka kwa kuangalia yake ya mwisho tu badala ya mwanzo. Wakati ukaguzi unatoa faida katika hali mbalimbali, ni muhimu sana katika mifumo ya sambamba na idadi kubwa ya wasindikaji kutumika katika kompyuta high utendaji . [48]

Njia za algorithmic

Kama kompyuta zinazofanana zinazidi kuwa kubwa na kwa kasi, inakuwa inafanikiwa kutatua matatizo ambayo hapo awali ilichukua muda mrefu sana kuendesha. Kompyuta sambamba hutumiwa katika maeneo mbalimbali, kutoka kwa bioinformatics ( uchambuzi wa protini na ufuatiliaji wa mlolongo ) kwa uchumi ( fedha za hisabati ). Aina ya matatizo ya kawaida inapatikana katika programu zinazofanana za kompyuta ni: [49]

  • algebra nyembamba ;
  • algebra nyepesi nyepesi;
  • mbinu za spectral (kama Cooley-Tukey haraka Fourier kubadilisha )
  • N -matatizo (kama Barnes-Hut simulation );
  • matatizo ya gridi ya taifa (kama vile njia za Lattice Boltzmann );
  • matatizo ya gridi isiyojengwa (kama yaliyopatikana katika uchambuzi wa kipengele cha mwisho );
  • Monte Carlo njia ;
  • mantiki ya mantiki (kama vile mbinu za kielelezo vya nguvu za kielelezo );
  • graph traversal (kama vile kuchagua taratibu );
  • programu ya nguvu ;
  • tawi na njia zilizofungwa ;
  • mifano ya picha (kama vile kuchunguza mifano ya siri ya Markov na kujenga mitandao ya Bayesian );
  • simulation mashine ya hali ya mwisho .

Uvumilivu wa kushindwa

Kompyuta sambamba pia inaweza kutumika kwa kubuni ya mifumo ya kompyuta yenye kuhimili kosa , hasa kupitia mifumo ya lockstep inayofanya operesheni sawa katika sambamba. Hii hutoa redundancy ikiwa sehemu moja inapaswa kushindwa, na pia inaruhusu kutambua kosa moja kwa moja na kusahihisha kosa ikiwa matokeo yanatofautiana. Mbinu hizi zinaweza kutumiwa kusaidia kuzuia mshtuko wa tukio unaosababishwa na makosa ya muda mfupi. [50] Ingawa hatua za ziada zinahitajika katika mifumo iliyoingizwa au maalumu, njia hii inaweza kutoa njia ya gharama nafuu ya kufikia upungufu wa kawaida katika mifumo ya kibiashara.

Historia

ILLIAC IV , " wanaofahamika zaidi kuliko wajumbe wa supercomputers". [51]

Asili ya kweli (MIMD) kufanana inarudi kwa Luigi Federico Menabrea na Mchoro wake wa Engine Engine Invented na Charles Babbage . [52] [53] [54]

Mnamo Aprili 1958, S. Gill (Ferranti) alizungumzia programu sambamba na haja ya kuunganisha na kusubiri. [55] Pia mwaka 1958, IBM watafiti John Cocke na Daniel Slotnick kujadiliwa matumizi ya usambamba katika hesabu ya namba kwa mara ya kwanza. [56] Kampuni ya Burroughs ilianzisha D825 mwaka wa 1962, kompyuta ya processor nne iliyofikia hadi moduli 16 za kumbukumbu kupitia crossbar . [57] Mwaka wa 1967, Amdahl na Slotnick walichapisha mjadala juu ya uwezekano wa usindikaji sambamba katika Shirikisho la Shirikisho la Shirikisho la Shirika la Habari. [56] Ilikuwa wakati wa mjadala huu sheria ya Amdahl iliundwa ili kufafanua kikomo cha kasi-up kwa sababu ya kufanana.

Mnamo mwaka wa 1969, kampuni ya Honeywell ilianzisha mfumo wake wa kwanza wa Multics, mfumo wa multiprocessor unaoweza kulinganisha uwezo wa kuendesha hadi wasindikaji nane katika sambamba. [56] C.mmp , mradi wa miaka mingi wa mradi wa processor katika Chuo Kikuu cha Carnegie Mellon , ulikuwa kati ya multiprocessors ya kwanza na wasindikaji wachache zaidi. [53] Multiprocessor ya kwanza ya kushikamana na mabasi na caches ya snooping ilikuwa Synapse N + 1 mwaka 1984. " [53]

Kompyuta za sambamba za SIMD zinaweza kufuatiwa nyuma ya miaka ya 1970. Msukumo wa kompyuta za SIMD mapema ulipunguza kuchelewa kwa lango la kitengo cha kudhibiti processor juu ya maelekezo mengi. [58] Mwaka wa 1964, Slotnick amependekeza kujenga kompyuta yenye uwiano mkubwa kwa Maabara ya Taifa ya Lawrence Livermore . [56] Mpango wake ulifadhiliwa na Shirika la Air la Marekani , ambalo lilikuwa jitihada za kwanza za SIMD zinazofanana na kompyuta, ILLIAC IV . [56] Ufunguo wa kubuni wake ulikuwa sawa na usawa wa juu, pamoja na wasindikaji hadi 256, ambayo iliruhusu mashine kufanya kazi kwenye dasasiti kubwa katika kile baadaye kitatambuliwa kama usindikaji wa vector . Hata hivyo, ILLIAC IV ilikuwa inaitwa "wanaofahamika zaidi kuliko wakuu wa supercomputers", kwa sababu mradi huo ulikuwa umekamilika kwa nne tu, lakini ilichukua miaka 11 na gharama karibu mara nne ya makadirio ya awali. [51] Hatimaye ilipokwisha kukimbia programu yake ya kwanza ya mwaka wa 1976, ilikuwa imefanikiwa na wajumbe wa kibiashara wa sasa kama vile Cray-1 .

Ubongo wa kibaiolojia kama kompyuta massively sambamba

Mwanzoni mwa miaka ya 1970, katika Maabara ya Sayansi ya Kompyuta ya MIT na Maabara ya Uhandisi , Marvin Minsky na Seymour Papert walianza kuendeleza kile kinachojulikana kama Soko la Nadharia ya Akili ambalo linaona ubongo wa kibiolojia kama kompyuta yenye ufanisi . Mnamo 1986, Minsky alichapisha Society of Mind , ambayo inasema kuwa "akili hupatikana kutoka kwa mawakala wengi wadogo, kila mtu asiye na mawazo yenyewe". [59] Nadharia inajaribu kufafanua jinsi tunayoita akili inaweza kuwa bidhaa ya mwingiliano wa sehemu zisizo za akili. Minsky anasema kwamba chanzo kikubwa cha mawazo juu ya nadharia ilitoka kwenye kazi yake katika kujaribu kujenga mashine inayotumia mkono wa roboti, kamera ya video, na kompyuta ya kujenga na vitalu vya watoto. [60]

Mifano sawa (ambazo pia huona ubongo wa kibiolojia kama kompyuta yenye uwiano mkubwa, yaani ubongo huundwa na makundi ya mawakala wa kujitegemea au wa kujitegemea) pia yalielezwa na:

Tazama pia

  • Orodha ya machapisho muhimu katika sambamba, sambamba, na kusambazwa kompyuta
  • Orodha ya mikutano ya kompyuta iliyosambazwa
  • Concurrency (sayansi ya kompyuta)
  • Programu sambamba
  • Programu inayofaa inayoweza kushughulikiwa
  • Manycore
  • Serializability
  • Mtoaji
  • Sambamba programu ya programu
  • Usindikaji wa Vector
  • Multi tasking

Marejeleo

  1. ^ Gottlieb, Allan; Almasi, George S. (1989). Kompyuta iliyo sawa sana . Redwood City, Calif .: Benjamin / Cummings. ISBN 0-8053-0177-1 .
  2. ^ SV Adve et al. (Novemba 2008). Utafiti wa Computing Sambamba katika Illinois: Agenda la UPCRC " (PDF). Sambamba @ Illinois, Chuo Kikuu cha Illinois huko Urbana-Champaign. "Mbinu kuu za faida hizi za utendaji-kuongezeka kwa mzunguko wa saa na nadhifu lakini mbinu za usanifu zinazidi kuwa ngumu-sasa zinapiga nguvu inayoitwa ukuta wa nguvu. Sekta ya kompyuta imekubali kuwa ongezeko la utendaji wa baadaye lazima lijitokeza kwa kuongeza idadi ya processors (au cores ) juu ya kufa, badala ya kufanya msingi mmoja kwenda haraka. "
  3. ^ Asanovic et al. Kale [hekima ya kawaida]: Nguvu ni bure, lakini transistors ni ghali. Mpya [hekima ya kawaida] ni [nguvu] ni ghali, lakini transistors ni "bure".
  4. ^ Asanovic, Krste et al. (Desemba 18, 2006). "Mazingira ya Utafiti wa Computing Sambamba: A View kutoka Berkeley" (PDF). Chuo Kikuu cha California, Berkeley. Ripoti ya Ufundi Na UCB / EECS-2006-183. "Kale [hekima ya kawaida]: Kuongezeka kwa mzunguko wa saa ni njia kuu ya kuboresha utendaji wa processor. Mpya [hekima ya kawaida]: Kuongezeka kwa kufanana ni njia kuu ya kuboresha utendaji wa processor ... Hata wawakilishi kutoka Intel, kampuni inayohusiana na 'saa ya juu' -speed ni bora ', alionya kwamba njia ya jadi ya kuongeza utendaji kwa kuongeza kasi ya saa wamekuwa kusukuma kwa mipaka yao.
  5. ^ "Concurrency sio kufanana", mkutano wa Waza Jan 11, 2012, Rob Pike ( slides ) ( video )
  6. ^ "Upatanisho dhidi ya Concurrency" . Haskell Wiki .
  7. ^ Hennessy, John L .; Patterson, David A .; Larus, James R. (1999). Shirika la kompyuta na kubuni: vifaa vya vifaa / programu (2. ed., Magazeti ya tatu. Ed.). San Francisco: Kaufmann. ISBN 1-55860-428-6 .
  8. ^ B Barney, Blaise. "Utangulizi wa Computing Parallel" . Maabara ya Taifa ya Lawrence Livermore . Ilifutwa 2007-11-09 .
  9. ^ Hennessy, John L .; Patterson, David A. (2002). Usanifu wa kompyuta / mbinu ya kiasi (3rd ed.). San Francisco, Calif .: Kimataifa ya Thomson. p. 43. ISBN 1-55860-724-2 .
  10. ^ Rabaey, Jan M. (1996). Mzunguko wa digital jumuishi: mtazamo wa kubuni . Mto wa Saddle ya juu, NJ: Hall ya Prentice. p. 235. ISBN 0-13-178609-1 .
  11. ^ Flynn, Laurie J. (Mei 8, 2004). "Intel Halts Maendeleo ya 2 Microprocessors Mpya" . New York Times . Iliondolewa Juni 5, 2012 .
  12. ^ Moore, Gordon E. (1965). "Vipunde vipengele vingi kwenye mzunguko jumuishi" (PDF) . Magazine Electronics . p. 4. Kuhifadhiwa kutoka kwa awali (PDF) mnamo 2008-02-18 . Ilipatikana mwaka 2006-11-11 .
  13. ^ Amdahl, Gene M. (1967). "Uthibitishaji wa mbinu moja ya mchakato wa kufikia uwezo mkubwa wa kompyuta" . Kuendelea AFIPS '67 (Spring) Mahakama ya Aprili 18-20, 1967, mkutano wa pamoja wa kompyuta pamoja na : 483-485. Nini : 10.1145 / 1465482.1465560 .
  14. ^ Brooks, Frederick P. (1996). Mthiriwa wa mwezi wa mantiki ya uhandisi wa programu (Anniversary ed., Repr. Na corr., 5. [Dr] ed.). Kusoma, Misa. [Ua]: Addison-Wesley. ISBN 0-201-83595-9 .
  15. ^ Michael McCool; James Reinders; Arch Robison (2013). Programu ya Sambamba iliyofanyika: Sampuli za Computation Ufanisi . Elsevier. p. 61.
  16. ^ Gustafson, John L. (Mei 1988). "Kupitia upya sheria ya Amdahl" . Mawasiliano ya ACM . 31 (5): 532-533. Nini : 10.1145 / 42411.42415 . Imehifadhiwa kutoka kwa asili ya 2007-09-27.
  17. ^ Bernstein, AJ (1 Oktoba 1966). "Uchambuzi wa Programu za Usindikaji Sambamba". Shughuli za IEEE kwenye Kompyuta za Kompyuta . EC-15 (5): 757-763. Nini : 10.1109 / PGEC.1966.264565 .
  18. ^ Roosta, Seyed H. (2000). Usindikaji sambamba na algorithms sambamba: nadharia na hesabu . New York, NY [ua]: Springer. p. 114. ISBN 0-387-98716-9 .
  19. ^ Kukanov, Alexey (2008-03-04). "Kwa nini mtihani rahisi unaweza kupata kupungua kwa sambamba" . Ilifutwa mwaka 2015-02-15 .
  20. ^ Lamport, Leslie (1 Septemba 1979). "Jinsi ya Kufanya Kompyuta Multiprocessor ambayo Inafanya Hatua Mipango Multiprocess". Shughuli za IEEE kwenye Kompyuta . C-28 (9): 690-691. Nini : 10.1109 / TC.1979.1675439 .
  21. ^ Patterson na Hennessy, p. 748.
  22. ^ Singh, David Culler; JP (1997). Usanifu wa kompyuta sawa ([Nachdr.] Ed.). San Francisco: Morgan Kaufmann Publ. p. 15. ISBN 1-55860-343-3 .
  23. ^ Culler et al. p. 15.
  24. ^ Patt, Yale (Aprili 2004). " Microprocessor Miaka kumi Kutoka Sasa: ​​Je! Ni Changamoto Je, Tunakutana Nao?" Archived 2008-04-14 katika Wayback Machine . (Wmv) Majadiliano maarufu ya Mhadhiri katika Chuo Kikuu cha Carnegie Mellon . Rudishwa tarehe 7 Novemba 2007.
  25. ^ Culler et al. p. 124.
  26. ^ Culler et al. p. 125.
  27. ^ B Patterson na Hennessy, s. 713.
  28. ^ B Hennessy na Patterson, s. 549.
  29. ^ Patterson na Hennessy, p. 714.
  30. ^ Ghosh (2007) , p. 10. Keidar (2008) .
  31. ^ Lynch (1996) , p. xix, 1-2. Peleg (2000) , p. 1.
  32. ^ Ni nini kuunganisha? Kamusi ya kompyuta ya kompyuta. Iliondolewa tarehe 7 Novemba 2007.
  33. ^ Beowulf ufafanuzi. PC Magazine . Iliondolewa tarehe 7 Novemba 2007.
  34. ^ Usanifu wa sehemu ya 06/2007 Uhifadhi 2007-11-14 kwenye Machine Wayback .. TOP500 Supercomputing Sites. Makundi hufanya 74.60% ya mashine kwenye orodha. Iliondolewa tarehe 7 Novemba 2007.
  35. ^ "Kuunganisha" Iliyohifadhiwa 2015-01-28 kwenye Mashine ya Wayback ..
  36. ^ Hennessy na Patterson, p. 537.
  37. ^ MPP ufafanuzi. PC Magazine . Iliondolewa tarehe 7 Novemba 2007.
  38. ^ Kirkpatrick, Scott (2003). "SHAHUZI YA KAMPUTI: Nyakati za Mbaya". Sayansi . 299 (5607): 668-669. Je : 10.1126 / sayansi.1081623 . PMID 12560537 .
  39. ^ B c D'Amour, Michael R., Afisa Mkuu Uendeshaji, DRC Kompyuta Corporation . "Mfumo wa Kielelezo Reconfigurable". Aliyeshiriki msemaji katika Chuo Kikuu cha Delaware, Februari 28, 2007.
  40. ^ Boggan, Sha'Kia na Daniel M. Pressel (Agosti 2007). GPU: Jukwaa linalojitokeza kwa Computation-Purpose Computation (PDF). ARL-SR-154, Lab ya Utafiti wa Jeshi la Marekani. Iliondolewa tarehe 7 Novemba 2007.
  41. ^ Maslennikov, Oleg (2002). "Mfumo wa Utekelezaji wa Programu za Utekelezaji wa Vipengele vya Programu katika Sambamba ASIC au FPGA-Based Systems na Mabadiliko Yake katika VHDL-Maelezo ya Programu ya Kudhibiti Element Udhibiti". Soma Vidokezo katika Sayansi ya Kompyuta , 2328/2002: p. 272.
  42. ^ Shimokawa, Y .; Fuwa, Y .; Aramaki, N. (18-21 Novemba 1991). "Sambamba ASIC VLSI neurocomputer kwa idadi kubwa ya neurons na bilioni uhusiano kwa kasi ya pili" . Mkutano wa Pamoja wa Kimataifa juu ya Mtandao wa Neural . 3 : 2162-2167. Je : 10.1109 / IJCNN.1991.170708 . ISBN 0-7803-0227-3 .
  43. ^ Kuku, Kevin P .; Irwin, Mary Jane; Owens, Robert M. (Julai 1998). "Sambamba ASIC Architecture kwa Fractal Image Coding Coding". Journal ya VLSI Signal Processing . 19 (2): 97-113. Je : 10.1023 / A: 1008005616596 .
  44. ^ Kahng, Andrew B. (Juni 21, 2004) " Kuchunguza Tatizo la DFM katika Sekta ya Semiconductor Archived 2008-01-31 katika Machine Wayback .." Chuo Kikuu cha California, San Diego. "Mradi wa baadaye wa teknolojia ya viwanda (DFM) lazima kupunguza gharama [matumizi yasiyo ya kurejesha] gharama na kushughulikia moja kwa moja viwanda [matumizi yasiyo ya kurejesha] - gharama ya kuweka mask na kadi ya uchunguzi-ambayo ni zaidi ya dola milioni 1 katika nusu 90 node teknolojia na hujenga damper muhimu juu ya uvumbuzi wa msingi wa semiconductor. "
  45. ^ B Patterson na Hennessy, s. 751.
  46. ^ Tuzo ya Sidney Fernbach iliyotolewa na mvumbuzi wa Bunge Bill Gropp inahusu MPI kama "interface kubwa ya mawasiliano ya HPC"
  47. ^ Shen, John Paul; Mikko H. Lipasti (2004). Usanidi wa kisasa wa usindikaji: msingi wa wasindikaji superscalar (1st ed.). Dubuque, Iowa: McGraw-Hill. p. 561. ISBN 0-07-057064-7 . Hata hivyo, grail takatifu ya utafiti huo-automatisering parallization ya programu serial-bado kujifanya. Wakati uhamasishaji wa automatiska wa madarasa fulani ya algorithms umeonyeshwa, mafanikio hayo yamekuwa yamepunguzwa kwa maombi ya kisayansi na ya nambari na udhibiti wa mtiririko wa kutabirika (kwa mfano, miundo ya kitanzi iliyo na namba iliyo na nambari ya uthabiti) na kufuatilia kwa usahihi chati za kufikia kumbukumbu. (kwa mfano, hutembea juu ya vitu vingi vya multidimensional ya data ya kuelezea-kumweka).
  48. ^ Encyclopedia ya Compallel Computing, Volume 4 na David Padua 2011 ISBN 0387097651 ukurasa 265
  49. ^ Asanovic, Krste, et al. (Desemba 18, 2006). Mazingira ya Utafiti wa Computing Sambamba: A View kutoka Berkeley (PDF). Chuo Kikuu cha California, Berkeley. Ripoti ya Ufundi Na UCB / EECS-2006-183. Tazama meza kwenye ukurasa wa 17-19.
  50. ^ Dobel, B., Hartig, H., & Engel, M. (2012) "Msaada wa mfumo wa uendeshaji kwa multithreading redundant". Majadiliano ya mkutano wa kumi wa ACM wa kimataifa juu ya programu iliyoingia , 83-92. Je : 10.1145 / 2380356.2380375
  51. ^ B Patterson na Hennessy, pp 749-50. "Pamoja na mafanikio katika kusukuma teknolojia kadhaa muhimu katika miradi ya baadaye, ILLIAC IV wameshindwa kama kompyuta Gharama ilienea kutoka $ milioni 8 inakadiriwa katika 1966 na $ milioni 31 kwa mwaka wa 1972, pamoja na. ujenzi wa robo moja tu ya mashine iliyopangwa.Kuwezekana ni mzuri sana wa wajumbe wa juu. Mradi ulianza mwaka wa 1965 na kukimbia maombi yake ya kwanza ya mwaka wa 1976. "
  52. ^ Menabrea, LF (1842). Mchoro wa Injini ya Uchambuzi Inayotengenezwa na Charles Babbage . Bibliothèque Universelle de Genève. Ilifutwa mnamo Novemba 7, 2007. Nukuu: "wakati mfululizo mrefu wa mchanganyiko wa kufanana unapaswa kufanywa, kama vile zinazohitajika kuundwa kwa meza za nambari, mashine inaweza kuletwa ili itoe matokeo kadhaa kwa wakati mmoja , ambayo itaondoa kiasi kikubwa cha mchakato. "
  53. ^ B c Patterson na Hennessy, s. 753.
  54. ^ RW Hockney, CR Jesshope. "Computers Compatible 2: Architecture, Programming na Algorithms, Volume 2" . 1988. p. Nukuu 8: "Marejeo ya awali ya kulinganisha kwenye kubuni ya kompyuta inadhaniwa kuwa katika gazeti la General LF Menabrea katika ... 1842, jina la Mchoro wa Injini ya Analytical Invented by Charles Babbage ".
  55. ^ Sambamba Programming, S. Gill, Computer Journal Vol. 1 # 1, pp2-10, British Computer Society, Aprili 1958.
  56. ^ B c d e Wilson, Gregory V (1994). "Historia ya Maendeleo ya Computing Sambamba" . Chuo Kikuu cha Jimbo la Virginia Tech / Norfolk, Kujifunza Maingiliano na Maktaba ya Digital katika Sayansi ya Kompyuta . Ilifutwa 2008-01-08 .
  57. ^ Anthes, Gry (Novemba 19, 2001). "Nguvu ya kufanana" . Computerworld . Imehifadhiwa kutoka kwa asili ya Januari 31, 2008 . Ilifutwa 2008-01-08 .
  58. ^ Patterson na Hennessy, p. 749.
  59. ^ Minsky, Marvin (1986). Society of Mind . New York: Simon & Schuster. p. 17. ISBN 0-671-60740-5 .
  60. ^ Minsky, Marvin (1986). Society of Mind . New York: Simon & Schuster. p. 29. ISBN 0-671-60740-5 .
  61. ^ Blakeslee, Thomas (1996). Zaidi ya mawazo ya ufahamu. Kufungua siri za kujitegemea . pp. 6-7.
  62. ^ Gazzaniga, Michael ; LeDoux, Joseph (1978). Mind Integrated . pp. 132-161.
  63. ^ Gazzaniga, Michael (1985). Ubongo wa Jamii. Kugundua Mitandao ya Akili . pp. 77-79.
  64. ^ Ornstein, Robert (1992). Mageuzi ya Fahamu: Mwanzo wa Njia Tunayofikiri . p. 2.
  65. ^ Hilgard, Ernest (1977). Ugawanyiko wa ugawanyiko: udhibiti nyingi katika mawazo na vitendo vya mwanadamu . New York: Wiley. ISBN 978-0-471-39602-4 .
  66. ^ Hilgard, Ernest (1986). Ugawanyiko wa ugawanyiko: udhibiti nyingi katika mawazo na vitendo vya binadamu (toleo la kupanua) . New York: Wiley. ISBN 0-471-80572-6 .
  67. ^ Kaku, Michio (2014). Baadaye ya Akili .
  68. ^ Ouspenskii, Pyotr (1992). "Sura ya 3". Katika Utafutaji wa Miraha. Vipande vya Mafundisho Yisiyojulikana . pp. 72-83.
  69. ^ "Rasmi ya Nakala ya Ushauri wa Neurocluster" . Iliondolewa Julai 22, 2017 .

Kusoma zaidi

Viungo vya nje