আমি সমান্তরাল কুইকসোর্ট অ্যালগরিদম এবং একটি পিএসআরএস অ্যালগরিদম উভয়ের সাথেই কাজ করেছি যা মূলত মার্জের সাথে সমান্তরালে কুইকোর্টকে একত্রিত করে।
সমান্তরাল কুইকসোর্ট অ্যালগরিদমের সাহায্যে আমি ৪ টি কোর (হাইপার-থ্রেডিং সহ ডুয়াল কোর) দিয়ে লিনিয়ার স্পিডআপের কাছে প্রদর্শিত করেছি, যা অ্যালগোরিদমের সীমাবদ্ধতা অনুসারে প্রত্যাশিত। একটি খাঁটি সমান্তরাল কুইকসোর্ট একটি ভাগ করা স্ট্যাক রিসোর্সের উপর নির্ভর করে যার ফলে থ্রেডের মধ্যে বিতর্ক তৈরি হবে, ফলে কার্য সম্পাদনের কোনও লাভ হ্রাস পাবে। এই অ্যালগরিদমের সুবিধা হ'ল এটি 'ইন-প্লেস' বাছাই করে যা প্রয়োজনীয় মেমরির পরিমাণ হ্রাস করে। আপনি যেমনটি বলেছেন 100M উপাদানগুলির উপরের দিকে বাছাই করার সময় আপনি এটি বিবেচনা করতে চাইতে পারেন।
আমি দেখতে পাচ্ছি আপনি 8-32 কোর দিয়ে একটি সিস্টেম বাছাই করতে চাইছেন। পিএসআরএস অ্যালগরিদম ভাগ করা রিসোর্সে বিতর্ক এড়ায়, উচ্চতর সংখ্যক প্রক্রিয়াতে গতি বাড়িয়ে দেয়। আমি উপরে হিসাবে 4 টি পর্যন্ত কোর সহ অ্যালগরিদমটি দেখিয়েছি, তবে অন্যের পরীক্ষামূলক ফলাফলগুলি 32, এর বেশি এবং তারও বেশি সংখ্যক মূল সংখ্যার সাথে লিনিয়ার স্পিডআপের কাছে রিপোর্ট করে। পিএসআরএস অ্যালগরিদমের অসুবিধা হ'ল এটি যথাস্থানে নেই এবং এর জন্য যথেষ্ট বেশি মেমরির প্রয়োজন হবে।
আপনি যদি আগ্রহী হন তবে এই জাতির প্রতিটি অ্যালগরিদমের জন্য আপনি আমার জাভা কোডটি ব্যবহার বা ব্যবহার করতে পারেন। আপনি এটি গিথুব এ খুঁজে পেতে পারেন: https://github.com/broadbear/sort । কোডটি জাভা কালেকশনস.সোর্ট () এর একটি ড্রপ-ইন প্রতিস্থাপন হিসাবে উদ্দিষ্ট। আপনি উপরে উল্লিখিত হিসাবে আপনি যদি কোন জেভিএম মধ্যে সমান্তরাল বাছাই করার দক্ষতার সন্ধান করছেন তবে আমার রেপোর কোডটি আপনাকে সাহায্য করতে পারে। তুলনামূলক প্রয়োগকারী বা আপনার নিজস্ব তুলনামূলক প্রয়োগকারী উপাদানগুলির জন্য এপিআই সম্পূর্ণ জেনারাইজড।
আমি কি আপনাকে জিজ্ঞাসা করতে পারি যে আপনি এতগুলি উপাদানগুলির জন্য বাছাই করছেন? আমি আমার বাছাই প্যাকেজটির জন্য সম্ভাব্য অ্যাপ্লিকেশনগুলি জানতে আগ্রহী।