সমান্তরাল আই / ও বিকল্পগুলি, বিশেষত সমান্তরাল এইচডিএফ 5


20

আমার কাছে এমন একটি অ্যাপ্লিকেশন রয়েছে যা তুচ্ছভাবে সমান্তরাল হতে পারে তবে এর কার্যকারিতা অনেকাংশে I / O আবদ্ধ। অ্যাপ্লিকেশনটি একটি ফাইলে সঞ্চিত একক ইনপুট অ্যারে পড়বে যা সাধারণত 2-5 জিবি আকারের হয় (তবে আমি ভবিষ্যতে এই সংখ্যাটি বাড়বে বলে আশা করি)। একটি সাধারণ গণনা সেই অ্যারের প্রতিটি সারি বা কলামে একই ক্রিয়াকলাপ প্রয়োগ করে। সিপিইউ-ভারী অপারেশনের জন্য, আমি প্রায় 100 প্রসেসর পর্যন্ত খুব ভাল স্কেলিং পাই তবে ধীর গতির জন্য I / O এবং সম্পর্কিত যোগাযোগের (এনএফএস অ্যাক্সেস) আধিপত্য রয়েছে এবং আমি কয়েকটি প্রসেসরের বেশি দক্ষতার সাথে ব্যবহার করতে পারি না।

এই ধরনের পরিস্থিতির জন্য দক্ষ এবং পোর্টেবল (আদর্শ পোর্টেবল দক্ষ) বিকল্পগুলি কী কী? সমান্তরাল এইচডিএফ 5 আশাব্যঞ্জক বলে মনে হচ্ছে। কারও সাথে এর বাস্তব জীবনের অভিজ্ঞতা আছে কি?

এমপিআই -আই / হে কি কিছু দেখার জন্য উপযুক্ত হবে? এটি কোনও প্রদত্ত ফাইল বিন্যাসের সাথে দক্ষতার সাথে কাজ করতে পারে, বা আমার কি সমস্ত কিছু মানিয়ে নিতে হবে?


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

প্রসেসরের জুড়ে আপনি কীভাবে অ্যারে বিতরণ করছেন? আপনি এখন সমান্তরালতার জন্য কী ব্যবহার করছেন? আপনি কি যোগাযোগের ফর্ম হিসাবে এনএফএসের মাধ্যমে ফাইলগুলিতে লিখছেন?
ড্যান

2
আপনাকে আপনার কোডটি খুব বেশি পুনরায় কাজ করতে হবে না; আমার একবার এর মতো সমস্যা হয়েছিল এবং IO এড়াতে এটির চেয়ে আরও ভাল স্পিডআপ অর্জন করতে সক্ষম হয়েছি।
ড্যান

1
আপনি কি পিবিএস বা টর্কের মতো একটি সারি ব্যবস্থা ব্যবহার করছেন? যদি তা হয় তবে কোনও কাজ শুরু হওয়ার পরে কিছু ডিরেক্টরিতে একটি ফাইল "স্টেজ ইন" করার কমান্ড রয়েছে। আমি জানি না যে এটি জিনিসগুলিতে লক্ষণীয়ভাবে গতি বাড়িয়ে তুলবে কিনা তবে এটি শটের জন্য মূল্যবান হতে পারে।
ড্যান

1
@ ড্যান: হ্যাঁ, আমি পিবিএস ব্যবহার করি এবং আমার ফাইলটি যেখানে খুশি রাখার জন্য এটি ব্যবহার করতে পারি। তবে যেহেতু আমার ক্লাস্টারে নোড-লোকাল ডিস্ক নেই, তাই ভাগ করা এনএফএস ভলিউমের চেয়ে ভাল আর কিছু নেই।
খিনসন

উত্তর:


6

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

এমপিআই-আইও খুব নিম্ন স্তরের; সমান্তরাল এইচডিএফ 5, নেট ডিসিডিএফ 4 , বা এডিআইওএস দিয়ে "হুডের নীচে" কী চলছে তা জানতে এটির কিছু বোঝার উপযুক্ত , তবে এটি নিজেকে ব্যবহার করা সত্যই কেবল কাঁচা বাইনারি ডেটার জন্য উপযুক্ত যেখানে কাঠামো সংকলনের সময় সুপরিচিত। এইচডিএফ 5 এবং নেট ডিসিডিএফ 4 অনেক বেশি নমনীয়।

নোট করুন যে আপনার ডেটা তুলনামূলকভাবে সহজ হলে - যেমন, বড় ডেটা স্ট্রাকচারগুলি মূলত এন-ডাইমেনশনাল অ্যারে বা ভেক্টর হয় - আমি এইচডিএফ 5 এর পরিবর্তে নেটসিডিএফ 4 (যা সমান্তরাল এবং এইচডিএফ 5 এর উপর ভিত্তি করে) প্রস্তাব দিচ্ছি; এটি গুরুত্ব সহকারে সহজ। এইচডিএফ 5 আরও জটিল, এবং সেই জটিলতার বিনিময়ে খুব জটিল ডেটা মডেলগুলিকে মঞ্জুরি দেয়। তবে যদি এটি এমন কোনও বৈশিষ্ট্য হয় যা আপনার প্রয়োজন হয় না, এটি নেটসিডিএফ 4 এ শুরু করা দ্রুত।

আমাদের কেন্দ্রে সমান্তরাল আই / ও-তে আমরা একটি বিকেল-দীর্ঘ এবং একটি দিনব্যাপী ক্লাস করি যেখানে আমরা বেসিক ধারণাগুলি, এমপিআই-আইও, এইচডিএফ 5 এবং নেটসিডিএফ 4 সম্পর্কে কথা বলি; স্লাইডগুলি এখানে পাওয়া যাবে


5

আউটপুট ভেক্টরগুলিতে এমপিআই / আইও ব্যবহার করে আমরা ওআরএনএলে পুরো এক্সটি aling পর্যন্ত ভাল স্কেলিংটি পাই। কোডটি এখানে । অনেকগুলি মেশিনের জন্য আই / ও সাবসিস্টেমগুলি বৃহত্তর সমান্তরালতার জন্য ডিজাইন করা হয়নি, তাই আমার মনে হয় @ ড্যান সঠিক যে আমি প্রতি কয়েক ধাপে বা অন্য কিছু সংশ্লেষণের কৌশল লিখে IO হ্রাস করার চেষ্টা করব।

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


এক্সডিএমএফ আকর্ষণীয় দেখায়, তবে এটি এক্সডিএমএফ "ভারী" ডেটা কী বলে দক্ষতার সাথে অ্যাক্সেস করার চেয়ে ডেটা সংগঠিত করার বিষয়ে about আপনি কি সেই দিকটির জন্য ব্যবহার করবেন?
খিনসন

আমরা এইচডিএফ 5 এ নির্দেশ করতে কেবল এক্সডিএমএফ ব্যবহার করি। এইভাবে আপনি সমস্ত বাইনারি এইচডিএফ 5 লিখতে পারেন তবে এটি বেশিরভাগ ভিজ্যুয়ালাইজেশন ইঞ্জিন দ্বারা পড়তে পারেন।
ম্যাট নিপলে

1

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

আমি বর্তমানে যা করছি তা খুব অনুকূল নয়, তবে আপাতত কাজ করে। আমি একটি সিপিইউতে পুরো জিনিসটি সংগ্রহ করি এবং সিরিয়াল আউটপুট করি। এরই মধ্যে, অন্যান্য খেলোয়াড়েরা লেখকের সমাপ্তির জন্য অপেক্ষা করে। এটি আমার পক্ষে ভাল কাজ করেছে কারণ আমি আউটপুট অনুপাতের তুলনায় গণনাটি পরিচালনা করতে সক্ষম হয়েছি - সুতরাং 200 সিপিইউ-র জন্য স্কেলাবিলিটি ভাল হবে। তবে আপনি যে সমাধানটি সন্ধান করছেন এটি এটি নয়।

আরেকটি সমাধান হ'ল যা পরামর্শ দিয়েছে - এন ফাইলগুলিতে সিরিয়ালি লিখুন এবং একটি ড্রোন সিপিইউ টাইলস এক টুকরোতে একত্র করুন - যদি এটি রাম অনুমতি দেয় তবে।

পূর্ববর্তী উত্তরে প্রস্তাবিত সমান্তরাল আই / ও লাইব্রেরিগুলি ছাড়াও আপনি প্যারালাল নেটসিডিএফ http://trac.mcs.anl.gov/projects/parallel-netcdf সন্ধান করতে পারেন , যেহেতু আপনি ইতিমধ্যে নেটসিডিএফ এবং এমপিআইয়ের সাথে স্বাচ্ছন্দ্য বোধ করছেন। আমি এটি অনুশীলনে ব্যবহার করি নি, তবে আমি যখন + সিরিয়াল আই / ও জমায়েত করে দেয়ালে আঘাত করি তখন সেই দিকে যাওয়ার পরিকল্পনা করি।


এটি ইনপুট যা আমার স্কেলিবিলিটি সমস্যা তৈরি করে। আমি মনে করি যে অনেক নোডের সমস্ত আগত অনুরোধগুলি এনএফএস সার্ভারকে ওভারলোড করে, তবে এই অনুমানটি কীভাবে যাচাই করা যায় তা সম্পর্কে আমার কোনও ধারণা নেই।
খিনসেন

@খিনসেন আপনার হাইপোথিসিসটি পরীক্ষা করতে আপনি যা করতে পারেন তা হ'ল ফাইলটি অল্প সংখ্যক সিপিইউ দিয়ে পড়তে হবে, 1 থেকে 8 এর মধ্যে বলুন এবং বাকীগুলিতে ডেটা ছড়িয়ে দিন। প্রোফাইলিং করুন, দেখুন আপনি I / O তে কতটা সময় ব্যয় করেন এবং কতটা ছড়িয়ে ছিটিয়ে থাকেন। সিপিইউ পাঠকদের সংখ্যার বৈচিত্র্য রাখুন এবং দেখুন যে আপনাকে সেরা পারফরম্যান্স দেয়।
মিলানসার্কিক

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