সমান্তরাল ডিবাগিংয়ের জন্য কোন সফ্টওয়্যার ব্যবহার করা ভাল?


24

আমি এখনই কোনও সমান্তরাল কোড চালাচ্ছি না, তবে ভবিষ্যতে ওপেনএমপি এবং এমপিআইয়ের হাইব্রিড ব্যবহার করে সমান্তরাল কোড চলার প্রত্যাশা করছি। সিরিয়াল প্রকল্পগুলি চলাকালীন ডিবাগারগুলি আমার জন্য মূল্যবান সরঞ্জাম হয়ে দাঁড়িয়েছে।

সমান্তরাল সফ্টওয়্যার ডিবাগিংয়ের জন্য যে কেউ একটি প্যারালাল ডিবাগার (বা একাধিক ডিবাগার) ব্যবহার করার পরামর্শ দিতে পারেন? ফ্রি সফটওয়্যারটি পছন্দনীয় হবে তবে কার্যকর বাণিজ্যিক সফ্টওয়্যার উল্লেখ করতে দ্বিধা করবেন না।


আমি দেখতে পাই না যে এখানে উত্তরগুলি স্ট্যাকওভারফ্লো / প্রশ্নগুলি / ৩২২২২৯৯ / এর থেকে উল্লেখযোগ্যভাবে আলাদা হবে । এমপিআই এখানে শক্ত অংশ, ওপেনএমপি নয়। যাই হোক না কেন, থ্রেডেড প্রোগ্রামগুলিতে রেস শর্তগুলি ডিবাগ করা এখনই সীমান্তরেখা অবিশ্বাস্য।
জেফ

থ্রেডসানাইটিজার থ্রেডেড প্রোগ্রামগুলিতে রেস অবস্থার ডিবাগিংয়ের জন্য একটি ভাল সমাধান, যদিও আমি এমন কাউকেই জানি না যে এমপিআই মিশ্রণের জন্য চেষ্টা করেছিল!
mabraham

উত্তর:


17

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

Eclipse এর সমান্তরাল সরঞ্জাম প্ল্যাটফর্ম রয়েছে , যার মধ্যে MPI এবং ওপেনএমপি প্রোগ্রামিং সমর্থন এবং একটি সমান্তরাল ডিবাগার অন্তর্ভুক্ত করা উচিত।


আমি কখনও কারও পিটিপি প্যারালাল ডিবাগার ব্যবহারের কথা শুনিনি। আমি এর অর্থ কী তা নিশ্চিত নই ...
জেফ

আমার কয়েকজন সহকর্মী আছে যারা চেষ্টা করেছে, কিন্তু আমি নিজেই এর সাথে খেলিনি।
বিল বার্থ

16

আমি অবশ্যই curmudgeon উত্তর দিতে হবে। আমার উত্পাদনশীলতা উপরের যে কোনও পরামর্শের দ্বারা উন্নত হয়নি। সমান্তরালভাবে আমার পছন্দসই বিকল্পের তুলনায় এগুলি ধীর এবং ব্যয়বহুল: প্রতি প্রক্রিয়াতে একটি জিডিবি সেশন। প্রতিটি জিডিবি এমপিআই প্রসেসের সাথে সংযোগ স্থাপন করতে পারে এবং একটি এক্সটার্মে বসে থাকতে পারে (এটি ব্যবহার করে পিইটিএসসিতে স্বয়ংক্রিয়ভাবে ঘটে -start_in_debugger)। আমি 15 বছর ধরে এটি সুখে ব্যবহার করেছি। আপত্তি:

1) আমি বিশ্বব্যাপী ডেটা দেখতে পারি না

যেহেতু এমপিআই একটি ভাগ করা-না মডেল, তাই কোনও বিশ্বব্যাপী ডেটা নেই, কেবল স্থানীয় ডেটা

2) এই কৌশলটি প্রচুর প্রক্রিয়াতে স্কেল করে না

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

জিডিবিও খুব বহনযোগ্য। এটি সর্বত্র চলতে থাকে, সি ++ এবং ফোর্টরান বোঝে এবং আপনাকে রানের মধ্যে স্বেচ্ছাসেবক কোড কার্যকর করতে দেয়। আমি এটি চালানোর সময় সহজেই ডেটা প্রদর্শনের জন্য বিশেষ ফাংশন লিখেছি।


4
আরে কাপওয়ার্ড, যদি আপনি ডাউনটি করেন তবে একটি মন্তব্য দিন।
ম্যাট নিপলি

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

3
আমি যখন মাত্র একবার স্কেলে কোনও বাগের মুখোমুখি হয়েছি তা হল একটি অনুচিত সমষ্টিগত আলগোরিদম বেছে নেওয়ার কারণে একটি পারফরম্যান্স বাগ। তারপরে আবার, আমার দৃষ্টিভঙ্গি ম্যাট-এর চেয়েও চরম, কারণ আমি যে কোনও ডিবাগারের নিকটতম জিনিসটি ব্যবহার করি তা হ'ল ভ্যালগ্রাইন্ড।
জ্যাক পলসন

1
@ বিলবার্থ আমি জানি যে আপনি ঠিক বলেছেন যে 1000 টি প্রসেসে বাগগুলি রয়েছে যা ছোট সমস্যাগুলি দেখায় না (দীনেশের একটি বিখ্যাত পিইটিএসসি ছিল যা কয়েক মাস ধরে চলেছিল যা কেবলমাত্র 82 টি প্রকল্পে প্রদর্শিত হয়েছিল)। আমার বক্তব্যটি ছিল বিরাজমান জ্ঞানের বিরুদ্ধে লড়াই করার জন্য। আমি মনে করি সমান্তরাল ডিবাগারগুলি একটি ভাল শেষ রিসর্ট, প্রথম রিসর্ট নয়।
ম্যাট নিপলি

3
আমি তোমাকে হ্রাস করেছি আপনার উত্তর কি জিজ্ঞাসা করা হয়নি।
অ্যারারেল

5

আমি সিরিয়াল এবং সমান্তরাল প্রোগ্রামগুলির জন্য মাত্র দুটি ডিবাগার ব্যবহার করি:

  1. কার্নিগান ডিবাগার, অর্থাত্ ন্যায়বিচারমূলক মুদ্রণ বিবৃতি এবং সতর্কতার সাথে চিন্তাভাবনা।
  2. http://www.open-mpi.org/faq/?category=debugging#serial-debuggers হিসাবে বর্ণিত জিডিবির একাধিক উদাহরণ ।

যে ক্ষেত্রে (2) পর্যাপ্ত পরিমাণে স্কেলযোগ্য নয়, আমি (1 বি) উল্লেখ করি।


1
আমি "কার্নিগান ডিবাগার" নামটি কখনও শুনিনি, তবে আমি সম্মতি জানাই, কারণ আমি সবসময় এটিই ডিবাগ করি।
জ্যাক পলসন

4

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

আমি জিডিবির চারপাশে কয়েকটি মোড়ক দেখেছি যা কিছু ক্ষেত্রে যুক্তিসঙ্গতভাবে কাজ করে।


3

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


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

আমিও দ্বিতীয় পর্যালোচনা। আমি এটি অনেক ক্ষেত্রে ব্যবহার করেছি এবং এটি অত্যন্ত শক্তিশালী, যদিও অত্যন্ত ব্যয়বহুল ...
ব্লেব

1

সমান্তরাল কোডগুলি ডিবাগ করার কয়েকটি সহজ উপায়ের জন্য, আমরা ডিলের কয়েকটি উত্তর সংগ্রহ করেছি deb ডিবাগিংয়ের বিভাগে আইআইএফএইউগুলি: https://github.com/dealii/dealii/wiki/Freantly-Asked-Questions#debugging -dealii-অ্যাপ্লিকেশন


1

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


-1

আমাকে আগে দেওয়া কিছু উত্তরের ডাইজেস্ট এখানে দেওয়া হয়েছে:

ওপেনএমপি-তে সময় নির্ধারণের কার্য রয়েছে: omp_get_wtime()এবং omp_get_wtick()- অনলাইন ডক্স s

গুগলের একটি সিপিইউ প্রোফাইলার রয়েছে

ওপেনএমপি এবং এমপিআই প্রোফাইল এবং বিশ্লেষণ করে এমন স্কেলাস্কা রয়েছে

তারপরে তাউ এবং ভিটিউন আছে যা আমি ব্যবহার করি নি।

শুভকামনা!


আমি মনে করি না যে প্রশ্নটি সময় নির্ধারণের বিষয়ে, তবে আমি ভুল হতে পারি। ভাল পরামর্শ যদিও ...
ইয়ান

এই উত্তরটি ডিবাগিংয়ের চেয়ে প্রোফাইলিং সম্পর্কে আরও ...
এমবিকিউ

আমি খুঁজে পেয়েছি যে প্রোফাইলিং সরঞ্জামগুলি সমান্তরাল ডিবাগারগুলির জন্য ভাল বিকল্প তৈরি করে। আমি প্রায়শই দেখতে পাই যে সমান্তরাল বাগগুলি পারফরম্যান্স সমস্যার সাথে সম্পর্কিত, যেমন এমপিআইতে লগজাম। পারফরম্যান্স সরঞ্জামগুলি প্রায়শই এটি প্রকাশ করে। টিএইউর মেমরির প্রোফাইলারটি কেন এলোমেলো সেগফাল্টস হতে পারে তা নির্ধারণের জন্য ভাল।
জেফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.