আমি ব্যবহার std::for_eachসঙ্গে std::execution::parস্ট্রাকচার ভেক্টর হিসাবে প্রতিনিধিত্ব বিশাল ইনপুটের জটিল গণনার সঞ্চালন। গণনায় হার্ডওয়্যার সম্পর্কিত কোনও বিলম্বের প্রয়োজন নেই (উদাহরণস্বরূপ নেটওয়ার্ক বা ডিস্ক আইও), এটি "কেবলমাত্র সিপিইউ" গণনা। আমার কাছে এটি যৌক্তিক মনে হচ্ছে যে আমাদের কাছে হার্ডওয়ার রয়েছে এমন আরও ওএস থ্রেড তৈরি করার কোনও বুদ্ধি নেই; তবে ভিজ্যুয়াল সি ++ 2019 গড়ে 50 টি থ্রেড তৈরি করে এবং কখনও কখনও 500 টি পর্যন্ত এমনকি 12 টি হার্ডওয়্যার থ্রেড থাকে।
সেখানে পর্যন্ত গণনা সমান্তরাল থ্রেড সীমিত করতে একটি উপায় আছে কি hardware_concurrencyসঙ্গে std::for_eachএবং std::execution::parএকমাত্র উপায় যুক্তিসংগত থ্রেড তৈরি করতে গণনা সাথে ব্যবহারের কাস্টম কোডে হয়, অথবা std::thread?
std::for_eachএবং অন্যান্য অ্যালগরিদমে <algorithm>। পেছনের মূল ধারণাটি std::execution::parহ'ল সিক্যুয়ালাল কোডের মতো সমান্তরাল কোড তৈরি করা এবং ন্যূনতম কোড এবং শব্দার্থবিজ্ঞানের পরিবর্তনের সাথে বিদ্যমান অ্যালগরিদমের সমান্তরালকরণ।