সমান্তরাল জটিলতার ফলাফলকে নিয়মিতভাবে অনেকগুলি কোর কীভাবে স্কেল করবেন?


20

ক্লাস এনসি দ্বারা প্রদত্ত "সমান্তরাল অ্যালগোরিদম দ্বারা দক্ষতার সাথে সমাধান করা" এর জটিলতা তাত্ত্বিক দৃষ্টিভঙ্গি গ্রহণ করতে আমার সমস্যা হয়েছে :

এনসি সমস্যার ঐ সময়ের মধ্যে একটি সমান্তরাল আলগোরিদিম দ্বারা সমাধান করা যেতে পারে এর বর্গ উপর সঙ্গে প্রসেসর ।O(logcn)p(n)O(nk)c,kN

আমরা একটি প্র্যাম অনুমান করতে পারি ।

আমার সমস্যাটি হ'ল এটি "রিয়েল" মেশিন সম্পর্কে খুব বেশি কিছু বলে মনে হচ্ছে না, এটি হ'ল একটি সীমাবদ্ধ পরিমাণ প্রসেসরযুক্ত মেশিন। এখন আমাকে বলা হয়েছে যে "এটি জানা যায়" যে আমরা "দক্ষতার সাথে" একটি প্রসেসরের অ্যালগরিদমকে প্রসেসরের তে সিমুলেট করতে পারি ।O(nk)pN

এখানে "দক্ষতার" অর্থ কী? এই লোককাহিনীটি নাকি কোনও কঠোর উপপাদ্য যা সিমুলেশন দ্বারা সৃষ্ট ওভারহেডকে পরিমাণমতো দেয়?

যা ঘটতে আমি ভয় পাই তা হ'ল আমার একটি সমস্যা রয়েছে যার ক্রমযুক্ত অ্যালগরিদম এবং একটি "দক্ষ" সমান্তরাল অ্যালগরিদম যা প্রসেসরের উপর সিমুলেটেড হওয়ার পরে সময়ও নেয় (যা বিশ্লেষণের এই গ্রানুলারিটি স্তরে যা আশা করা যায় সেগুলিই যদি সিক্যুয়াল আলগোরিদম asyptotically অনুকূল হয়)। এক্ষেত্রে, যতদূর আমরা দেখতে পাচ্ছি সেখানে গতির কোনও গতি নেই; প্রকৃতপক্ষে, সিমুলেটেড সমান্তরাল অ্যালগরিদম অনুক্রমিক অ্যালগরিদমের তুলনায় ধীর হতে পারে । এটি আমি বাউন্ডস (বা এই জাতীয় ফলাফলের অনুপস্থিতির ঘোষণা) এর চেয়ে আরও সুনির্দিষ্ট বিবৃতি খুঁজছি ।O(nk)pO(nk)O


ব্রেন্টের উপপাদ্য?
cic

আপনি কি ? যদি তা হয় তবে এটি (আফাইক) কেবলমাত্র নির্দিষ্ট পরিস্থিতিতে প্রযোজ্য এবং তাত্ক্ষণিকভাবে রানটাইম অনুবাদ করার অনুমতি দেয় না। অথবা যদি তা করে থাকে তবে দয়া করে একটি উত্তরে বিস্তারিত জানুন। Tp<Wp+D
রাফেল

এনসি প্রশ্নের উত্তর দিয়েছিলেন "কম রান-টাইমের জন্য আরও হার্ডওয়্যার ট্রেড-অফ করা সম্ভব?" আপনি নিজেকে ধ্রুবক হার্ডওয়্যারে সীমাবদ্ধ রাখতে চাইতে পারেন এবং এটি নিজেকে ধ্রুব স্মৃতিতে সীমাবদ্ধ করার অনুরূপ, কিছু সমস্যার উন্নত মডেলিং। ব্যবহারিক ব্যবহারের জন্য দেখুন বাহ্যিক চেহারা সংযোজনকারীদের, আরও বেশি হার্ডওয়্যার যাতে বিট সংযোজন এ সম্পন্ন হয় । NO(N)
এপ্রোগ্রামার

উত্তর:


13

যদি আপনি ধরে নেন যে প্রসেসরের সংখ্যা একটি ধ্রুবক দ্বারা আবদ্ধ হয়, তবে আপনি ঠিক বলেছেন যে এনসি-তে থাকার কারণে কোনও সমস্যা অনুশীলনে খুব বেশি বোঝায় না। যেহেতু কে প্রসেসর এবং টি সমান্তরাল সময়ের সাথে একটি প্র্যামে থাকা কোনও অ্যালগরিদম ও ( কেটি ) সময়ের মধ্যে একটি একক-প্রসেসরের র‌্যামের সাথে সিমুলেটেড করা যায় , সমান্তরাল সময় এবং ক্রমিক সময়টি কেবলমাত্র ধ্রুবক ফ্যাক্টর দ্বারা পৃথক হতে পারে যদি কে ধ্রুবক হয়।

তবে, যদি আপনি ধরে নেন যে ইনপুট আকার বাড়ার সাথে সাথে আপনি আরও প্রসেসর সহ একটি কম্পিউটার প্রস্তুত করতে পারেন, তবে এনসিতে থাকা একটি সমস্যাটির অর্থ হ'ল যতক্ষণ আপনি আরও প্রসেসর প্রস্তুত করতে পারবেন, চলমান সময়টি "খুব কম" বা আরও স্পষ্টভাবে বলা যাবে, ইনপুট আকারে বহুগুণিত। আপনি যদি ভাবেন যে এই অনুমানটি অবাস্তব, এটি আনবাউন্ডেড মেমরির অনুমানের সাথে তুলনা করুন: প্রকৃত কম্পিউটারগুলির কেবলমাত্র সীমাবদ্ধ স্থান রয়েছে, তবে অ্যালগরিদম এবং জটিলতার অধ্যয়নের ক্ষেত্রে আমরা প্রায় সর্বদা অনুমান করি যে একটি গণনা যন্ত্রের ধ্রুবক উপরের নেই স্থান আবদ্ধ। অনুশীলনে, এর অর্থ হ'ল ইনপুট আকার বাড়ার সাথে সাথে আমরা আরও মেমরির সাথে একটি কম্পিউটার প্রস্তুত করতে পারি, যা আমরা সাধারণত আসল বিশ্বে কম্পিউটার ব্যবহার করি। সমান্তরাল গণনার ক্ষেত্রে এনসি মডেলগুলি অ্যানালগাস পরিস্থিতি তৈরি করে।


1
1) হ্যাঁ, ক্রমাগত অনেক কোর উপর parallelising করতে শুধুমাত্র ধ্রুবক speedup ফলন হয়। এটি অন্তর্নিহিত এবং দু: খজনকভাবে বিদ্যালয়ের মধ্যে লুকানো । (ইমো) আকর্ষণীয় প্রশ্নটি: আমি কি (সর্বোত্তম) স্পিডআপ কে , বা কেবল কে / 2 , বা কে - 1 পেতে পারি? 2) যদিও প্রচুর র্যামের উপলব্ধতার (এবং, প্রযুক্তিগতভাবে আপনি হার্ড ডিস্ক যুক্ত করতে পারেন ) অসীম স্মৃতির ধারণা অনুধাবন করা যায় তবে প্রসেসরের ক্ষেত্রে এটি সাধারণত সত্য নয়। সাধারণ (ব্যক্তিগত) মেশিনগুলিতে আজকাল 16 বা কম কোর রয়েছে। অন্য কথায়, আপনি প্রাসঙ্গিক সমস্যার আকার পর্যন্ত "সাধারণ" ফলাফলগুলি ব্যবহার করতে পারেন, অনেকগুলি সমান্তরাল ফলাফল কেবল n 20 অবধি ।Okk/2k1n20
রাফায়েল

4
@ রাফেল: কোনও নির্দিষ্ট সমস্যা এনসির অন্তর্ভুক্ত কিনা তা আপনার প্রশ্নকে মডেল করে না। আমি বলছি না যে আপনার প্রশ্নটি উদ্বেগজনক; আমি শুধু বলছি যে মডেল করার জন্য এনসি সঠিক জটিলতা শ্রেণি নয়।
সোসোশি ইটো

শুনে আমি আসলেই খুশি; যদিও একজন ব্যক্তি অন্যথায় দাবি করে। অগত্যা এনসির সাথে নয় সাধারণভাবে জটিলতার তাত্ত্বিক ফলাফলগুলি রয়েছে। অন্যান্য ক্লাসের সাথে এটি কেমন?
রাফেল

একটি সংশোধন: এনসিতে থাকা একটি সমস্যাটির অর্থ হ'ল চলমান সময়টি পলিওগ্রাথমিক হয় যদি প্রসেসরের সংখ্যা ইনপুট আকারের পর্যাপ্ত পরিমাণে বহুগুণ হয়। তর্কযোগ্যভাবে আরও বাস্তবসম্মত দৃশ্যে যেখানে প্রসেসরের সংখ্যা হ'ল ( √) এর মতো একটি নির্দিষ্ট বহুপদী , বা(লগএন) এরমতো ধীর ধীরে ধীরে অবিচ্ছিন্ন ফাংশন, এনসির সদস্যপদ আনুষ্ঠানিকভাবে কোনও কিছুই বোঝায় না। O(n)O(logn)
জেফি

@ জেফি: এটি কোনও সংশোধন নয়। আমি কেবল তার কঠোর অর্থ না দিয়েই "আরও প্রসেসর প্রস্তুত করুন" লিখেছি (কারণ আমি ভেবেছিলাম যে এটি করা বিষয়টিটিকে অস্পষ্ট করবে)।
সোসোশি ইতো

10

আমি আপনাদের সাথে সম্মত হই যে দক্ষ সমান্তরাল অ্যালগরিদমগুলিকে চিহ্নিত করার জন্য সর্বোত্তম উপায় নয়।NC

প্রকৃতপক্ষে, সংজ্ঞা অনুসারে এনসি-তে প্রচুর সমস্যাও রয়েছে যা দক্ষতার সাথে সমান্তরাল নয় not একটি সাধারণ উদাহরণ সমান্তরাল বাইনারি অনুসন্ধান। সমস্যা দেখা দেয় কারণ সমান্তরাল বাইনারি অনুসন্ধানে জন্য পলিওগারিদমিক সময় জটিলতা রয়েছে । সবচেয়ে খারাপ ক্ষেত্রে সর্বাধিক লগারিদমিক সময়ে যে অনুক্রমের আলগোরিদিম প্রয়োজন হয় তা সমান্তরাল সম্ভাব্যতা নির্বিশেষে এন সি-তে থাকেp=1NC

তবে অপেক্ষা করুন, আরো আছে।

অ্যালগরিদমগুলি বহু-বহুসংখ্যক প্রসেসরের সমান্তরাল মেশিনগুলিকে বহুগঠিত সময়ের মাঝারি আকারের সমস্যাগুলি সমাধান করার জন্য ধরে নেয়। তবে, অনুশীলনে আমরাবড়সমস্যাগুলিসমাধান করার জন্য মাঝারি আকারের মেশিনগুলি (প্রসেসরের শর্তে) ব্যবহার করি। প্রসেসরের সংখ্যা উপ-বহুবচন এমনকি এমনকি সাবলাইনার হতে থাকে।NC

অবশেষে, সেখানে সমস্যা আছে sublinear সমান্তরাল সময়ের সাথে সাথে হে ( ε ) , 0 < ε < 1 .Therefore এই সমস্যাগুলি অন্তর্গত না এন সি । এখন, সাবলাইনার ফাংশনগুলিতে কেবল এন এর ব্যবহারিকভাবে বড় মানের জন্য একটি প্রাসঙ্গিক অ্যাসিম্পটোটিক আচরণ থাকতে পারে এবং এর পরিবর্তে এন এর ব্যবহারিক মানগুলির জন্য অনেক কম প্রগতিশীল হতে পারে । উদাহরণ হিসাবে, PO(nϵ),0<ϵ<1NCnnজন্যএন0.5×109। এটি অনুসরণ করে যে সাবলাইনার সমান্তরাল সময়ের অ্যালগরিদমগুলিএনসিঅ্যালগরিদমেরচেয়ে দ্রুত চলতেপারেn<lg3nn0.5×109NC

উত্তরের একটিতে এটি পর্যবেক্ষণ করা হয়েছে যে "অনুশীলনে, এর অর্থ ইনপুট আকার বাড়ার সাথে সাথে আমরা আরও বেশি স্মৃতিযুক্ত একটি কম্পিউটার প্রস্তুত করতে পারি, যা আমরা সাধারণত আসল বিশ্বে কম্পিউটারগুলি ব্যবহার করি N সমান্তরাল গণনা "।

আমি এই দৃষ্টিভঙ্গির সাথে আংশিকভাবে একমত আমরা যখন পুরানো সুপার কম্পিউটারটি ডিসমোশন করা হয় তখন আরও মেমরির সাথে একটি নতুন সমান্তরাল কম্পিউটার কিনি কারণ ডিআরএএম চিপগুলি সময়মতো কম ব্যয় হয় এবং এর প্রধান উপাদানগুলি (প্রসেসর, মেমরি, আন্তঃসংযোগ ইত্যাদি) সম্পর্কিত সমান্তরাল কম্পিউটারের ভারসাম্য বজায় রাখার জন্য।

তবে, স্মৃতি যেহেতু একটি সীমাবদ্ধ সম্পদ, তাই কোনও সমস্যার বৃহত্তর উদাহরণগুলি সমাধানের জন্য একটি সুপার কম্পিউটারে আরও মেমরি যুক্ত করার প্রয়োজন ছাড়াই এটিকে দক্ষতার সাথে ব্যবহার করার বিষয়ে প্রচুর গবেষণা হয়েছে। উদাহরণস্বরূপ, সান এবং নী মেমরি-সীমাবদ্ধ গতিরোধের ধারণাটি প্রস্তাব করেছিল, এবং কুইন তথাকথিত স্কেলাবিলিটি ফাংশনটির প্রস্তাব করেছিলেন যা কার্যক্ষমতার একটি ধ্রুবক স্তর বজায় রাখতে প্রসেসরের প্রতি মেমরির পরিমাণ কীভাবে বাড়াতে হবে তা পরিমাপ করে। সাধারণভাবে, যেহেতু সমান্তরাল ওভারহেড বৃদ্ধি পায় যখন প্রসেসরের সংখ্যা বৃদ্ধি পায়, তাই সমস্যার সমাধানের আকারটি বাড়িয়ে আমরা দক্ষতা বজায় রাখি। কিন্তু সর্বোচ্চ সমস্যা আকার প্রধান মেমরি (পরিমাণ যা রৈখিক হয় দ্বারা সীমাবদ্ধ p)। স্কেলাবিলিটি ফাংশনটি আইসোফিসিয়েন্সি ফাংশন এবং অন্য একটি ফাংশন ব্যবহার করে যা প্রসেসরের প্রতি মেমরির পরিমাণ কীভাবে বৃদ্ধি পেতে হবে তা নির্ধারণ করতে আকার এর একটি সমস্যা সঞ্চয় করতে প্রয়োজনীয় মেমরির পরিমাণ বোঝায় । যখন এই ফাংশনটি একটি ধ্রুবক হয়, সমান্তরাল অ্যালগরিদম পুরোপুরি স্কেলেবল হয় (মেমরির দৃষ্টিভঙ্গির ব্যবহার থেকে)। স্মৃতি উপলব্ধ থাকলেও সমস্যার আকার বাড়িয়ে একই স্তরের দক্ষতা বজায় রাখা সম্ভব। যাইহোক, যেহেতু প্রসেসরের প্রতি ব্যবহৃত মেমরি পি এর সাথে রৈখিকভাবে বৃদ্ধি পায় , এক পর্যায়ে এই মানটি সিস্টেমের মেমরির ক্ষমতাতে পৌঁছে যাবে। প্রসেসরের সংখ্যা এই বিন্দু ছাড়িয়ে গেলে দক্ষতা বজায় রাখা যায় না।np

সুতরাং, মেমোরি স্কেলেবল সমান্তরাল অ্যালগরিদমগুলি ডিজাইন করা ক্রমশ গুরুত্বপূর্ণ, যেহেতু এগুলি বড় সমস্যার জন্য ব্যবহারিক।

n3n

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