OpenMP
OpenMP (Open Multi-Processing) C, C++ va Fortran tillarida dasturlarni parallellashtirish uchun ochiq standartdir. Umumiy xotira multiprotsessorli tizimlarda ko'p bosqichli ilovalarni dasturlash uchun kompilyator direktivalari, kutubxona tartiblari va muhit o'zgaruvchilari to'plamini tavsiflaydi.
- 1. Ishlab chiquvchi yangi parallel dastur yaratmaydi, shunchaki ketma-ket dastur matniga OpenMP direktivalarini ketma-ket qo'shadi.
- 2. OpenMP ancha moslashuvchan mexanizmdir.
- 3. Seriyali va parallel versiyalarni qo'llab-quvvatlashga hojat yo'q. OpenMP direktivalari ketma-ket kompilyator tomonidan oddiygina e'tiborga olinmaydi.
- 4. Sinxronizatsiya va ishlarni taqsimlash bo'yicha ko'rsatmalar to'g'ridan-to'g'ri parallel hududning matniga ("etim" (yirtilgan) direktivalar) kirmasligi mumkin.
Parallel dastur modeli - OpenMP parallel dasturlashning SPMD (Single Program Multiple Data) modelini qabul qiladi, unda bir xil kod barcha parallel iplar uchun ishlatiladi. Dastur ketma-ket maydondan boshlanadi - birinchi navbatda, bitta jarayon (ip) ishlaydi, parallel maydonga kirishda bir qator jarayonlar paydo bo'ladi, ular orasida kod qismlari keyinchalik taqsimlanadi. Parallel hudud tugallangandan so'ng, bittadan (master) boshqa barcha iplar tugatiladi va ketma-ket mintaqa boshlanadi.
- Dastur istalgan miqdordagi parallel va ketma-ket mintaqalarga ega bo'lishi mumkin. Umumiy ma'lumotlarga kirishni sinxronlashtirishingiz kerak. Ko'p tarmoqli ma'lumotlarning mavjudligi bir vaqtning o'zida mos kelmaydigan kirish nizolariga olib keladi. OpenMP bir xil fayllarga turli mavzular kirishini sinxronlashtirmaydi.
Компиляция программы - OpenMP mexanizmlaridan foydalanish uchun dasturni tegishli kalitni (masalan, Visual C ++ - / openmp da) ko'rsatib, OpenMP-ni qo'llab-quvvatlaydigan kompilyator bilan kompilyatsiya qilishingiz kerak. Microsoft Visual Studio'da loyiha sozlamalarida OpenMP-dan foydalanish uchun siz qo'llab-quvvatlashni yoqishingiz kerak: OpenMP-ni yoqish (Loyiha -> Xususiyatlar -> C / C ++ -> Til -> MP qo'llab-quvvatlashini ochish)
Do'stlaringiz bilan baham: |