Concurrency এবং Parallelism এর ধারণা

Advanced Lolcode Topics (অ্যাডভান্সড ললকোড টপিকস) - ললকোড (Lolcode) - Computer Programming

404

Concurrency এবং Parallelism দুটি গুরুত্বপূর্ণ ধারণা যা কম্পিউটিং এবং প্রোগ্রামিংয়ে মাল্টি-টাস্কিং (একাধিক কাজ একসাথে করার ক্ষমতা) ব্যাখ্যা করতে ব্যবহৃত হয়। যদিও এই দুটি শব্দের মাঝে কিছুটা সমন্বয় এবং মিল রয়েছে, তবে তাদের মধ্যে মৌলিক পার্থক্যও আছে।

এখানে Concurrency এবং Parallelism এর বিস্তারিত ধারণা ও পার্থক্য তুলে ধরা হলো:


Concurrency (সংকুলান)

Concurrency হলো একাধিক কাজের সমন্বয়, যেখানে একাধিক কাজ সমান্তরালভাবে চলছে কিন্তু সব কাজ একসাথে বাস্তবায়িত হচ্ছে না। এটি এমন একটি প্রক্রিয়া যেখানে বিভিন্ন কাজগুলো (processes বা threads) একসাথে চলে, তবে সেগুলো কখনো একে অপরের সাথে সময় ভাগ করে বা একে অপরকে অপেক্ষা করে কাজ করে।

Key Points of Concurrency:

  • Single or Multi-core: কনকারেন্সি একক কোরে কাজ করার সময়ও হতে পারে। একাধিক কাজ সমান্তরালভাবে এক কোরে চলতে পারে, যেখানে কাজগুলো একে অপরের সময় ভাগ করে নেয়।
  • Task Switching: কাজগুলো একে অপরকে পলান্ট করে (switching), এবং CPU একটি কাজ শেষ করার পর অন্য কাজ শুরু হয়।
  • No Simultaneous Execution: কাজগুলো একসাথে কার্যকরী হয় না, বরং CPU time ভাগ করা হয় এবং প্রতিটি কাজের কিছু অংশ সমান্তরালভাবে সম্পন্ন হয়।

উদাহরণ:

ধরা যাক, আপনি একটি প্রোগ্রামে দুটি কাজ করতে চান:

  1. ইমেইল চেক করা
  2. ফাইল ডাউনলোড করা

এখন, কনকারেন্সির মাধ্যমে, একক CPU কোর ব্যবহার করে দুটি কাজ একে অপরের সাথে সমন্বয় করে চলতে পারে। তবে, একসাথে দুইটি কাজ বাস্তবায়িত হচ্ছে না, বরং CPU বারবার কাজ দুটি সুইচ করবে। প্রথমে ইমেইল চেক হবে, পরে ডাউনলোড শুরু হবে, এরপর আবার ইমেইল চেক হবে, ইত্যাদি।


Parallelism (প্যারালালিজম)

Parallelism হলো একাধিক কাজের সমান্তরাল কার্যকরী বাস্তবায়ন, যেখানে একাধিক কাজ একই সময় একাধিক কোরে বা প্রসেসরে একযোগে চালানো হয়। এটি একটি এমন প্রক্রিয়া যেখানে একাধিক কাজ এক সাথে সম্পন্ন হয়। প্যারালালিজমের জন্য সাধারণত মাল্টি-কোর বা মাল্টি-প্রসেসর সিস্টেম প্রয়োজন হয়।

Key Points of Parallelism:

  • Multiple Cores: প্যারালালিজম একাধিক কোর বা প্রসেসর ব্যবহার করে একই সময়ে কাজগুলো সম্পন্ন করে।
  • True Simultaneous Execution: কাজগুলো এক সাথে, সঠিক সময়ে বাস্তবায়িত হয়। অর্থাৎ, একই সময়ে দুটি বা তার বেশি কাজ কার্যকরী হয়।
  • Divide and Conquer: কাজটি বড় হলে, সেটি ছোট ছোট টুকরোতে ভাগ করে এবং প্রতিটি টুকরো একাধিক কোর বা প্রসেসর দ্বারা একসাথে কাজ করা হয়।

উদাহরণ:

ধরা যাক, একটি বড় গণনা করতে হবে:

  1. বড় সংখ্যার যোগফল বের করা

এই কাজটিকে যদি একাধিক ছোট ছোট অংশে ভাগ করা যায় এবং প্রতিটি অংশ একাধিক কোরে একসাথে চালানো যায়, তাহলে একে বলা হবে Parallelism। এখানে, একাধিক কোর বা প্রসেসর একই সময়ে কাজ করছে, ফলে পুরো কাজ দ্রুত সম্পন্ন হবে।


Concurrency এবং Parallelism এর মধ্যে পার্থক্য:

FeatureConcurrencyParallelism
Definitionএকাধিক কাজের মধ্যে সমন্বয় (যতটুকু সম্ভব একসাথে করতে)একাধিক কাজ একসাথে বাস্তবায়িত করা একই সময়ে
Executionএকক কোরে একাধিক কাজ একে অপরের সময় ভাগ করে চলেএকাধিক কোরে একসাথে কাজ সম্পন্ন করা
Resource Requirementএকক কোর/CPU সহ কাজ হতে পারেএকাধিক কোর বা প্রসেসরের প্রয়োজন
Task SwitchingCPU এক কাজ শেষ করে অন্য কাজ শুরু করে (Context Switching)একাধিক কাজ একসাথে কাজ করতে থাকে
Timeকাজগুলো একে অপরকে অপেক্ষা করে চলেকাজগুলো একসাথে চলে এবং সময় কম লাগে

সারসংক্ষেপ:

  • Concurrency হলো একাধিক কাজের সমন্বয়, যেখানে একসাথে কাজগুলো চলতে থাকে কিন্তু সব কাজ একসাথে বাস্তবায়িত হচ্ছে না।
  • Parallelism হলো একাধিক কাজ একসাথে বাস্তবায়িত হয় এবং একাধিক প্রসেসর বা কোর ব্যবহার করে দ্রুত কাজ সম্পন্ন করা হয়।

Concurrency সিস্টেমের মধ্যে কাজগুলো ভাগ করে এবং সেগুলোর মধ্যে সমন্বয় তৈরি করে, যখন Parallelism একই সময়ে একাধিক কাজ বাস্তবায়িত করে, সাধারণত মাল্টি-কোর প্রসেসর ব্যবহারের মাধ্যমে।

Concurrency মূলত কাজের মধ্যে সময় ভাগ করে কাজ করে, এবং Parallelism একাধিক কাজ একসাথে কার্যকরী করে, এবং এটি সাধারণত মাল্টি-কোর বা মাল্টি-প্রসেসর সিস্টেমের জন্য ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...