উদাহরণ: OpenMP, MPI

সমান্তরাল প্রোগ্রামিং (Parallel Programming) - প্রোগ্রামিং মেথডলোজি (Programming Methodologies) - Computer Science

336

OpenMP এবং MPI হল দুটি জনপ্রিয় লাইব্রেরি যা সমান্তরাল প্রোগ্রামিংয়ের জন্য ব্যবহৃত হয়। OpenMP প্রধানত একক মেশিনে মাল্টি-থ্রেডিংয়ের জন্য ব্যবহৃত হয়, যেখানে MPI (Message Passing Interface) বিতরণকৃত সিস্টেমে যোগাযোগের জন্য ব্যবহৃত হয়।


১. OpenMP

OpenMP একটি API (Application Programming Interface) যা C, C++, এবং Fortran ভাষায় মাল্টি-থ্রেডিংয়ের জন্য সমর্থন প্রদান করে। এটি প্রোগ্রামারের জন্য থ্রেড তৈরি এবং পরিচালনা করা সহজ করে তোলে।

উদাহরণ: OpenMP ব্যবহার করে সহজ গণনা

#include <stdio.h>
#include <omp.h>

int main() {
    int i;
    int n = 10;

    // OpenMP এর সাথে থ্রেড তৈরি
    #pragma omp parallel for
    for (i = 0; i < n; i++) {
        printf("Thread %d is processing item %d\n", omp_get_thread_num(), i);
    }

    return 0;
}

কার্যপ্রণালী:

  1. #pragma omp parallel for: এই নির্দেশিকা OpenMP কে জানায় যে for লুপটিকে সমান্তরালভাবে চালানো হবে।
  2. omp_get_thread_num(): এটি চলমান থ্রেডের সংখ্যা প্রদান করে।

২. MPI

MPI (Message Passing Interface) একটি স্ট্যান্ডার্ড যা বিতরণকৃত সিস্টেমে একাধিক প্রসেসের মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়। এটি উচ্চ-পারফরম্যান্স কম্পিউটিং (HPC) পরিবেশে কার্যকর।

উদাহরণ: MPI ব্যবহার করে সংখ্যা যোগ

#include <stdio.h>
#include <mpi.h>

int main(int argc, char *argv[]) {
    int rank, size, number;
    int total = 0;

    // MPI শুরু
    MPI_Init(&argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank); // প্রতিটি প্রসেসের র‌্যাঙ্ক পাওয়া
    MPI_Comm_size(MPI_COMM_WORLD, &size); // মোট প্রসেস সংখ্যা পাওয়া

    number = rank + 1; // প্রতিটি প্রসেসের জন্য একটি সংখ্যা নির্ধারণ
    printf("Process %d has number %d\n", rank, number);

    // সব প্রসেস থেকে সংখ্যা যোগ করা
    MPI_Reduce(&number, &total, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);

    if (rank == 0) { // র‌্যাঙ্ক 0 এর জন্য ফলাফল দেখানো
        printf("Total sum is: %d\n", total);
    }

    // MPI শেষ
    MPI_Finalize();
    return 0;
}

কার্যপ্রণালী:

  1. MPI_Init: MPI পরিবেশ শুরু করে।
  2. MPI_Comm_rank: প্রতিটি প্রসেসের র‌্যাঙ্ক পাওয়া যায়।
  3. MPI_Reduce: সব প্রসেস থেকে সংখ্যাগুলি যোগ করে।
  4. MPI_Finalize: MPI পরিবেশ শেষ করে।

উপসংহার

OpenMP এবং MPI উভয়ই সমান্তরাল প্রোগ্রামিংয়ের জন্য শক্তিশালী টুল। OpenMP মাল্টি-থ্রেডিংয়ের জন্য সহজ এবং সুবিধাজনক পদ্ধতি প্রদান করে, যখন MPI বিতরণকৃত সিস্টেমে প্রসেসগুলির মধ্যে যোগাযোগের জন্য কার্যকরী। এই দুটি লাইব্রেরি সফটওয়্যার ডেভেলপমেন্টে কর্মক্ষমতা বৃদ্ধি করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...