কম্পিউটার

OpenMP কি?


OpenMP হল কম্পাইলার নির্দেশিকাগুলির একটি সেটের পাশাপাশি C, C++ বা FORTRAN-এ লেখা প্রোগ্রামগুলির জন্য একটি API যা শেয়ার্ড-মেমরি পরিবেশে সমান্তরাল প্রোগ্রামিংয়ের জন্য সমর্থন প্রদান করে। OpenMP সমান্তরাল অঞ্চলগুলিকে কোডের ব্লক হিসাবে চিহ্নিত করে যা সমান্তরালে চলতে পারে। অ্যাপ্লিকেশন ডেভেলপাররা সমান্তরাল অঞ্চলে তাদের কোডে কম্পাইলার নির্দেশাবলী সন্নিবেশ করান, এবং এই নির্দেশাবলী ওপেনএমপি রান-টাইম লাইব্রেরিকে অঞ্চলটিকে সমান্তরালভাবে চালানোর নির্দেশ দেয়। নিম্নলিখিত সি প্রোগ্রামটি সমান্তরাল অঞ্চলের উপরে একটি কম্পাইলার নির্দেশকে চিত্রিত করে যেখানে printf() স্টেটমেন্ট রয়েছে −

#include <omp.h>
#include <stdio.h>
int main(int argc, char *argv[]){
   /* sequential code */
   #pragma omp parallel{
      printf("I am a parallel region.");
   }
   /* sequential code */
   return 0;
}

যখন OpenMP নির্দেশের মুখোমুখি হয়

#pragma omp parallel

এটি অনেকগুলি থ্রেড তৈরি করে যা সিস্টেমে কোর প্রক্রিয়াকরণ করছে। এইভাবে, একটি ডুয়াল-কোর সিস্টেমের জন্য, দুটি থ্রেড তৈরি করা হয়, একটি কোয়াড-কোর সিস্টেমের জন্য, চারটি তৈরি করা হয়; এবং তাই ঘোষণা তারপরে সমস্ত থ্রেড একই সাথে সমান্তরাল অঞ্চলটি কার্যকর করে। যখন প্রতিটি থ্রেড সমান্তরাল অঞ্চল থেকে প্রস্থান করে, তখন এটি বন্ধ হয়ে যায়। OpenMP সমান্তরালভাবে কোড অঞ্চল চালানোর জন্য বেশ কিছু অতিরিক্ত নির্দেশ প্রদান করে, যার মধ্যে সমান্তরাল লুপ রয়েছে।

সমান্তরালকরণের জন্য নির্দেশনা প্রদানের পাশাপাশি, OpenMP ডেভেলপারদের সমান্তরালতার বিভিন্ন স্তরের মধ্যে বেছে নিতে দেয়। যেমন, তারা ম্যানুয়ালি থ্রেডের সংখ্যা সেট করতে পারে। এটি ডেভেলপারদেরকে শনাক্ত করতে দেয় যে ডেটা থ্রেডের মধ্যে ভাগ করা হয়েছে নাকি একটি থ্রেডে ব্যক্তিগত। OpenMP Linux, Windows, এবং Mac OS X সিস্টেমের জন্য বেশ কয়েকটি ওপেন-সোর্স এবং বাণিজ্যিক কম্পাইলারগুলিতে উপলব্ধ৷


  1. এআই ফাইল কী?

  2. 3D প্রিন্টিং কি?

  3. আইপি ঠিকানা কী?

  4. Windows 11 SE কি?