অন্যান্য উত্তরে বর্ণিত পয়েন্টগুলি বাদ দিয়ে (প্রমাণ করা শক্ত নয় যে অপারেশনগুলি স্বতন্ত্র, এবং প্রোগ্রামাররা সিরিয়ালি চিন্তা করে), তৃতীয় বিষয় বিবেচনা করা দরকার: সমান্তরালনের ব্যয় ।
সত্য, এটি যে থ্রেড সমান্তরালতার সাথে এটির সাথে উল্লেখযোগ্য ব্যয় যুক্ত হয়েছে:
থ্রেড তৈরি খুব ব্যয়বহুল: কার্নেলের কাছে, থ্রেড শুরু করা প্রক্রিয়া শুরু করার মতোই। আমি সুনির্দিষ্ট ব্যয় সম্পর্কে নিশ্চিত নই, তবে আমি বিশ্বাস করি এটি দশটি মাইক্রোসেকেন্ডের ক্রমে।
মাইটেক্সেসের মাধ্যমে থ্রেড যোগাযোগ ব্যয়বহুল: সাধারণত, এটি প্রতিটি দিকে একটি সিস্টেম কল প্রয়োজন, সম্ভবত ঘুমের জন্য একটি থ্রেড রেখে আবার জেগে তোলে, যা বিলম্বিতা পাশাপাশি শীতল ক্যাশে এবং ফ্লাশযুক্ত টিএলবি তৈরি করে। গড়ে, একটি মিউটেক্স গ্রহণ এবং প্রকাশের জন্য প্রায় এক মাইক্রোসেকেন্ডের দাম হয়।
এ পর্যন্ত সব ঠিকই. অন্তর্নিহিত সমান্তরালতার জন্য কেন এটি সমস্যা? কারণ অন্তর্নিহিত সমান্তরালতা ছোট স্কেলের উপর প্রমাণ করা সবচেয়ে সহজ। একটি সাধারণ লুপের দুটি পুনরাবৃত্তি একে অপরের থেকে স্বতন্ত্র প্রমাণ করা এক জিনিস, এটি প্রমাণ করা সম্পূর্ণ ভিন্ন বিষয় যে stdout
কোনও কিছু মুদ্রণ করা এবং একটি ডাটাবেসে কোয়েরি প্রেরণ করা একে অপরের থেকে স্বতন্ত্র এবং সমান্তরালে কার্যকর করা যেতে পারে ( ডাটাবেস প্রক্রিয়াটি পাইপের অন্যদিকে হতে পারে!)।
এটি হ'ল, কোনও কম্পিউটার প্রোগ্রাম প্রমাণ করতে পারে এমন অন্তর্নিহিত সমান্তরালতা সম্ভবত অনাবশ্যক কারণ সমান্তরালকরণের ব্যয় সমান্তরাল প্রক্রিয়াকরণের সুবিধার চেয়ে বেশি। অন্যদিকে, বড় মাপের সমান্তরালতা যা সত্যিই কোনও অ্যাপ্লিকেশনকে ত্বরান্বিত করতে পারে সংকলকটির জন্য এটি প্রবণতাযোগ্য নয়। কোনও সিপিইউ একটি মাইক্রোসেকেন্ডের মধ্যে কতটা কাজ করতে পারে তা ভেবে দেখুন। এখন, যদি সমান্তরালকরণটি সিরিয়াল প্রোগ্রামের চেয়ে দ্রুত হওয়ার কথা, তবে সমান্তরাল প্রোগ্রামটি অবশ্যই দুটি সিউকেক্স কলের মধ্যে বেশ কয়েকটি মাইক্রোসেকেন্ডের জন্য সমস্ত সিপিইউকে ব্যস্ত রাখতে সক্ষম হতে হবে। এর জন্য সত্যই মোটা দানাযুক্ত সমান্তরালতা প্রয়োজন, যা স্বয়ংক্রিয়ভাবে প্রমাণ করা প্রায় অসম্ভব।
অবশেষে, কোনও ব্যতিক্রম ছাড়া কোনও নিয়ম নেই: অন্তর্নিহিত সমান্তরালতার শোষণ কাজ করে যেখানে কোনও থ্রেড জড়িত নেই, যা কোডটির ভেক্টরাইজেশনের ক্ষেত্রে (এভিএক্স, অ্যালটিভিক ইত্যাদি সিমড নির্দেশাবলী সেট ব্যবহার করে)। এটি প্রমাণ করতে তুলনামূলকভাবে সহজ যে ছোট আকারের সমান্তরালতার জন্য সবচেয়ে ভাল কাজ করে।