СПОНСОРСКИЙ КОНТЕНТ
Дарим миллион долларов в честь дня рождения
RoboForex
Масштабный розыгрыш призов на 1 000 000 долларов
RoboForex
Qorin va yon tomondan yog'lar 3-4 kun ichida ketadi
Slimmer
Bit darajadagi parallellik
Asosiy maqola: Bit darajadagi parallellik
Kelishidan juda keng ko'lamli integratsiya (VLSI) kompyuter chiplarini ishlab chiqarish texnologiyasi 1970-yillarda taxminan 1986 yilgacha kompyuter arxitekturasida tezlikni ikki baravar oshirish kompyuter so'zining hajmi- protsessor bir tsiklda boshqarishi mumkin bo'lgan ma'lumot miqdori.[32] So'z hajmini oshirish protsessor o'lchamlari so'z uzunligidan kattaroq bo'lgan o'zgaruvchilar bo'yicha operatsiyani bajarish uchun bajarishi kerak bo'lgan ko'rsatmalar sonini kamaytiradi. Masalan, qaerda 8-bit protsessor ikkitasini qo'shishi kerak 16-bit butun sonlar, protsessor avvaliga standart qo'shish buyrug'i yordamida har bir butun sondan 8 ta pastki tartibli bitni qo'shishi kerak, so'ngra ko'tarish bilan qo'shish buyrug'i va 8 ta yuqori tartibli bitni qo'shish kerak ko'tarib bit pastki buyurtma qo'shimchasidan; Shunday qilib, 8 bitli protsessor bitta operatsiyani bajarish uchun ikkita ko'rsatmani talab qiladi, bu erda 16 bitli protsessor bitta buyruq bilan operatsiyani bajarishi mumkin edi.
Tarixiy jihatdan, 4-bit mikroprotsessorlar 8 bitli, so'ngra 16 bitli, so'ngra 32 bitli mikroprotsessorlar bilan almashtirildi. Ushbu tendentsiya odatda 32-bitli protsessorlarning joriy etilishi bilan yakunlandi, bu yigirma yil davomida umumiy hisoblashda standart bo'lib kelgan. 2000-yillarning boshlarida emas, balki paydo bo'lishi bilan x86-64 me'morchilik, qildi 64-bit protsessorlar odatiy holga aylanadi.
Ko'rsatma darajasidagi parallellik
Asosiy maqola: Ko'rsatma darajasidagi parallellik
Kanonik protsessor quvur liniyasi. Bitta yo'riqnomani bajarish uchun beshta soat tsikli kerak bo'ladi va shu sababli protsessor subklader ishlashini chiqarishi mumkin (IPC = 0,2 <1).
Kanonik besh bosqich quvurli protsessor. Eng yaxshi stsenariyda bitta ko'rsatmani bajarish uchun bitta soat tsikli kerak bo'ladi va shu bilan protsessor skaler ishlashini chiqarishi mumkin (IPC = 1).
Kompyuter dasturi bu mohiyatan protsessor tomonidan bajariladigan ko'rsatmalar oqimidir. Ko'rsatma darajasidagi parallelliksiz protsessor faqat bittadan kamini chiqarishi mumkin soat tsikli bo'yicha ko'rsatma (IPC <1). Ushbu protsessorlar sifatida tanilgan obunalar protsessorlar. Ushbu ko'rsatmalar bo'lishi mumkin qayta buyurtma qilingan va keyinchalik dastur natijasini o'zgartirmasdan parallel ravishda bajariladigan guruhlarga birlashtirildi. Bu ko'rsatma darajasidagi parallellik deb nomlanadi. 80-yillarning o'rtalaridan 1990-yillarning o'rtalariga qadar kompyuter me'morchiligida ko'rsatma darajasidagi parallellikning rivojlanishi.[33]
Barcha zamonaviy protsessorlar ko'p bosqichli ko'rsatma quvurlari. Quvur liniyasining har bir bosqichi protsessor ushbu bosqichda ushbu ko'rsatma bo'yicha bajaradigan boshqa harakatlarga mos keladi; bilan protsessor N- bosqichli quvur liniyasi qadar bo'lishi mumkin N bajarilishning turli bosqichlarida turli xil ko'rsatmalar va shuning uchun soat tsikli uchun bitta ko'rsatma berilishi mumkin (IPC = 1). Ushbu protsessorlar sifatida tanilgan skalar protsessorlar. Quvurli protsessorning kanonik misoli a RISC protsessor, beshta bosqichdan iborat: buyruqlarni olish (IF), buyruqlarni dekodlash (ID), bajarish (EX), xotiraga kirish (MEM) va qayta yozishni ro'yxatdan o'tkazish (WB). The Pentium 4 protsessor 35 bosqichli quvur liniyasiga ega edi.[34]
Kanonik besh bosqich quvurli superskalar protsessor. Eng yaxshi vaziyatda, ikkita yo'riqnomani bajarish uchun bitta soat tsikli kerak bo'ladi va shu bilan protsessor superskalar ko'rsatkichini chiqarishi mumkin (IPC = 2> 1).
Aksariyat zamonaviy protsessorlarda bir nechta mavjud ijro birliklari. Ular, odatda, ushbu xususiyatni truboprovod bilan birlashtiradi va shu sababli soat tsikli uchun bir nechta ko'rsatmalar berishi mumkin (IPC> 1). Ushbu protsessorlar sifatida tanilgan superskalar protsessorlar. Ko'rsatmalarni faqatgina yo'q bo'lganda guruhlash mumkin ma'lumotlarga bog'liqlik ular orasida. Storbord va Tomasulo algoritmi (bu skorbordga o'xshaydi, lekin undan foydalanadi qayta nomlashni ro'yxatdan o'tkazing) buyruqdan tashqari bajarish va ko'rsatmalar darajasidagi parallellikni amalga oshirishning eng keng tarqalgan usullaridan biri.
Vazifa parallelligi
Asosiy maqola: Vazifa parallelligi
Vazifa parallelligi - bu parallel dasturning o'ziga xos xususiyati bo'lib, "bir xil yoki turli xil ma'lumotlar to'plamida butunlay boshqacha hisob-kitoblarni amalga oshirish mumkin".[35] Bu ma'lumotlar parallelligi bilan zid keladi, bu erda bir xil hisoblash bir xil yoki turli xil ma'lumotlar to'plamida amalga oshiriladi. Vazifalar parallelligi vazifani pastki vazifalarga ajratishni va keyinchalik har bir kichik vazifani bajarish uchun protsessorga ajratishni o'z ichiga oladi. Keyin protsessorlar ushbu kichik vazifalarni bir vaqtning o'zida va ko'pincha hamkorlikda bajaradilar. Vazifa parallelligi odatda muammo kattaligi bilan kengaymaydi.[36]
Superword darajasi parallelligi
Superword darajasi parallelligi a vektorlashtirish asoslangan texnika tsiklni ochish va asosiy blok vektorlashtirish. U tsiklni vektorlashtirish algoritmlaridan foydalanishi mumkinligi bilan ajralib turadi parallellik ning ichki kod, masalan, koordinatalarni, rangli kanallarni yoki qo'lda yozilmagan ko'chadan manipulyatsiya qilish.[37]
Uskuna
ROBOFOREX
Дарим миллион долларов в честь дня рождения
Регистрируйся, торгуй, побеждай
УЗНАТЬ БОЛЬШЕ
Xotira va aloqa
Parallel kompyuterdagi asosiy xotira ham umumiy xotira (bitta ishlov berishning barcha elementlari o'rtasida taqsimlanadi) manzil maydoni), yoki tarqatilgan xotira (unda har bir ishlov berish elementi o'zining mahalliy manzil maydoniga ega).[38] Tarqatilgan xotira bu xotira mantiqan taqsimlanganligini anglatadi, lekin ko'pincha uning jismoniy taqsimlanganligini ham anglatadi. Tarqatilgan umumiy xotira va xotirani virtualizatsiya qilish ishlov berish elementi o'zining mahalliy xotirasiga va mahalliy bo'lmagan protsessorlarda xotiraga kirishga ega bo'lgan ikkita yondashuvni birlashtiring. Mahalliy xotiraga kirish odatda mahalliy bo'lmagan xotiraga qaraganda tezroq. Ustida superkompyuterlar, taqsimlangan umumiy xotira maydoni kabi dasturlash modeli yordamida amalga oshirilishi mumkin PGAS. Ushbu model bitta hisoblash tugunidagi jarayonlarga boshqa hisoblash tugunining masofaviy xotirasiga shaffof kirish imkoniyatini beradi. Barcha hisoblash tugunlari yuqori tezlikda o'zaro bog'lanish orqali tashqi umumiy xotira tizimiga ulangan, masalan Infiniband, bu tashqi umumiy xotira tizimi sifatida tanilgan portlash buferiodatda massivlardan qurilgan doimiy xotira jismoniy ravishda bir nechta I / O tugunlari bo'yicha taqsimlanadi.
A ning mantiqiy ko'rinishi bir xil bo'lmagan xotiraga kirish (NUMA) arxitekturasi. Bitta katalogdagi protsessorlar ushbu katalog xotirasiga boshqa katalog xotirasidagi xotiradan kamroq kechikish bilan kirishlari mumkin.
Asosiy xotiraning har bir elementiga teng ravishda kirish mumkin bo'lgan kompyuter arxitekturalari kechikish va tarmoqli kengligi sifatida tanilgan bir xil xotiraga kirish (UMA) tizimlari. Odatda, bunga faqat a erishish mumkin umumiy xotira xotira jismonan taqsimlanmagan tizim. Ushbu xususiyatga ega bo'lmagan tizim a sifatida tanilgan bir xil bo'lmagan xotiraga kirish (NUMA) arxitekturasi. Tarqatilgan xotira tizimlari bir xil bo'lmagan xotiraga kirish imkoniyatiga ega.
Kompyuter tizimlari foydalanadi keshlar- protsessor yaqinida joylashgan kichik va tezkor xotiralar, ular xotira qiymatlarining vaqtinchalik nusxalarini saqlaydi (jismoniy va mantiqiy ma'noda). Parallel kompyuter tizimlarida bir xil qiymatni bir nechta joyda saqlashi mumkin bo'lgan keshlar bilan bog'liq muammolar mavjud, chunki dastur noto'g'ri bajarilishi mumkin. Ushbu kompyuterlar uchun a keshning muvofiqligi keshlangan qiymatlarni hisobga oladigan va ularni strategik jihatdan tozalaydigan tizim, shu bilan dasturning to'g'ri bajarilishini ta'minlaydi. Avtobusni kuzatib borish qaysi qiymatlarga erishilishini kuzatib borishning eng keng tarqalgan usullaridan biridir (va shuning uchun ularni tozalash kerak). Katta, yuqori mahsuldorlikdagi tezkor keshlash tizimlarini loyihalashtirish kompyuter arxitekturasida juda qiyin muammo hisoblanadi. Natijada, umumiy xotira kompyuterlarining arxitekturalari, shuningdek taqsimlangan xotira tizimlari miqyosini kengaytirmaydi.[38]
Protsessor - protsessor va protsessor - xotira aloqasi apparatda bir necha usullar bilan, shu jumladan birgalikda (ko'p sonli yoki multiplekslangan) xotira, a to'siqni almashtirish, birgalikda avtobus yoki son-sanoqsiz ulanish tarmog'i topologiyalar shu jumladan Yulduz, uzuk, daraxt, giperkub, yog 'giperkubasi (tugunida bir nechta protsessor joylashgan giperkub) yoki n o'lchovli mash.
O'zaro bog'langan tarmoqlarga asoslangan parallel kompyuterlarning qandaydir turlari bo'lishi kerak marshrutlash to'g'ridan-to'g'ri bog'liq bo'lmagan tugunlar o'rtasida xabarlarni uzatishni ta'minlash uchun. Protsessorlar orasidagi aloqa uchun ishlatiladigan vosita katta ko'p protsessorli mashinalarda ierarxik bo'lishi mumkin.
Parallel kompyuterlar sinflari
Parallel kompyuterlar, taxminan, apparatlarning parallellikni qo'llab-quvvatlash darajasiga qarab tasniflanishi mumkin. Ushbu tasnif asosan asosiy hisoblash tugunlari orasidagi masofaga o'xshashdir. Bular bir-birini istisno qilmaydi; masalan, nosimmetrik multiprotsessorlarning klasterlari nisbatan keng tarqalgan.
Ko'p yadroli hisoblash
Asosiy maqola: Ko'p yadroli protsessor
Ko'p yadroli protsessor - bu bir nechta o'z ichiga olgan protsessor ishlov berish birliklari ("yadrolar" deb nomlanadi) xuddi shu chipda. Ushbu protsessor a dan farq qiladi superskalar bir nechta o'z ichiga olgan protsessor ijro birliklari va bitta buyruq oqimidan (ipdan) soat tsikli uchun bir nechta ko'rsatmalar chiqarishi mumkin; farqli o'laroq, ko'p yadroli protsessor bir nechta buyruqlar oqimidan soat sikliga bir nechta ko'rsatmalar chiqarishi mumkin. IBM"s Uyali mikroprotsessor, foydalanish uchun mo'ljallangan Sony PlayStation 3, taniqli ko'p yadroli protsessor. Ko'p yadroli protsessorning har bir yadrosi, shuningdek, superskalar bo'lishi mumkin, ya'ni har bir soat tsiklida har bir yadro bitta ipdan bir nechta ko'rsatmalar chiqarishi mumkin.
Bir vaqtning o'zida ko'p ishlov berish (ulardan Intelniki Hyper-Threading eng taniqli) psevdo-multi-coreismning dastlabki shakli edi. Bir vaqtning o'zida ko'p qirrali ishlov berishga qodir bo'lgan protsessor bir xil protsessorda bir nechta ijro etuvchi birliklarni o'z ichiga oladi, ya'ni u superskalar arxitekturasiga ega - va soat tsikli uchun bir nechta ko'rsatmalar berishi mumkin. bir nechta iplar. Vaqtinchalik ko'p ishlov berish boshqa tomondan, bitta protsessor blokidagi bitta ijro etuvchi bo'linmani o'z ichiga oladi va bir vaqtning o'zida bitta buyruq chiqarishi mumkin bir nechta iplar.
Nosimmetrik ko'p ishlov berish
Asosiy maqola: Nosimmetrik ko'p ishlov berish
Nosimmetrik multiprotsessor (SMP) - bu xotirani birgalikda ishlatadigan va avtobus.[39] Avtobusdagi ziddiyat avtobus arxitekturalarini masshtablashdan saqlaydi. Natijada, SMPlar odatda 32 dan ortiq protsessorni o'z ichiga olmaydi.[40] Protsessorlarning kichkina kattaligi va katta keshlar tomonidan ta'minlangan avtobusning o'tkazuvchanligi uchun talablarning sezilarli darajada kamayganligi sababli, bunday nosimmetrik multiprotsessorlar etarli miqdorda xotira o'tkazuvchanligi mavjud bo'lgan taqdirda juda tejamkor bo'ladi.[39]
Tarqatilgan hisoblash
Asosiy maqola: Tarqatilgan hisoblash
Tarqatilgan kompyuter (tarqatilgan xotira multiprotsessori deb ham ataladi) - bu tarqatuvchi xotira kompyuter tizimi, unda ishlov berish elementlari tarmoq bilan bog'langan. Tarqatilgan kompyuterlar juda miqyosli. Shartlar "bir vaqtda hisoblash"," parallel hisoblash "va" taqsimlangan hisoblash "bir-biriga juda mos keladi va ular o'rtasida aniq farq yo'q.[41] Xuddi shu tizim "parallel" va "taqsimlangan" sifatida tavsiflanishi mumkin; odatdagi taqsimlangan tizimdagi protsessorlar parallel ravishda bir vaqtda ishlaydi.[42]
Klasterli hisoblash
Asosiy maqola: Kompyuter klasteri
A Beowulf klasteri
Klaster - bu bir-biri bilan chambarchas bog'liq bo'lgan, bir-biriga bog'langan, bir-biriga bog'langan kompyuterlar guruhidir.[43] Klasterlar tarmoq bilan bog'langan bir nechta mustaqil mashinalardan iborat. Klasterdagi mashinalar nosimmetrik bo'lishi shart emas, yuklarni muvozanatlash agar ular bo'lmasa, qiyinroq. Klasterning eng keng tarqalgan turi bu Beowulf klasteri, bu bir nechta bir xilda amalga oshirilgan klaster savdo-sotiq bilan bog'langan kompyuterlar TCP / IP Ethernet mahalliy tarmoq.[44] Beowulf texnologiyasi dastlab tomonidan ishlab chiqilgan Tomas Sterling va Donald Beker. Barchasining 87% Top500 superkompyuterlar klasterlardir.[45] Qolganlari quyida tushuntirilgan massiv parallel protsessorlar.
Tarmoqli hisoblash tizimlari (quyida tavsiflangan) sharmandali parallel muammolarni osonlikcha echishi mumkinligi sababli, zamonaviy klasterlar odatda qiyinroq muammolarni hal qilish uchun ishlab chiqilgan - bu tugunlarni oraliq natijalarni tez-tez bir-biri bilan bo'lishishini talab qiladigan muammolar. Buning uchun yuqori tarmoqli kengligi va eng muhimi, pastkechikish o'zaro bog'liqlik tarmog'i. Ko'pgina tarixiy va dolzarb superkompyuterlar Cray Gemini tarmog'i kabi klasterli hisoblash uchun maxsus ishlab chiqilgan, yuqori mahsuldorlikka ega tarmoq moslamasidan foydalanadilar.[46] 2014 yildan boshlab aksariyat hozirgi superkompyuterlar tez-tez standart bo'lmagan ba'zi bir qo'shimcha qurilmalardan foydalanadilar Mirinet, InfiniBand, yoki Gigabit chekilgan.
Katta miqdordagi parallel hisoblash
Asosiy maqola: Katta darajada parallel (hisoblash)
Shkaf IBM"s Moviy gen / L katta darajada parallel superkompyuter
Ommaviy parallel protsessor (MPP) - ko'plab tarmoq protsessorlari bo'lgan bitta kompyuter. MPPlar klasterlar bilan bir xil xususiyatlarga ega, ammo MPlar o'zaro bog'langan ixtisoslashgan tarmoqlarga ega (klasterlar tarmoq uchun tovar texnikasidan foydalanadi). MPPlar klasterlardan kattaroq bo'lib, odatda 100 protsessordan "ancha ko'proq".[47] MPP-da "har bir protsessor o'z xotirasini va operatsion tizim va dasturning nusxasini o'z ichiga oladi. Har bir quyi tizim boshqalar bilan yuqori tezlikda bog'lanish orqali aloqa o'rnatadi."[48]
IBM"s Moviy gen / L, eng tez beshinchi superkompyuter 2009 yil iyun oyiga ko'ra dunyoda TOP500 reytingi, MPP.
Tarmoqli hisoblash
Asosiy maqola: Tarmoqli hisoblash
Tarmoqli hisoblash - bu parallel hisoblashning eng ko'p tarqalgan shakli. Bu orqali aloqa qiladigan kompyuterlardan foydalanadi Internet berilgan muammo ustida ishlash. Internetda mavjud bo'lgan tarmoqli kengligi va juda yuqori kechikish tufayli, tarqatilgan hisoblash odatda faqat ishlaydi xijolat bilan parallel muammolar. Ko'plab tarqatilgan hisoblash dasturlari yaratilgan, shulardan SETI @ uy va @ Home katlanmoqda eng taniqli misollar.[49]
Ko'pgina tarmoqlarni hisoblash dasturlaridan foydalaniladi o'rta dastur (tarmoq resurslarini boshqarish va dastur interfeysini standartlashtirish uchun operatsion tizim va dastur o'rtasida joylashgan dasturiy ta'minot). Eng keng tarqalgan tarqatiladigan hisoblash vositasi Berkli Tarmoq hisoblash uchun ochiq infratuzilma (BOINC). Ko'pincha tarqatilgan hisoblash dasturlari kompyuter bo'sh turgan paytlarda hisob-kitoblarni amalga oshirib, "zaxira tsikllar" dan foydalanadi.
Ixtisoslashgan parallel kompyuterlar
Parallel hisoblashda, qiziqarli joylar bo'lib qoladigan ixtisoslashgan parallel qurilmalar mavjud. Ammo yo'q domenga xos, ular parallel muammolarning faqat bir nechta sinflariga mos keladi.
Dalada dasturlashtiriladigan eshik massivlari bilan qayta tuziladigan hisoblash
Qayta sozlanadigan hisoblash foydalanish a maydonda programlanadigan eshiklar qatori (FPGA) umumiy maqsadli kompyuterning birgalikda protsessori sifatida. FPGA, mohiyatan, ma'lum bir vazifani bajarish uchun o'zini qayta tiklashi mumkin bo'lgan kompyuter chipidir.
FPGA-lar dasturlash mumkin apparat tavsiflash tillari kabi VHDL yoki Verilog. Biroq, ushbu tillarda dasturlash zerikarli bo'lishi mumkin. Bir nechta sotuvchilar yaratdilar C - HDL sintaksisini va semantikasini taqlid qilishga urinadigan tillar C dasturlash tiliKo'pgina dasturchilar tanish bo'lgan. C dan HDL tillariga eng yaxshi ma'lum bo'lganlar Mitrion-C, Impuls C, DIME-Cva Handel-C. Ning o'ziga xos kichik to'plamlari SystemC C ++ asosida ham shu maqsadda foydalanish mumkin.
AMD-ni ochish to'g'risidagi qarori HyperTransport uchinchi tomon sotuvchilariga texnologiya yuqori mahsuldorlik bilan qayta tiklanadigan hisoblash uchun qulay texnologiyaga aylandi.[50] Maykl R. D'Amourning so'zlariga ko'ra, Operatsion direktor DRC Computer Corporation, "biz AMD-ga birinchi marta kirganimizda, ular bizni" the "deb atashdi rozetka o'g'rilar. ' Endi ular bizni sheriklarimiz deyishadi. "[50]
Grafikni qayta ishlash bloklarida umumiy maqsadli hisoblash (GPGPU)
Asosiy maqola: GPGPU
Nvidia Tesla GPGPU kartasi
Umumiy maqsadlar uchun hisoblash grafik ishlov berish birliklari (GPGPU) - bu kompyuter muhandisligi tadqiqotlarining juda so'nggi tendentsiyasi. GPU - bu juda optimallashtirilgan qo'shma protsessorlar kompyuter grafikasi qayta ishlash.[51] Kompyuter grafikasini qayta ishlash ma'lumotlar parallel operatsiyalari, xususan, ustunlik qiladigan maydon chiziqli algebra matritsa operatsiyalar.
Dastlabki kunlarda GPGPU dasturlari dasturlarni bajarish uchun oddiy grafik APIlardan foydalangan. Biroq, ikkalasi bilan ham GPU-larda umumiy hisoblashni amalga oshirish uchun bir nechta yangi dasturlash tillari va platformalari qurildi Nvidia va AMD bilan dasturlash muhitlarini chiqarish CUDA va SDK-ni oqimlash navbati bilan. Boshqa GPU dasturlash tillari o'z ichiga oladi BrookGPU, PeakStreamva RapidMind. Nvidia has also released specific products for computation in their Tesla series. The technology consortium Khronos Group has released the OpenCL specification, which is a framework for writing programs that execute across platforms consisting of CPUs and GPUs. AMD, olma, Intel, Nvidia and others are supporting OpenCL.
Ilovaga xos integral mikrosxemalar
Asosiy maqola: Ilovaga xos integral mikrosxemalar
Bir nechta dasturga xos integral mikrosxema (ASIC) approaches have been devised for dealing with parallel applications.[52][53][54]
Because an ASIC is (by definition) specific to a given application, it can be fully optimized for that application. As a result, for a given application, an ASIC tends to outperform a general-purpose computer. However, ASICs are created by UV fotolitografiyasi. This process requires a mask set, which can be extremely expensive. A mask set can cost over a million US dollars.[55] (The smaller the transistors required for the chip, the more expensive the mask will be.) Meanwhile, performance increases in general-purpose computing over time (as described by Mur qonuni) tend to wipe out these gains in only one or two chip generations.[50] High initial cost, and the tendency to be overtaken by Moore's-law-driven general-purpose computing, has rendered ASICs unfeasible for most parallel computing applications. However, some have been built. One example is the PFLOPS RIKEN MDGRAPE-3 machine which uses custom ASICs for molekulyar dinamikasi simulyatsiya.
Vektorli protsessorlar
Asosiy maqola: Vektorli protsessor
The Cray-1 is a vector processor
A vector processor is a CPU or computer system that can execute the same instruction on large sets of data. Vector processors have high-level operations that work on linear arrays of numbers or vectors. An example vector operation is A = B × C, qayerda A, Bva C are each 64-element vectors of 64-bit suzuvchi nuqta raqamlar.[56] They are closely related to Flynn's SIMD classification.[56]
Cray computers became famous for their vector-processing computers in the 1970s and 1980s. However, vector processors—both as CPUs and as full computer systems—have generally disappeared. Zamonaviy processor instruction sets do include some vector processing instructions, such as with Freescale yarim o'tkazgich"s AltiVec va Intel"s SIMD kengaytmalarini oqimlash (SSE).
Dasturiy ta'minot
ROBOFOREX
Дарим миллион долларов в честь дня рождения
Регистрируйся, торгуй, побеждай
УЗНАТЬ БОЛЬШЕ
Parallel programming languages
Asosiy maqola: Bir vaqtda va parallel dasturlash tillari ro'yxati
Bir vaqtda dasturlash tillari, kutubxonalar, API-larva parallel programming models (kabi algorithmic skeletons) have been created for programming parallel computers. These can generally be divided into classes based on the assumptions they make about the underlying memory architecture—shared memory, distributed memory, or shared distributed memory. Shared memory programming languages communicate by manipulating shared memory variables. Distributed memory uses xabar o'tmoqda. POSIX mavzulari va OpenMP are two of the most widely used shared memory APIs, whereas Xabarni uzatish interfeysi (MPI) is the most widely used message-passing system API.[57] One concept used in programming parallel programs is the future concept, where one part of a program promises to deliver a required datum to another part of a program at some future time.
CAPS entreprise va Pathscale are also coordinating their effort to make hybrid multi-core parallel programming (HMPP) directives an open standard called OpenHMPP. The OpenHMPP directive-based programming model offers a syntax to efficiently offload computations on hardware accelerators and to optimize data movement to/from the hardware memory. OpenHMPP directives describe masofaviy protsedura chaqiruvi (RPC) on an accelerator device (e.g. GPU) or more generally a set of cores. The directives annotate C yoki Fortran codes to describe two sets of functionalities: the offloading of procedures (denoted codelets) onto a remote device and the optimization of data transfers between the CPU main memory and the accelerator memory.
The rise of consumer GPUs has led to support for yadrolarni hisoblash, either in graphics APIs (referred to as hisoblash shaderlari), in dedicated APIs (such as OpenCL), or in other language extensions.
Avtomatik parallellashtirish
Asosiy maqola: Avtomatik parallellashtirish
Automatic parallelization of a sequential program by a kompilyator is the "holy grail" of parallel computing, especially with the aforementioned limit of processor frequency. Despite decades of work by compiler researchers, automatic parallelization has had only limited success.[58]
Mainstream parallel programming languages remain either aniq parallel or (at best) partially implicit, in which a programmer gives the compiler direktivalar for parallelization. A few fully implicit parallel programming languages exist—SISAL, Parallel Xaskell, Tartib L, Tizim C (uchun FPGA), Mitrion-C, VHDLva Verilog.
Ilovani tekshirish punkti
Asosiy maqola: Ilovani tekshirish punkti
As a computer system grows in complexity, the muvaffaqiyatsizliklar orasidagi o'rtacha vaqt usually decreases. Ilovani tekshirish punkti is a technique whereby the computer system takes a "snapshot" of the application—a record of all current resource allocations and variable states, akin to a yadro chiqindisi-; this information can be used to restore the program if the computer should fail. Application checkpointing means that the program has to restart from only its last checkpoint rather than the beginning. While checkpointing provides benefits in a variety of situations, it is especially useful in highly parallel systems with a large number of processors used in yuqori samarali hisoblash.[59]
Algoritmik usullar
Do'stlaringiz bilan baham: |