সিরিজ: কম্পিউটিংয়ে কনকারেন্সি – পর্ব ৩

AL HasibAL Hasib
2 min read

"Concurrency vs. Parallelism: সত্যিকারের একসাথে কাজ করার গল্প"

আজ আমরা কীভাবে সত্যিকার অর্থে একই সময়ে একাধিক কাজ করা যায় সেটি সম্পর্কে জানব— যেটিকে বলা হয় Parallelism


আমার দেখেছি concurrency মানে কী?

Concurrency = "একসাথে অনেক গুলো কাজ শুরু করে রেখে, একটার পর একটা করে কাজগুলো করতে থাকা"।

এটা অনেকটা এমন যে আপনি একাই একসাথে রান্না, কাপড় ধোয়া আর ফোনে কথা বলার কাজ হাতে নিয়েছেন। আপনি হয়তো একটুখানি রান্না করলেন, তারপর হঠাৎ গিয়ে ফোন ধরলেন, তারপর কাপড় ধুতে গেলেন। আপনি একা করলেও কাজগুলো একটার পর একটা সময় ভাগ করে করে করছেন।


এখন আসা যাক তাহলে Parallelism কী?

Parallelism = "একাধিক worker দিয়ে একই সময়ে একাধিক কাজ একসাথে করা", ।

রবার্ট পাইকের মতেঃ
"Concurrency is about dealing with lots of things at once, but parallelism is about doing lots of things at once"

এটা অনেকটা এমন—আপনার ঘরে তিনজন লোক আছেন। একজন রান্না করছে, একজন কাপড় ধুচ্ছে, আর একজন ফোনে কথা বলছে। তিনটি কাজ একই সময়ে, সমান্তরালে সম্পন্ন হচ্ছে। একে বলা হয় Parallel Execution


বাস্তবে Parallelism কীভাবে সম্ভব হয়?

Parallelism বাস্তবায়নের জন্য মূলত দরকার হয় একাধিক প্রসেসর কোর বা CPU

যখন কম্পিউটারে একাধিক কোর থাকে, তখন প্রতিটি কোর আলাদা আলাদা প্রসেস বা থ্রেড চালাতে পারে।

এটি একসাথে একাধিক কাজ করার প্রকৃত ফিজিক্যাল সক্ষমতা।
Modern CPU গুলোতে যেমন ৪-কোর, ৮-কোর বা ১৬-কোর থাকে, তেমনি cloud server বা HPC system-গুলোতে শত শত কোরের সাহায্যে একসাথে হাজার হাজার প্রসেস চালানো হয়।


Concurrency এবং Parallelism

আধুনিক সফটওয়্যার সিস্টেমে এই দুইটি ধারণা একসাথে ব্যবহৃত হয়।

Concurrency

  1. সময় ভাগ করে একাধিক কাজ করে

  2. যখন কোর কম, কিন্তু কাজ বেশি

  3. Responsiveness & Efficiency

  4. ফোনে কথা বলার সময় রান্না

Parallelism

  1. একসাথে একাধিক কাজ একাধিক কোরে

  2. যখন কোর বেশি এবং টাস্ক স্বাধীন

  3. Performance & Throughput

  4. রান্না ও কাপড় ধোয়া দুই জনে একসাথে করা


কখন কোনটা ব্যবহার করা হয়?

  • যদি আপনার সিস্টেমটি সিঙ্গেল কোরের হয় তবে আপনি কেবল Concurrency এর মাধ্যমে আপনার Process গুলোকে চালাতে পারবেন।

  • এবং যদি আপনার সিস্টেমটিতে মাল্টিকোর CPU থাকে তবে আপনি Concurrency + Parallelism—দুটো technique ই ব্যবহার করতে পারবেন।

Concurrency মূলত সফটওয়্যার ডিজাইন ও Scheduling টেকনিক, আর Parallelism নির্ভর করে হার্ডওয়্যার ক্ষমতার উপর।


কেন Parallelism গুরুত্বপূর্ণ?

  • এটি সময় বাঁচায়, রিসোর্সের সর্বোচ্চ ব্যবহার নিশ্চিত করে, এবং বেটার ইউজার এক্সপেরিয়েন্স প্রদান করে।

  • বড় বড় সফটওয়্যার যেমন ডেটাবেজ সার্ভার, ওয়েব সার্ভার, ভিডিও প্রসেসিং সিস্টেম—সবই Parallelism ব্যবহার করে।

  • বিশেষ করে Data-Intensive ও Compute-Intensive অ্যাপ্লিকেশনগুলো—যেমন:

    • Machine Learning

    • Real-Time Video Encoding

    • Scientific Simulations

এই কাজগুলোতে Parallelism ছাড়া কাজই হয় না।

0
Subscribe to my newsletter

Read articles from AL Hasib directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

AL Hasib
AL Hasib