• pragma omp [ [[,] ] ...]
  • include int main () { / * Parallel parchani tanlash * / pragma omp parallel {printf ("Salom Dunyo! \ n"); } / * Parallel parchani * /
  • 6-amaliy mashg‘ulot. Tasvirlarga va signallarga parallel ishlov berishda Openmp paketi yordamida misollarni bajarish Mashg‘ulot maqsadi




    Download 31,19 Kb.
    bet2/3
    Sana14.12.2023
    Hajmi31,19 Kb.
    #118447
    1   2   3
    Bog'liq
    6-amaliy ish

    OpenMP tuzilishi:
    Direktivlar;
    Funksiyalar kutubxonasi;
    Bir qator o'zgaruvchilari.
    Ushbu tartibda OpenMP texnologiyasining imkoniyatlari ko'rib chiqiladi.
    Ushbu standart C90, C99, C ++, Fortran 77, Fortran 90 va Fortran 95 algoritmlari uchun OpenMP foydalanishni ta'minlaydi. OpenMP direktivasining formatini va barcha dasturlarning misollaridan C da taqdim etiladi; Fortran tili uchun OpenMP texnologiyasidan foydalanish xususiyatlari 5.8.1-bandda keltirilgan. Eng umumiy shaklida OpenMP direktivasining formati quyidagicha ifodalanishi mumkin:
    #pragma omp [
    [[,]
    ] ...]

    Direktivning boshlang'ich qismi (#pragma omp) sobit bo'ladi, direktivaning turi uning nomi (Direktiv_yeni) bilan belgilanadi, har bir direktiv o'zboshimchalik bilan parametrlar soni bilan birga bo'lishi mumkin (ingliz tilida, OpenMP direktivasining parametrlari atamalar jumlasidan foydalanadi).
    Misol uchun, biz bir ko'rsatmaga misol keltiramiz:
    #pragma omp parallel default (shared)
    \ Shaxsiy (beta, pi) Misol, ko'rsatmalarni o'rnatish uchun dasturning bir nechta yo'nalishidan foydalanish mumkinligini ko'rsatadi-davom etish mavjudligini belgisi "\" teskarisi.
    Birinchi parallel dastur misoli
    Juda muhim nuqta ta'kidlab o'taylik - shuni anglash mumkinki, OpenMP texnologiyasining imkoniyatlarini qisqacha ko'rib chiqish oddiy, ammo parallel dasturlarni ishlab chiqish uchun yetarli. Yangi dasturlash tillarini - "Salom Dunyo" degan salom yo'lini chiqadigan dasturni ishlab chiqishda dastlab amalda standart dastur ishlab chiqaylik.
    Shunday qilib:
    #include
    int main () {
    / * Parallel parchani tanlash * / #pragma omp parallel
    {printf ("Salom Dunyo! \ n");
    } / * Parallel parchani * /
    }
    Qanday ishlayotganini ko'rib chiqsangiz, GCC maxsus funktsiyani yaratadi va blok kodini bu funktsiyaga o'tkazadi, shuning uchun blok ichidagi barcha o'zgaruvchilar funktsiyaning lokal o'zgaruvchilari (har bir oqimning mahalliy o'zgaruvchilari) bo'ladi. Boshqa tomondan, ICC fork () ga o'xshash mexanizmdan foydalanadi va maxsus funksiya yaratmaydi. Har ikki dastur ham, albatta, to'g'ri va semantik jihatdan bir xildir.
    Agarda if dan foydalanilsa, parallelizm shartli bo’lishi mumkin: extern int parallelism_enabled;
    #pragma omp parallel for if(parallelism_enabled) for(int c=0; c<="" b="">
    handle(c);
    ushbu holatda parallelism_enabled 0 ga teng va sikl bir marta bajariladi
    for direktivasi forsiklini bir nechta oqimlarga ajiratadi:


    Download 31,19 Kb.
    1   2   3




    Download 31,19 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    6-amaliy mashg‘ulot. Tasvirlarga va signallarga parallel ishlov berishda Openmp paketi yordamida misollarni bajarish Mashg‘ulot maqsadi

    Download 31,19 Kb.