একটি বৃহত স্পারস প্রতিসাম্য (তবে ইতিবাচক নির্দিষ্ট নয়) সিস্টেমের জন্য সলভারের সেরা পছন্দ


10

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


3
আমি মনে করি না যে লোকেরা আপনার নির্দিষ্ট ম্যাট্রিক্স সম্পর্কে আরও বিশদ না জেনে সত্যই কার্যকরভাবে এটিতে মন্তব্য করতে পারে। মাত্রা কি? স্পারসিটি প্যাটার্নটি কী রকম?
কস্টিস

2
আপনি কী বোঝাতে চেয়েছেন তার উপর অনেক কিছুই নির্ভর করে। কয়েক হাজারে কি ভেরিয়েবলের সংখ্যা, ? লক্ষ লক্ষ? এন
ব্রায়ান বোর্চার্স 15

2
এই প্রশ্নটি scicomp.stackexchange.com/q/81/276 দিয়ে যথেষ্ট ওভারল্যাপ হয় ; আপনি সেখানে দরকারী তথ্য পেতে পারেন। এছাড়াও, সেই প্রশ্নের ভিত্তিতে, আপনার অপারেটরের বর্ণালী (বা আপনার পূর্বশর্তীকৃত অপারেটরের বর্ণালী) সম্পর্কে কথা বলা কার্যকর হতে পারে।
জেফ অক্সবেরি

উত্তর:


9

এমএমএমএস স্পার্স ডাইরেক্ট সলভার সামিমিক অনির্দিষ্টকালের সিস্টেমগুলি পরিচালনা করতে পারে এবং নিখরচায় উপলভ্য ( http://graal.ens-lyon.fr/MUMPS/ )। ইয়ান ডাফ এমএমপিএস এবং এমএ ৫7 উভয়েরই একজন লেখক তাই আলগোরিদিমগুলির অনেক মিল রয়েছে।

এমএমএমপিএস বিতরণ-মেমরি সমান্তরাল কম্পিউটারগুলির জন্য ডিজাইন করা হয়েছিল তবে এটি সিঙ্গল-প্রসেসর মেশিনেও ভাল কাজ করে। আপনি যদি এটি একটি বহু-থ্রেডেড বিএলএএস লাইব্রেরির সাথে লিঙ্ক করেন তবে আপনি ভাগ করা মেমরি, মাল্টিকোর প্রসেসরের যুক্তিসঙ্গত স্পিডআপগুলি অর্জন করতে পারেন।

আপনি কতটা বড় "খুব বড়" তা বলেননি তবে এমএমএমপিএসের এমন সমস্যাগুলি পরিচালনা করার জন্য একটি বহিঃ-কোর ক্ষমতা রয়েছে যেখানে ফ্যাক্টরযুক্ত ম্যাট্রিক্স উপলব্ধ মেমরির সাথে খাপ খায় না।


7

সরাসরি সমাধানকারীরা যে সাধারণ সমস্যায় ভুগছেন তা হ'ল ফিল-ইন ঘটনাটি, যার অর্থ একটি স্পার্স ম্যাট্রিক্সের বিপরীতটি ঘন হতে পারে। ম্যাট্রিক্সের কাঠামো "উপযুক্ত" না হলে এটি বিশাল মেমরির প্রয়োজনীয়তা বাড়ে।

এই সমস্যাগুলি নিয়ে কাজ করার চেষ্টা রয়েছে এবং ম্যাটল্যাবের ডিফল্ট- luফাংশন তাদের কয়েকটিকে নিয়োগ দেয়। অনুমতি , তির্যক স্কেলিং এবং এর মতো একটি সংক্ষিপ্তসার জন্য http://www.mathworks.de/de/help/matlab/ref/lu.html দেখুন । এমএমএমএস ( http://graal.ens-lyon.fr/MUMPS/ ) এর মতো আরও উন্নত প্যাকেজগুলির ক্ষেত্রে অবশ্যই এটি সত্য ।

সাধারণভাবে, যদিও, আপনার সমস্যাটি যদি যথেষ্ট পরিমাণে বড় হয় তবে আপনি সেই স্মৃতি সীমানাকে আঘাত করবেন এবং আপনাকে পুনরাবৃত্ত (ক্রাইলোভ) পদ্ধতি ব্যবহার করতে হবে।

যদি আপনার সমস্যাটি প্রতিসম এবং অনির্দিষ্ট হয়, তবে মাইন্রেইস স্পষ্ট পছন্দ হতে পারে। দ্রষ্টব্য, তবে, GMRES এবং MINRES সঠিক গাণিতিক ক্ষেত্রে একই কাজ করে যদি সমস্যাটি প্রতিসাম্যপূর্ণ হয় তবে GMRES অরথোগোনালটির ক্ষতিতে কম ভুগতে থাকে। সুতরাং, কিছু লোক GMRES কে "MINRES এর সর্বোত্তম বাস্তবায়ন" হিসাবে বিবেচনা করে।

যাই হোক না কেন, আপনি সম্ভবত আপনার সিস্টেমকে পূর্বশর্ত করে লাভ করবেন। আপনি যদি পূর্ব শর্তের টেলিংয়ের জন্য সময় ব্যয় করতে না চান তবে অসম্পূর্ণ এলইউ-ফ্যাক্টরীকরণ পূর্বশর্ত (আইএলইউ) আপনাকে ইতিমধ্যে কোথাও পেতে পারে।


2

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


2

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

মতলবটিতে আপনি gmres ব্যবহার করতে পারেন, যা বেশ উন্নত এবং স্থিতিশীল। সম্ভবত খনিজগুলি, যা তাত্ত্বিকভাবে আপনার ক্ষেত্রে আদর্শ হতে হবে, এটি নির্ভরযোগ্য নাও হতে পারে (কমপক্ষে আমার অভিজ্ঞতাও তাই বলে)। আপনার যদি মাতলাব gmres থেকে সমান বা উচ্চতর দক্ষতা অর্জন করা উচিত

  1. আপনার সিস্টেমটি যথেষ্ট বড় (কমপক্ষে কয়েক হাজার বাই কয়েক হাজার)।
  2. আপনি যদি সঠিক ধরণের প্যারামিটার ব্যবহার করেন (RESTART, MAXIT, X0)। এর জন্য কোনও সুস্পষ্ট নির্দেশিকা উপলব্ধ নেই। আপনার অভিজ্ঞতা ব্যবহার করুন।
  3. একটি ভাল পূর্বশর্ত ব্যবহার করুন। আপনি আইএলইউ বা এমনকি সস্তা, ব্লক জ্যাকোবি ব্যবহার করতে পারেন। এটি প্রচেষ্টাকে যথেষ্ট পরিমাণে কাটাবে।
  4. সর্বাধিক গুরুত্বপূর্ণ: যদি আপনার ম্যাট্রিক্স বিস্মৃত হয় তবে ম্যাটল্যাব স্পার্স বিন্যাসটি ব্যবহার করুন। মতলব gmres আদর্শভাবে এটি জন্য নির্মিত হয়। এটি ব্যয় অনেকাংশে হ্রাস করবে।

এমনকি আরও বড় সিস্টেমে, পিইটিএসসি এর মতো একটি সরঞ্জাম ব্যবহার করুন।


1

যদি আপনার ম্যাট্রিক্সের দশকের হাজার দশকেরও কম বা তার কম মাত্রার মাত্রা থাকে তবে একটি সরাসরি পদ্ধতি ব্যবহার করুন, যদিও অনির্দিষ্টকালের প্রতিসাম্য সিস্টেমের জন্য অবাধে উপলভ্য সরাসরি কোনও পদ্ধতি নেই (আসলে আমি জানি না যে ওপেন সোর্স নয়)। এইচএসএল থেকে এমএ 57 রয়েছে , তবে এটি কেবল একাডেমিক ব্যবহারের জন্য বিনামূল্যে। আপনি অবশ্যই প্রতিসাম্য উপেক্ষা করতে পারেন এবং ইউএমএফপ্যাক ব্যবহার করতে পারেন

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

দুটি পদ্ধতির পরিবর্তে পৃথক বাস্তবায়ন প্রয়োজন, যেহেতু প্রত্যক্ষ পদ্ধতির জন্য আপনাকে আসলে ম্যাট্রিক্স গঠন করতে হবে, যখন পুনরাবৃত্তির পদ্ধতিতে আপনি সাধারণত ম্যাট্রিক্স স্পষ্টভাবে গঠন করতে পারবেন না।

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

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