কোন সমান্তরাল বাছাই অ্যালগরিদমের সেরা গড় ক্ষেত্রে পারফরম্যান্স থাকে?


134

ক্রমবিন্যাস সিরিয়াল ক্ষেত্রে O (n লগ এন) নেয়। যদি আমাদের ও (এন) প্রসেসর থাকে তবে আমরা একটি রৈখিক গতির জন্য আশা করব। ও (লগ এন) সমান্তরাল অ্যালগোরিদম বিদ্যমান তবে তাদের খুব ধ্রুবক রয়েছে। এগুলি পণ্য হার্ডওয়্যারে প্রযোজ্য নয় যা ও (এন) প্রসেসরের কাছাকাছি কোথাও নেই। পি প্রসেসরের সাথে যুক্তিসঙ্গত অ্যালগরিদমগুলিতে ও (এন / পি লগ এন) সময় নেওয়া উচিত।

সিরিয়াল ক্ষেত্রে, দ্রুত বাছাইয়ের গড়তম রানটাইম জটিলতা রয়েছে। একটি সমান্তরাল দ্রুত সাজানোর অ্যালগরিদম কার্যকর করা সহজ ( এখানে এবং এখানে দেখুন )। তবে এটি খুব ভাল সম্পাদন করে না, কারণ প্রথম সংগ্রহটি হ'ল পুরো সংগ্রহটি একটি একক কোরতে ভাগ করা। আমি অনেক সমান্তরাল বাছাই করা অ্যালগরিদমের তথ্য পেয়েছি তবে এখন পর্যন্ত আমি পরিষ্কার বিজয়ীর দিকে ইশারা করে কিছুই দেখিনি।

আমি 8 থেকে 32 কোরে চলমান একটি জেভিএম ভাষায় 1 মিলিয়ন থেকে 100 মিলিয়ন উপাদানের তালিকা সাজানোর জন্য চাই।


@ জনের যে কোন কিছুর সত্যই। এগুলি আমার ডোমেন অবজেক্ট হবে যা সমস্ত পৃথক, তবে সমস্ত বাস্তবের তুলনামূলক।
ক্রেগ পি মোটলিন

1
আমি মনে করি আপনার "নেওয়া উচিত"
স্পার

@ স্পার আমি এটি মনে করি না। আমি কয়েক প্রসেসর থাকা এবং যতগুলি প্রসেসরের উপাদান বাছাই করা হচ্ছে তার মধ্যে একটি পার্থক্য করছি।
ক্রেগ পি। মোটলিন

@ ক্রেগপি.মটলিন ঠিক আছে, তবে আপনি / পি ভুলভাবে "বিতরণ" করেছেন বলে মনে হচ্ছে। কেবল একটি / পি থাকতে হবে।
স্পার

@ স্পার আহ, ধন্যবাদ, ধন্যবাদ।
ক্রেগ পি। মোটলিন

উত্তর:


204

নিম্নলিখিত নিবন্ধ (পিডিএফ ডাউনলোড) বিভিন্ন স্থাপত্যে সমান্তরাল বাছাই অ্যালগরিদমের তুলনামূলক অধ্যয়ন:

বিভিন্ন আর্কিটেকচারে সমান্তরাল বাছাই অ্যালগরিদম

নিবন্ধ অনুসারে, নমুনা বাছাই অনেক সমান্তরাল আর্কিটেকচার ধরণের ক্ষেত্রে সেরা বলে মনে হচ্ছে।

বয়স সম্পর্কে মার্কের উদ্বেগের সমাধানের জন্য আপডেট:

এখানে আরও কিছু উপন্যাস প্রবর্তনকারী সাম্প্রতিক নিবন্ধগুলি রয়েছে (2007 থেকে, যা বিটিডব্লিউ, এখনও নমুনা সাজানোর সাথে তুলনা করে):

নমুনা সাজানোর এএ- বাছাইয়ের উন্নতি

রক্তস্রাব প্রান্ত (প্রায় 2010, কিছু কয়েক মাস বয়সী):

সমান্তরাল বাছাই প্যাটার্ন
বহু-কোর জিপিইউ ভিত্তিক সমান্তরাল বাছাই
হাইব্রিড সিপিইউ / জিপিইউ সমান্তরাল সাজান
এলোমেল্ড সমান্তরাল বাছাই অ্যালগরিদম একটি পরীক্ষামূলক স্টাডির সাথে
উচ্চতর স্কেলযোগ্য সমান্তরাল বাছাই প্রাকৃতিক আদেশ ব্যবহার করে এন-এলিমেন্টগুলি বাছাই: একটি নতুন অভিযোজিত বাছাইয়ের
পদ্ধতি

২০১৩-এর আপডেট: এখানে জানুয়ারী, ২০১৩ সালের রক্তপাতের প্রান্ত রয়েছে circ (দ্রষ্টব্য: লিঙ্কগুলির কয়েকটি হ'ল সিটিসিয়ারের কাগজপত্রগুলিতে এবং নিবন্ধের প্রয়োজন যা নিখরচায়):

বিশ্ববিদ্যালয় বক্তৃতা:
সমান্তরাল
বাছাই অ্যালগরিদম বক্তৃতা
সমান্তরাল বাছাই অ্যালগরিদম প্রবন্ধ 2
সমান্তরাল বাছাই অ্যালগরিদম বক্তৃতা 3

অন্যান্য উত্স এবং কাগজপত্র:
বহু-মূল আর্কিটেকচারের জন্য একটি উপন্যাস বাছাই অ্যালগরিদম
সমান্তরাল
সমান্তরাল
সমান্তরাল সমান্তরাল 2 সমান্তরাল বিভাজন ক্রিয়াকলাপের সাথে তাত্ক্ষণিক পারফরম্যান্সের
জন্য 2 সমান্তরাল স্ব-বাছাইকরণ সিস্টেমটি মার্জিক কুইক সাফল্য
এবং সমান্তরাল দ্রুত বাছাই করা অ্যালগরিদমগুলি
ভাগ করা মেমরি, বার্তা পাসিং এবং হাইব্রিড মার্জ সার্টস স্ট্যান্ডেলোন এবং ক্লাস্টারড এসএমপিগুলির জন্য
বিভিন্ন সমান্তরাল অ্যালগরিদমগুলি (বাছাই এবং অন্যান্য) বাস্তবায়ন সহ

জিপিইউ এবং সিপিইউ / জিপিইউ হাইব্রিড উত্স এবং কাগজপত্রগুলি: গ্রাফিক্স প্রসেসিং ইউনিট ব্যবহার করে
জিপিইউ আর্কিটেকচার
ডেটা বাছাইয়ের জন্য সমান্তরাল বাছাই অ্যালগরিদমগুলির একটি ওপেনসিএল পদ্ধতি
জিপিইউতে
বাছাইয়ের জন্য দক্ষ অ্যালগরিদমগুলি ডিজাইনিস্টিং
স্যাম্পল সাজানোর জন্য জিপিইউ সহ
দ্রুত সাজানোর জন্য নকশা করা সিপিডিএ বিটোনিক সাজ্টের উপর ভিত্তি করে
দ্রুত সমান্তরাল জিপিইউ-বাছাই করা একটি হাইব্রিড অ্যালগরিদম
দ্রুত সমান্তরাল বাছাই করা অ্যালগরিদমগুলিকে জিপিইউ এবং জিপিইউতে
দ্রুত সাজানোর জন্য: ব্যান্ডউইদথ অবিস্মরণীয় সিমড সাজানো
জিপিইউ নমুনা সাজানোর জন্য মামলা
জিপিইউ-এবিআইসোর্ট: স্ট্রিম আর্কিটেকচারে সর্বোত্তম সমান্তরাল বাছাই
: উচ্চ পারফরম্যান্স গ্রাফিক্স কো-প্রসেসর বড় ডাটাবেস পরিচালনার জন্য বাছাই
বহু-কোর জিপিইউগুলিতে উচ্চ কার্যকারিতা তুলনা ভিত্তিক বাছাই অ্যালগরিদম
সিউডিএ-সক্ষম জিপিইউগুলির জন্য সমান্তরাল বাহ্যিক বাছাই লোড ব্যালেন্সিং এবং লো ট্রান্সফার ওভারহেড
বৃহত স্কেল ডেটাসেটের জন্য জিপিইউগুলিতে বাছাই: একটি সম্পূর্ণ তুলনা


2
এটি ১৯৯ 1996 সালে বর্তমান বিভিন্ন স্থাপত্যগুলিতে সমান্তরাল বাছাই করা অ্যালগরিদমগুলির তুলনামূলক অধ্যয়ন। তখন থেকে সমান্তরাল কম্পিউটিংয়ে অনেক কিছু পরিবর্তিত হয়েছিল।
হাই পারফরম্যান্স মার্ক

1
দেখে মনে হচ্ছে যে আপনি IMHO সর্বোত্তম, মাল্টি-কোর সিমডি আর্কিটেকচারে বাছাইয়ের কার্যকর বাস্তবায়নটি কী সেরা তা মিস করেছেন।
ভিএলডিবি

1
এটি একটি দুর্দান্ত উত্তর ছিল, একবার। এখন, বেশিরভাগ লিঙ্কগুলি নষ্ট হয়ে গেছে।
টিম লং

6

আমি সমান্তরাল কুইকসোর্ট অ্যালগরিদম এবং একটি পিএসআরএস অ্যালগরিদম উভয়ের সাথেই কাজ করেছি যা মূলত মার্জের সাথে সমান্তরালে কুইকোর্টকে একত্রিত করে।

সমান্তরাল কুইকসোর্ট অ্যালগরিদমের সাহায্যে আমি ৪ টি কোর (হাইপার-থ্রেডিং সহ ডুয়াল কোর) দিয়ে লিনিয়ার স্পিডআপের কাছে প্রদর্শিত করেছি, যা অ্যালগোরিদমের সীমাবদ্ধতা অনুসারে প্রত্যাশিত। একটি খাঁটি সমান্তরাল কুইকসোর্ট একটি ভাগ করা স্ট্যাক রিসোর্সের উপর নির্ভর করে যার ফলে থ্রেডের মধ্যে বিতর্ক তৈরি হবে, ফলে কার্য সম্পাদনের কোনও লাভ হ্রাস পাবে। এই অ্যালগরিদমের সুবিধা হ'ল এটি 'ইন-প্লেস' বাছাই করে যা প্রয়োজনীয় মেমরির পরিমাণ হ্রাস করে। আপনি যেমনটি বলেছেন 100M উপাদানগুলির উপরের দিকে বাছাই করার সময় আপনি এটি বিবেচনা করতে চাইতে পারেন।

আমি দেখতে পাচ্ছি আপনি 8-32 কোর দিয়ে একটি সিস্টেম বাছাই করতে চাইছেন। পিএসআরএস অ্যালগরিদম ভাগ করা রিসোর্সে বিতর্ক এড়ায়, উচ্চতর সংখ্যক প্রক্রিয়াতে গতি বাড়িয়ে দেয়। আমি উপরে হিসাবে 4 টি পর্যন্ত কোর সহ অ্যালগরিদমটি দেখিয়েছি, তবে অন্যের পরীক্ষামূলক ফলাফলগুলি 32, এর বেশি এবং তারও বেশি সংখ্যক মূল সংখ্যার সাথে লিনিয়ার স্পিডআপের কাছে রিপোর্ট করে। পিএসআরএস অ্যালগরিদমের অসুবিধা হ'ল এটি যথাস্থানে নেই এবং এর জন্য যথেষ্ট বেশি মেমরির প্রয়োজন হবে।

আপনি যদি আগ্রহী হন তবে এই জাতির প্রতিটি অ্যালগরিদমের জন্য আপনি আমার জাভা কোডটি ব্যবহার বা ব্যবহার করতে পারেন। আপনি এটি গিথুব এ খুঁজে পেতে পারেন: https://github.com/broadbear/sort । কোডটি জাভা কালেকশনস.সোর্ট () এর একটি ড্রপ-ইন প্রতিস্থাপন হিসাবে উদ্দিষ্ট। আপনি উপরে উল্লিখিত হিসাবে আপনি যদি কোন জেভিএম মধ্যে সমান্তরাল বাছাই করার দক্ষতার সন্ধান করছেন তবে আমার রেপোর কোডটি আপনাকে সাহায্য করতে পারে। তুলনামূলক প্রয়োগকারী বা আপনার নিজস্ব তুলনামূলক প্রয়োগকারী উপাদানগুলির জন্য এপিআই সম্পূর্ণ জেনারাইজড।

আমি কি আপনাকে জিজ্ঞাসা করতে পারি যে আপনি এতগুলি উপাদানগুলির জন্য বাছাই করছেন? আমি আমার বাছাই প্যাকেজটির জন্য সম্ভাব্য অ্যাপ্লিকেশনগুলি জানতে আগ্রহী।


আমি একটি 8 কোর প্রসেসর পেয়েছি। :) এখন আমি 40 এম উপাদানগুলির উপরের দিকে বাছাই করে পরীক্ষা করেছি। আমি লিনিয়ার স্পিডআপ দেখছি না, তবে আমি স্ট্যান্ডার্ড জাভা 8 কালেকশন সাজানোর অ্যালগরিদমের চেয়ে যথেষ্ট পারফরম্যান্স লাভ দেখছি যা অনুমিতভাবে একটি বহু-থ্রেডযুক্ত টিমসোর্ট। আমার পিএসআরএস বাস্তবায়ন ডিফল্ট জেডি কে সাজানোর অ্যালগরিদমের জন্য 19759 এমএসের সাথে তুলনা করে গড়ে 4985 এমএসে 40M উপাদানগুলি সাজায়।
ব্রডবার বিয়ার 5'16

4

এই কাগজটি একবার দেখুন: একটি স্কেলযোগ্য সমান্তরাল বাছাই অ্যালগরিদম নির্ভুল স্প্লিটটিং ব্যবহার করে । এটি 32 টিরও বেশি কোরের সাথে সম্পর্কিত। যাইহোক, এটি বিশদে একটি অ্যালগরিদম বর্ণনা করে, যা চলমান সময়ের জটিলতা রয়েছে (এন / পি * লগ (এন) + পি * লগ (এন) ** 2) এবং স্বেচ্ছাসেবী তুলকদের জন্য প্রযোজ্য।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.