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


"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
সময় ভাগ করে একাধিক কাজ করে
যখন কোর কম, কিন্তু কাজ বেশি
Responsiveness & Efficiency
ফোনে কথা বলার সময় রান্না
Parallelism
একসাথে একাধিক কাজ একাধিক কোরে
যখন কোর বেশি এবং টাস্ক স্বাধীন
Performance & Throughput
রান্না ও কাপড় ধোয়া দুই জনে একসাথে করা
কখন কোনটা ব্যবহার করা হয়?
যদি আপনার সিস্টেমটি সিঙ্গেল কোরের হয় তবে আপনি কেবল Concurrency এর মাধ্যমে আপনার Process গুলোকে চালাতে পারবেন।
এবং যদি আপনার সিস্টেমটিতে মাল্টিকোর CPU থাকে তবে আপনি Concurrency + Parallelism—দুটো technique ই ব্যবহার করতে পারবেন।
Concurrency মূলত সফটওয়্যার ডিজাইন ও Scheduling টেকনিক, আর Parallelism নির্ভর করে হার্ডওয়্যার ক্ষমতার উপর।
কেন Parallelism গুরুত্বপূর্ণ?
এটি সময় বাঁচায়, রিসোর্সের সর্বোচ্চ ব্যবহার নিশ্চিত করে, এবং বেটার ইউজার এক্সপেরিয়েন্স প্রদান করে।
বড় বড় সফটওয়্যার যেমন ডেটাবেজ সার্ভার, ওয়েব সার্ভার, ভিডিও প্রসেসিং সিস্টেম—সবই Parallelism ব্যবহার করে।
বিশেষ করে Data-Intensive ও Compute-Intensive অ্যাপ্লিকেশনগুলো—যেমন:
Machine Learning
Real-Time Video Encoding
Scientific Simulations
এই কাজগুলোতে Parallelism ছাড়া কাজই হয় না।
Subscribe to my newsletter
Read articles from AL Hasib directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
