GoGPT Best VPN GoSearch

অনওয়ার্কস ফেভিকন

পেগাসাস-এমপিআই-ক্লাস্টার - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে পেগাসাস-এমপিআই-ক্লাস্টার চালান

এটি পেগাসাস-এমপিআই-ক্লাস্টার কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


পেগাসাস-এমপিআই-ক্লাস্টার - ডিএজি হিসাবে প্রকাশ করা কম্পিউটেশনাল ওয়ার্কফ্লো চালানোর জন্য একটি টুল
MPI ব্যবহার করে কম্পিউটেশনাল ক্লাস্টারে (নির্দেশিত অ্যাসাইক্লিক গ্রাফ)।

সাইনোপিসিস


পেগাসাস-এমপিআই-ক্লাস্টার [বিকল্প] workflow.dag

বর্ণনাঃ


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

পেগাসাস-এমপিআই-ক্লাস্টার ঢিলেঢালাভাবে সংযুক্ত HTC অ্যাপ্লিকেশনগুলিকে সক্ষম করার জন্য তৈরি করা হয়েছিল যেমন
HPC সিস্টেমের সুবিধা নিতে বৈজ্ঞানিক কর্মপ্রবাহ। যাতে নেটওয়ার্ক কাছাকাছি পেতে
উপরে বর্ণিত সমস্যাগুলি, পেগাসাস-এমপিআই-ক্লাস্টার MPI ব্যবহার করে (মেসেজ পাসিং ইন্টারফেস), ক
SPMD (একক প্রক্রিয়া, একাধিক ডেটা) সমান্তরাল অ্যাপ্লিকেশন লেখার জন্য সাধারণত ব্যবহৃত API।
বেশিরভাগ এইচপিসি সিস্টেমের একটি MPI বাস্তবায়ন রয়েছে যা যেকোন বহিরাগত নেটওয়ার্কে কাজ করে
সিস্টেম ব্যবহার করে আর্কিটেকচার।

An পেগাসাস-এমপিআই-ক্লাস্টার চাকরি একটি একক মাস্টার প্রক্রিয়া নিয়ে গঠিত (এই প্রক্রিয়াটি র্যাঙ্ক 0 ইঞ্চি
MPI ভাষ্য) এবং বেশ কিছু কর্মী প্রক্রিয়া। মাস্টার প্রক্রিয়া কর্মপ্রবাহ পরিচালনা করে এবং
কার্য সম্পাদনের জন্য কর্মীদের কার্যপ্রবাহের কাজগুলি অর্পণ করে৷ কর্মীরা কাজ সম্পাদন করে এবং ফিরে আসে
ফলাফল মাস্টারের কাছে। কাজ দ্বারা stdout বা stderr-এ লেখা যেকোনো আউটপুট ক্যাপচার করা হয়
(দেখুন টাস্ক স্টাডিও).

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

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

পেগাসাস-এমপিআই-ক্লাস্টার একটি স্বতন্ত্র হাতিয়ার হিসাবে বা একটি পরিপূরক হিসাবে কাজ করার জন্য ডিজাইন করা হয়েছিল
পেগাসাস ওয়ার্কফ্লো ম্যানেজমেন্ট সিস্টেম (WMS)। সঙ্গে PMC ব্যবহার সম্পর্কে আরও তথ্যের জন্য
পেগাসাস বিভাগে দেখুন PMC এবং পক্ষিরাজ ঘোড়া.

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

বিকল্প


-h, --help
সাহায্য বার্তা প্রিন্ট করুন

-V, --সংস্করণ
প্রিন্ট সংস্করণ তথ্য

-v, -- ভারবোস
লগিং verbosity বৃদ্ধি. একাধিক যোগ করা হচ্ছে -v মাত্রা আরো বৃদ্ধি করে। ডিফল্ট
লগ লেভেল হল তথ্য। (দেখুন লগিং)

-q, -- শান্ত
লগিং verbosity হ্রাস. একাধিক যোগ করা হচ্ছে -q মাত্রা আরো কমে যায়। ডিফল্ট
লগ লেভেল হল তথ্য। (দেখুন লগিং)

-s, --ছাড়া-উদ্ধার
জন্য উদ্ধার ফাইল উপেক্ষা করুন workflow.dag যদি এটি বিদ্যমান থাকে। মনে রাখবেন যে পেগাসাস-এমপিআই-ক্লাস্টার
বর্তমান রানের জন্য এখনও একটি নতুন রেসকিউ ফাইল তৈরি করবে। ডিফল্ট আচরণ করা হয়
উদ্ধার ফাইল ব্যবহার করুন যদি একটি পাওয়া যায়। (দেখা উদ্ধার নথি পত্র)

-o পথ, --stdout পথ
টাস্ক stdout এর জন্য ফাইল করার পাথ। (দেখা টাস্ক স্টাডিও এবং --প্রতি-টাস্ক-stdio)

-e পথ, --stderr পথ
টাস্ক stderr-এর জন্য ফাইল করার পাথ। (দেখা টাস্ক স্টাডিও এবং --প্রতি-টাস্ক-stdio)

-m M, -- সর্বোচ্চ ব্যর্থতা M
পরে নতুন কাজ জমা দেওয়া বন্ধ করুন M কাজগুলো ব্যর্থ হয়েছে। একদা M পৌছে গেছে,
পেগাসাস-এমপিআই-ক্লাস্টার শুরু করা কোনো কাজ চালানো শেষ করবে, কিন্তু হবে না
আর কোনো কাজ শুরু করুন। এই বিকল্পটি প্রতিরোধ করতে ব্যবহৃত হয় পেগাসাস-এমপিআই-ক্লাস্টার থেকে
একটি ওয়ার্কফ্লো চালানো চালিয়ে যাওয়া যা একটি পদ্ধতিগত ত্রুটিতে ভুগছে, যেমন a
অনুপস্থিত বাইনারি বা একটি অবৈধ পথ। জন্য ডিফল্ট M হল 0, যার মানে সীমাহীন
ব্যর্থতা অনুমোদিত হয়।

-t T, -- চেষ্টা করে T
প্রতিটি কাজ চালানোর চেষ্টা করুন T ব্যর্থ হিসাবে টাস্ক চিহ্নিত করার আগে বার. উল্লেখ্য যে T
প্রচেষ্টার উদ্দেশ্যের জন্য ব্যর্থতা হিসাবে গণনা করা হয় না -m বিকল্প একটি কাজ শুধুমাত্র
চেষ্টা করা হলে ব্যর্থ বলে মনে করা হয় T বার এবং সব T প্রচেষ্টা একটি অ শূন্য ফলাফল
প্রস্থান কোড মুল্য T কমপক্ষে 1 হতে হবে৷ ডিফল্ট হল 1৷

-n, --নোলক
DAGFILE লক করবেন না। গতানুগতিক, পেগাসাস-এমপিআই-ক্লাস্টার একটি অর্জন করার চেষ্টা করবে
DAGFILE-এ একচেটিয়া লক যাতে একাধিক MPI কাজ একই DAG-এ চালানো থেকে বিরত থাকে
একই সময়. যদি এই বিকল্পটি নির্দিষ্ট করা থাকে, তাহলে লকটি অর্জিত হবে না।

-r, --উদ্ধার পথ
লগ উদ্ধারের পথ। ফাইল বিদ্যমান থাকলে, এবং -s উল্লেখ করা হয় না, তাহলে লগ হবে
কর্মপ্রবাহের অবস্থা পুনরুদ্ধার করতে ব্যবহৃত হয়। ফাইলটি পড়ার পরে কেটে ফেলা হয় এবং
একটি নতুন রেসকিউ লগ তার জায়গায় তৈরি করা হয়. ডিফল্ট যোগ করা হয় .উদ্ধার ডিএজি-র কাছে
ফাইলের নাম। (দেখা উদ্ধার নথি পত্র)

--হোস্ট-স্ক্রিপ্ট পথ
প্রতিটি অনন্য হোস্টে লঞ্চ করার জন্য একটি স্ক্রিপ্ট বা এক্সিকিউটেবলের পথ পেগাসাস-এমপিআই-ক্লাস্টার
চলছে এই পথটি PMC_HOST_SCRIPT পরিবেশ ব্যবহার করেও সেট করা যেতে পারে
পরিবর্তনশীল (দেখা হোস্ট স্ক্রিপ্টস)

--হোস্ট-মেমরি আয়তন
মেমরির পরিমাণ প্রতিটি হোস্টে এমবি-তে উপলব্ধ। ডিফল্ট পরিমাণ নির্ধারণ করা হয়
স্বয়ংক্রিয়ভাবে শারীরিক RAM এর। এই মানটি PMC_HOST_MEMORY ব্যবহার করেও সেট করা যেতে পারে
পরিবেশ সূচক. (দেখা রিসোর্স-ভিত্তিক স্কুলেডিং)

--হোস্ট-সিপিস সিপিইউ
প্রতিটি হোস্টে উপলব্ধ CPU এর সংখ্যা। ডিফল্ট সিপিইউ সংখ্যা নির্ধারণ করা হয়
কোর স্বয়ংক্রিয়ভাবে। এই মান PMC_HOST_CPUS পরিবেশ ব্যবহার করেও সেট করা যেতে পারে
পরিবর্তনশীল (দেখা রিসোর্স-ভিত্তিক স্কুলেডিং)

-- কঠোর-সীমা
এটি কাজের জন্য কঠোর মেমরি ব্যবহারের সীমা সক্ষম করে। যখন এই বিকল্পটি নির্দিষ্ট করা হয়, এবং
একটি টাস্ক ডিএজি, মেমরিতে অনুরোধের চেয়ে বেশি মেমরি বরাদ্দ করার চেষ্টা করে
বরাদ্দ অপারেশন ব্যর্থ হবে.

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

--প্রতি-টাস্ক-stdio
এর ফলে PMC প্রতিটি কাজের পরিবর্তে একটি .out.XXX এবং একটি .err.XXX ফাইল তৈরি করে
টাস্ক stdout/stderr-এ লেখা --stdout এবং --stderr. ফাইলগুলোর নাম হলো
"TASKNAME.out.XXX" এবং "TASKNAME.err.XXX", যেখানে "TASKNAME" টাস্কের নাম
DAG থেকে এবং "XXX" হল একটি ক্রম সংখ্যা যা প্রতিবার কাজ করার সময় বৃদ্ধি করা হয়
চেষ্টা এই বিকল্পটির মানগুলিকে ওভাররাইড করে --stdout এবং --stderr. এই যুক্তি
ডিবাগিং সহজতর করার জন্য PMC-শুধু মোডে ওয়ার্কফ্লো পরিকল্পনা করা হলে পেগাসাস ব্যবহার করে
এবং পর্যবেক্ষণ।

--জবস্টেট-লগ
এই বিকল্পটি কর্মপ্রবাহের জন্য একটি jobstate.log ফাইল তৈরি করতে পিএমসিকে কারণ করে। ফাইল হল
নাম "jobstate.log" এবং একই ডিরেক্টরিতে স্থাপন করা হয়েছে যেখানে DAG ফাইল রয়েছে
অবস্থিত যদি ফাইলটি ইতিমধ্যেই বিদ্যমান থাকে, তাহলে PMC বিদ্যমান ফাইলটিতে নতুন লাইন যুক্ত করে।
এই বিকল্পটি পেগাসাস দ্বারা ব্যবহৃত হয় যখন কর্মপ্রবাহগুলি শুধুমাত্র PMC-তে মোডে পরিকল্পনা করা হয়
নিরীক্ষণের সুবিধা।

--monitord-হ্যাক
এই বিকল্পটি কর্মপ্রবাহের জন্য PMC-কে একটি .dagman.out ফাইল তৈরি করে। এই নথি
Condor DAGMan দ্বারা উত্পন্ন .dagman.out ফাইলের বিষয়বস্তু অনুকরণ করে। এর বিন্দু
এই বিকল্পটি হল মনিটরকে কৌশলে ভাবতে যে এটি ডিএজিম্যানের সাথে ডিল করছে
এটি STAMPEDE ডাটাবেস তৈরি করার জন্য উপযুক্ত ইভেন্ট তৈরি করবে
পর্যবেক্ষণের উদ্দেশ্য। ফাইলটির নাম "DAG.dagman.out" যেখানে "DAG" এর পথ
PMC DAG ফাইল।

--নো-রিসোর্স-লগ
একটি উৎপন্ন করবেন না workflow.dag.resource কর্মপ্রবাহের জন্য ফাইল।

--না-ঘুম-অন-রিকভি
বার্তা গ্রহণ বাস্তবায়ন করতে sleep() এর সাথে পোলিং ব্যবহার করবেন না। (দেখা পরিচিত সমস্যা: সিপিইউ
ব্যবহার)

--maxfds
I/O-এর জন্য মাস্টার দ্বারা খোলা রেখে দেওয়া ফাইল বর্ণনাকারীর সর্বাধিক সংখ্যা সেট করুন
ফরওয়ার্ডিং ডিফল্টরূপে এই মানটি এর মানের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে সেট করা হয়
getrlimit(RLIMIT_NOFILE)। মানটি কমপক্ষে 1 হতে হবে এবং এর বেশি হতে পারে না
RLIMIT_NOFILE

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

DAG নথি পত্র


পেগাসাস-এমপিআই-ক্লাস্টার ওয়ার্কফ্লোগুলিকে অনুরূপ একটি সাধারণ পাঠ্য-ভিত্তিক বিন্যাস ব্যবহার করে প্রকাশ করা হয়
যেটি Condor DAGMan ব্যবহার করেছে। একটি DAG ফাইলে শুধুমাত্র দুটি রেকর্ড প্রকার অনুমোদিত: টাস্ক
এবং এজ. DAG-তে যেকোন ফাঁকা লাইন (সমস্ত হোয়াইটস্পেস অক্ষর সহ লাইন) উপেক্ষা করা হয়,
যেমনটি # দিয়ে শুরু হয় (মনে রাখবেন যে # শুধুমাত্র একটি লাইনের শুরুতে প্রদর্শিত হতে পারে,
মাঝখানে নয়)।

a এর বিন্যাস টাস্ক রেকর্ড হল:

"টাস্ক" আইডি [বিকল্প...] এক্সিকিউটেবল [আর্গুমেন্টস...]

কোথায় id টাস্কের আইডি, অপশন টাস্ক অপশনের একটি তালিকা, এক্সিকিউটেবল পথ
চালানোর জন্য এক্সিকিউটেবল বা স্ক্রিপ্টে, এবং যুক্তি ... এর একটি স্থান-বিচ্ছিন্ন তালিকা
টাস্ক পাস আর্গুমেন্ট. একটি উদাহরণ হল:

TASK t01 -m 10 -c 2 /bin/program -a -b

এই উদাহরণটি একটি টাস্ক নির্দিষ্ট করে t01 যেটি চালানোর জন্য 10 MB মেমরি এবং 2 CPUs প্রয়োজন৷
/বিন/প্রোগ্রাম যুক্তি সহ -a এবং -b. উপলব্ধ টাস্ক বিকল্প হল:

-m M, --অনুরোধ-মেমরি M
MB-তে টাস্কের জন্য প্রয়োজনীয় মেমরির পরিমাণ। ডিফল্ট 0, যার অর্থ মেমরি
এই কাজের জন্য বিবেচনা করা হয় না. এই বিকল্পটি দ্বারা DAX-এ একটি কাজের জন্য সেট করা যেতে পারে
পেগাসাস::pmc_request_memory প্রোফাইল নির্দিষ্ট করা হচ্ছে। (দেখা রিসোর্স-ভিত্তিক স্কুলেডিং)

-c N, --request-cpus N
টাস্কের জন্য প্রয়োজনীয় CPU-র সংখ্যা। ডিফল্ট হল 1, যা বোঝায় যে
একটি হোস্টে স্লটের সংখ্যা শারীরিক CPU-র সংখ্যার চেয়ে কম বা সমান হওয়া উচিত
যাতে সমস্ত স্লট ব্যবহার করা যায়। এই বিকল্পটি দ্বারা DAX-এ একটি কাজের জন্য সেট করা যেতে পারে
পেগাসাস::pmc_request_cpus প্রোফাইল নির্দিষ্ট করা হচ্ছে। (দেখা রিসোর্স-ভিত্তিক স্কুলেডিং)

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

-p P, -- অগ্রাধিকার P
কাজের অগ্রাধিকার। P একটি পূর্ণসংখ্যা হওয়া উচিত। বড় মান উচ্চ অগ্রাধিকার আছে.
ডিফল্ট হল 0৷ অগ্রাধিকারগুলি কেবল ইঙ্গিত এবং কঠোর নয় - যদি একটি কাজ করা না যায়৷
একটি উপলব্ধ স্লটের সাথে মিলে গেছে (যেমন সম্পদের প্রাপ্যতার কারণে), কিন্তু একটি নিম্ন অগ্রাধিকার
টাস্ক করতে পারে, তাহলে কাজটি পিছিয়ে যাবে এবং নিম্ন অগ্রাধিকারের কাজটি কার্যকর করা হবে।
এই বিকল্পটি পেগাসাস::pmc_priority উল্লেখ করে DAX-এ চাকরির জন্য সেট করা যেতে পারে
প্রোফাইল।

-f VAR=ফাইল, -- পাইপ-ফরওয়ার্ড VAR=ফাইল
ফাইলে I/O ফরওয়ার্ড করুন ফাইল টাস্কের সাথে যোগাযোগ করতে পাইপ ব্যবহার করে। পরিবেশ
পরিবর্তনশীল VAR একটি পাইপের জন্য একটি ফাইল বর্ণনাকারীর মান সেট করা হবে যা
টাস্ক ডাটা পেতে লিখতে পারে ফাইল. উদাহরণস্বরূপ, যদি একটি টাস্ক নির্দিষ্ট করে: -f
FOO=/tmp/foo তারপর টাস্কের জন্য পরিবেশ পরিবর্তনশীল FOO একটি সংখ্যায় সেট করা হবে
(যেমন 3) যেটি /tmp/foo ফাইলটি উপস্থাপন করে। একটি এই যুক্তি নির্দিষ্ট করার জন্য
পেগাসাস DAX আপনাকে পেগাসাস::pmc_arguments প্রোফাইল সেট করতে হবে (মনে রাখবেন যে এর মান
pmc_arguments-এ অবশ্যই আর্গুমেন্টের "-f" অংশ থাকতে হবে, তাই একটি বৈধ মান হবে:
-f A=/tmp/a ) (দেখা ইনপুট / আউটপুট
ফরোয়ার্ডিং)

-F SRC=DEST, --ফাইল-ফরোয়ার্ড SRC=DEST
ফাইলে I/O ফরওয়ার্ড করুন শেষ ফাইল থেকে কি SRC. কাজ শেষ হলে কর্মী
থেকে ডেটা পড়বে কি SRC এবং এটি মাস্টারের কাছে পাঠান যেখানে এটি লেখা হবে
ফাইল শেষ। পরে কি SRC পড়া হয় এটা মুছে ফেলা হয়. একটি এই যুক্তি নির্দিষ্ট করার জন্য
পেগাসাস DAX আপনাকে পেগাসাস::pmc_arguments প্রোফাইল সেট করতে হবে। (দেখা ইনপুট / আউটপুট ফরোয়ার্ডিং)

একটি বিন্যাস এজ রেকর্ড হল:

"EDGE" পিতামাতার সন্তান

কোথায় মাতা মূল টাস্কের আইডি, এবং শিশু চাইল্ড টাস্কের আইডি। একটি
উদাহরণ এজ রেকর্ড হল:

EDGE t01 t02

একটি সাধারণ হীরা-আকৃতির ওয়ার্কফ্লো দেখতে এইরকম হবে:

# diamond.dag
টাস্ক এ /বিন/ইকো "আমি একজন"
টাস্ক বি /বিন/ইকো "আমি বি"
টাস্ক সি /বিন/ইকো "আমি সি"
টাস্ক ডি /বিন/ইকো "আমি ডি"

EDGE AB
এজ এসি
এজ বিডি
EDGE সিডি

উদ্ধার নথি পত্র


একটি DAG চালানোর সময় বিভিন্ন ধরনের ত্রুটি ঘটতে পারে। এক বা একাধিক কাজ হতে পারে
ব্যর্থ হলে, MPI চাকরির প্রাচীরের সময় ফুরিয়ে যেতে পারে, পেগাসাস-এমপিআই-ক্লাস্টার segfault হতে পারে (আমরা আশা করি
না), সিস্টেম ক্র্যাশ হতে পারে, ইত্যাদি। নিশ্চিত করার জন্য যে DAG এর প্রয়োজন নেই
একটি ত্রুটির পরে শুরু থেকে পুনরায় চালু করা হয়েছে, পেগাসাস-এমপিআই-ক্লাস্টার একটি রেসকিউ ফাইল তৈরি করে
প্রতিটি কর্মপ্রবাহের জন্য।

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

রেসকিউ ফাইলে শূন্য বা তার বেশি ডন রেকর্ড রয়েছে। এই রেকর্ডগুলির বিন্যাস হল:

"সম্পন্ন" *টাস্কিড*

কোথায় টাস্কিড সফলভাবে শেষ হওয়া টাস্কের আইডি।

ডিফল্টরূপে, রেসকিউ ফাইলের নাম দেওয়া হয় DAGNAME.rescue কোথায় DAGNAME ইনপুট পাথ
DAG ফাইল। ফাইলের নাম উল্লেখ করে পরিবর্তন করা যেতে পারে -r যুক্তি.

PMC এবং পক্ষিরাজ ঘোড়া


ব্যবহার PMC উন্নত পক্ষিরাজ ঘোড়া কার্য থলোথলো
পিএমসি পেগাসাসে ক্লাস্টার করা কাজ সম্পাদনের জন্য মোড়ক হিসাবে ব্যবহার করা যেতে পারে। এই মোডে
পেগাসাস বেশ কয়েকটি কাজকে একত্রে গোষ্ঠীবদ্ধ করে এবং সেগুলিকে একটি একক ক্লাস্টারড কাজ হিসাবে জমা দেয়
দূরবর্তী সিস্টেম। PMC তারপর ক্লাস্টারে পৃথক কাজগুলি সম্পাদন করে এবং ফেরত দেয়
ফলাফল.

পেগাসাসে ক্লাস্টার করা কাজের জন্য টাস্ক ম্যানেজার হিসাবে পিএমসিকে তিনটি উপায়ে নির্দিষ্ট করা যেতে পারে:

1. বিশ্বব্যাপী বৈশিষ্ট্য ফাইলে

ব্যবহারকারী বৈশিষ্ট্য ফাইলে একটি বৈশিষ্ট্য সেট করতে পারেন যা সমস্ত ক্লাস্টারে পরিণত হয়
কর্মপ্রবাহের কাজগুলি PMC দ্বারা নির্বাহ করা হচ্ছে। পেগাসাস বৈশিষ্ট্য ফাইলে উল্লেখ করুন:

#পেগাসাস প্রোপার্টি ফাইল
pegasus.clusterer.job.aggregator=mpiexec

উপরের উদাহরণে, সমস্ত দূরবর্তী সাইটের সমস্ত ক্লাস্টার কাজ এর মাধ্যমে চালু করা হবে
PMC যতক্ষণ না সাইট ক্যাটালগে সম্পত্তির মান ওভাররাইড করা না হয়।

2. সাইট ক্যাটালগে প্রোফাইল কী "job.aggregator" সেট করে:


...
mpiexec


উপরের উদাহরণে, সাইটএক্সের সমস্ত ক্লাস্টার করা কাজগুলি এর মাধ্যমে কার্যকর করা হবে
PMC যতক্ষণ পর্যন্ত ট্রান্সফর্মেশন ক্যাটালগে মানটি ওভাররাইড না করা হয়।

3. রূপান্তর ক্যাটালগে প্রোফাইল কী "job.aggregator" সেট করে:

tr B {
সাইট সাইটএক্স {
pfn "/path/to/mytask"
খিলান "x86"
ওএস "লিনাক্স"
টাইপ করুন "ইনস্টলড"
প্রোফাইল পেগাসাস "clusters.size" "3"
প্রোফাইল পেগাসাস "job.Aggregator" "mpiexec"
}
}

উপরের উদাহরণে, সাইটএক্স-এ রূপান্তর B এর জন্য সমস্ত ক্লাস্টার করা কাজ হবে
PMC এর মাধ্যমে সম্পাদিত।

সাধারণত আপনার রূপান্তর ক্যাটালগে একটি পেগাসাস::mpiexec এন্ট্রি থাকা প্রয়োজন
যেটি নির্দিষ্ট করে ক) দূরবর্তী সাইটে PMC যাওয়ার পথ এবং খ) প্রাসঙ্গিক গ্লোবাস প্রোফাইলগুলি
যেমন xcount, host_xcount এবং maxwalltime MPI কাজের আকার নিয়ন্ত্রণ করতে। যে এন্ট্রি
এই মত দেখতে হবে:

tr pegasus ::mpiexec {
সাইট সাইটএক্স {
pfn "/পথ/টু/পেগাসাস-এমপিআই-ক্লাস্টার"
খিলান "x86"
ওএস "লিনাক্স"
টাইপ করুন "ইনস্টলড"
প্রোফাইল গ্লোবাস "ম্যাক্সওয়ালটাইম" "240"
প্রোফাইল গ্লোবাস "হোস্ট_এক্সকাউন্ট" "1"
প্রোফাইল গ্লোবাস "xcount" "32"
}
}

যদি এই রূপান্তর ক্যাটালগ এন্ট্রি নির্দিষ্ট করা না থাকে, পেগাসাস একটি তৈরি করার চেষ্টা করবে
পরিবেশ প্রোফাইলের ভিত্তিতে ডিফল্ট পাথ PEGASUS_HOME সাইটে নির্দিষ্ট করা হয়েছে
দূরবর্তী সাইটের জন্য ক্যাটালগ.

পিএমসি পেগাসাসে অনুভূমিক এবং লেবেল-ভিত্তিক ক্লাস্টারিংয়ের সাথে ব্যবহার করা যেতে পারে, তবে আমরা
লেবেল-ভিত্তিক ক্লাস্টারিং ব্যবহার করার সুপারিশ করুন যাতে একটি পেগাসাস DAX-এর সম্পূর্ণ উপ-গ্রাফ হতে পারে
কর্মপ্রবাহের শুধুমাত্র একটি একক স্তরের পরিবর্তে একটি একক PMC কাজের মধ্যে ক্লাস্টার করা হয়েছে।

পক্ষিরাজ ঘোড়া প্রোফাইল উন্নত PMC
অনেক পেগাসাস প্রোফাইল রয়েছে যা পিএমসি টাস্ক বিকল্পগুলিতে মানচিত্র তৈরি করে:

pmc_request_memory
এই প্রোফাইলটি --request-memory টাস্ক অপশন সেট করতে ব্যবহৃত হয় এবং সাধারণত নির্দিষ্ট করা হয়
DAX বা রূপান্তর ক্যাটালগে।

pmc_request_cpus
এই কীটি --request-cpus টাস্ক বিকল্প সেট করতে ব্যবহৃত হয় এবং সাধারণত তে উল্লেখ করা হয়
DAX বা রূপান্তর ক্যাটালগ।

pmc_priority
এই কীটি --priority টাস্ক বিকল্প সেট করতে ব্যবহৃত হয় এবং সাধারণত তে উল্লেখ করা হয়
DAX

এই প্রোফাইলগুলি পেগাসাস দ্বারা PMC এর ইনপুট DAG তৈরি করার সময় ব্যবহার করা হয় যখন PMC হিসাবে ব্যবহার করা হয়
পেগাসাসে ক্লাস্টারড কাজের জন্য টাস্ক ম্যানেজার।

প্রোফাইলগুলি DAX-এ এইভাবে নির্দিষ্ট করা যেতে পারে:


-a 1 -b 2 -c 3
...
1024
4
10


এই উদাহরণটি একটি PMC টাস্ক নির্দিষ্ট করে যার জন্য 1GB মেমরি এবং 4 কোর প্রয়োজন, এবং একটি আছে
10-এর অগ্রাধিকার। এটি PMC DAG-তে একটি কাজ তৈরি করে যা দেখতে এইরকম:

TASK mytask_ID00000001 -m 1024 -c 4 -p 10 /path/to/mytask -a 1 -b 2 -c 3

ব্যবহার PMC উন্নত দ্য সমগ্র পক্ষিরাজ ঘোড়া ডাক্স
পেগাসাসকে একটি একক PMC কাজ হিসাবে সমগ্র ওয়ার্কফ্লো চালানোর জন্য কনফিগার করা যেতে পারে। এই
মোড পেগাসাস সমগ্র কর্মপ্রবাহের পাশাপাশি একটি PBS-এর জন্য একটি একক PMC DAG তৈরি করবে
স্ক্রিপ্ট যা ওয়ার্কফ্লো জমা দিতে ব্যবহার করা যেতে পারে।

একটি টাস্ক ক্লাস্টারিং টুল হিসাবে PMC ব্যবহার করার বিপরীতে, এই মোডে কোন কাজ নেই
কর্মপ্রবাহ PMC ছাড়াই সম্পাদিত। সম্পূর্ণ কর্মপ্রবাহ, সহ সহায়ক চাকরি যেমন
ডিরেক্টরি তৈরি এবং ফাইল স্থানান্তর, PMC দ্বারা পরিচালিত হয়। পেগাসাস যদি এতে কনফিগার করা থাকে
মোড, তারপর DAGMan এবং Condor প্রয়োজন হয় না।

PMC-শুধু-মোডে চালানোর জন্য, পেগাসাসে "pegasus.code.generator" বৈশিষ্ট্যটিকে "PMC" এ সেট করুন
বৈশিষ্ট্য ফাইল:

pegasus.code.generator=PMC

ফলস্বরূপ PBS জব জমা দেওয়ার জন্য আপনাকে .pbs ফাইলে পরিবর্তন করতে হতে পারে
এটি আপনার ক্লাস্টারের সাথে কাজ করার জন্য পেগাসাস দ্বারা তৈরি করা হয়েছে। এই মোড পরীক্ষামূলক এবং
ব্যাপকভাবে ব্যবহার করা হয় নি।

লগিং


ডিফল্টরূপে, সমস্ত লগিং বার্তা stderr এ মুদ্রিত হয়। আপনি লগিং চালু হলে ব্যবহার করে
-v তারপর আপনি অনেক stderr সঙ্গে শ্রমিকদের থেকে ফরওয়ার্ড করা শেষ হতে পারে
মাস্টার।

তীব্রতার ক্রম অনুসারে লগ স্তরগুলি হল: মারাত্মক, ত্রুটি, সতর্কতা, তথ্য, ডিবাগ এবং ট্রেস৷

ডিফল্ট লগিং স্তর হল INFO। লগিং স্তর সঙ্গে বৃদ্ধি করা যেতে পারে -v এবং
সঙ্গে কমেছে -q.

টাস্ক স্টাডিও


ডিফল্টরূপে কাজের stdout এবং stderr মাস্টারের stdout এ পুনঃনির্দেশিত হবে এবং
stderr আপনি দিয়ে এই ফাইলগুলির পথ পরিবর্তন করতে পারেন -o এবং -e যুক্তি. আপনি এটিও করতে পারেন
ব্যবহার করে প্রতি টাস্ক stdio ফাইল সক্রিয় করুন --প্রতি-টাস্ক-stdio যুক্তি. উল্লেখ্য যে যদি প্রতি টাস্ক
stdio ফাইলগুলি ব্যবহার করা হয় না তাহলে সমস্ত কর্মীদের stdio এক আউট এবং ওয়ানে একত্রিত করা হবে
শেষে মাস্টার দ্বারা ত্রুটি ফাইল, তাই বিভিন্ন কর্মীদের থেকে I/O ইন্টারলেভ করা হবে না,
কিন্তু প্রতিটি কর্মীর কাছ থেকে I/O তৈরি করা হয়েছে সেই ক্রমে উপস্থিত হবে। আরও উল্লেখ্য যে,
যদি কোনো কারণে কাজ ব্যর্থ হয়, আউটপুট একত্রিত করা হবে না, কিন্তু পরিবর্তে হবে
DAGFILE.out.X এবং DAGFILE.err.X নামের প্রতিটি শ্রমিকের জন্য একটি ফাইল, যেখানে DAGFILE হল পথ
ইনপুট DAG, এবং X কর্মীর পদমর্যাদা।

হোস্ট স্ক্রিপ্টস


হোস্ট স্ক্রিপ্ট হল একটি শেল স্ক্রিপ্ট বা এক্সিকিউটেবল পেগাসাস-এমপিআই-ক্লাস্টার প্রতিটিতে লঞ্চ হয়
অনন্য হোস্ট যার উপর এটি চলছে। এগুলি সহায়ক পরিষেবাগুলি শুরু করতে ব্যবহার করা যেতে পারে, যেমন
memcached, যেটি একটি কর্মপ্রবাহের কাজগুলির জন্য প্রয়োজন।

হোস্ট স্ক্রিপ্ট হয় ব্যবহার করে নির্দিষ্ট করা হয় --হোস্ট-স্ক্রিপ্ট যুক্তি বা PMC_HOST_SCRIPT
পরিবেশ সূচক.

হোস্ট স্ক্রিপ্ট শুরু হয় যখন পেগাসাস-এমপিআই-ক্লাস্টার শুরু হয় এবং একটি এক্সিটকোড দিয়ে প্রস্থান করতে হবে
কোনো কাজ সম্পাদন করার আগে 0 এর। যদি এটি হোস্ট স্ক্রিপ্ট একটি নন-জিরো এক্সিটকোড প্রদান করে,
তারপর কর্মপ্রবাহ বাতিল করা হয়। হোস্ট স্ক্রিপ্ট যে কোনো সেটআপ করতে 60 সেকেন্ড দেওয়া হয়
প্রয়োজনীয় যদি এটি 60 সেকেন্ডের মধ্যে প্রস্থান না করে তবে একটি SIGALRM সংকেত প্রদান করা হয়
প্রক্রিয়া, যা পরিচালনা না করা হলে, প্রক্রিয়াটি বন্ধ হয়ে যাবে।

কর্মপ্রবাহ শেষ হলে, পেগাসাস-এমপিআই-ক্লাস্টার হোস্টে একটি SIGTERM সংকেত প্রদান করবে
স্ক্রিপ্টের প্রক্রিয়া গ্রুপ। হোস্ট স্ক্রিপ্ট দ্বারা চলমান যে কোনো শিশু প্রক্রিয়া গ্রহণ করা হবে
এই সংকেত যদি না তারা তাদের নিজস্ব প্রক্রিয়া গ্রুপ তৈরি করে। যদি কোন প্রক্রিয়া বাকি ছিল
এই সংকেত পেতে, তারপর তাদের প্রস্থান করতে কয়েক সেকেন্ড সময় দেওয়া হবে, তারপর তারা হবে
SIGKILL পাঠানো হয়েছে। এই পদ্ধতি যা হোস্ট স্ক্রিপ্ট দ্বারা শুরু প্রক্রিয়া হতে পারে
কর্মপ্রবাহের অবসান সম্পর্কে অবহিত।

রিসোর্স-ভিত্তিক স্কুলেডিং


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

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

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

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

সিপিইউ
ব্যবহারকারীরা প্রতিটি টাস্কের জন্য প্রয়োজনীয় CPU-এর সংখ্যা এবং CPU-এর মোট সংখ্যা নির্দিষ্ট করতে পারেন
প্রতিটি হোস্টে উপলব্ধ। যদি একটি টাস্কের জন্য প্রয়োজনীয় CPU-র সংখ্যা উপলব্ধের চেয়ে বেশি হয়
সমস্ত হোস্টে সিপিইউ, তারপর ওয়ার্কফ্লো বাতিল করা হবে। ডিফল্টরূপে, একটিতে CPU-র সংখ্যা
হোস্ট স্বয়ংক্রিয়ভাবে নির্ধারিত হয়, কিন্তু ব্যবহারকারী নির্দিষ্ট করতে পারেন --হোস্ট-সিপিস to over- or
আন্ডার-সাবস্ক্রাইব হোস্ট. প্রতিটি কাজের জন্য প্রয়োজনীয় CPU-এর সংখ্যা তে উল্লেখ করা আছে
DAG ব্যবহার করে -c/--request-cpus যুক্তি (দেখুন DAG নথি পত্র).

ইনপুট / আউটপুট ফরোয়ার্ডিং


অনেক ছোট কাজ আছে এমন ওয়ার্কফ্লোতে সেই কাজগুলি দ্বারা লিখিত I/O এর জন্য এটি সাধারণ
খুব ছোট হতে উদাহরণস্বরূপ, একটি ওয়ার্কফ্লো 10,000 টাস্ক থাকতে পারে যে প্রতিটিতে কয়েক KB লিখতে পারে
তথ্য সাধারণত প্রতিটি কাজ তার নিজস্ব ফাইলে লেখে, যার ফলে 10,000টি ফাইল হয়। এই I/O
প্যাটার্ন অনেক সমান্তরাল ফাইল সিস্টেমে খুব অদক্ষ কারণ এটি ফাইলের প্রয়োজন
একটি বড় সংখ্যক মেটাডেটা ক্রিয়াকলাপ পরিচালনা করার জন্য সিস্টেম, যা অনেকের মধ্যে একটি বাধা
সমান্তরাল ফাইল সিস্টেম।

এই সমস্যাটি পরিচালনা করার একটি উপায় হল সমস্ত 10,000 টাস্ক একটি একক ফাইলে লেখা। দ্য
এই পদ্ধতির সাথে সমস্যা হল যে এটিতে তাদের অ্যাক্সেস সিঙ্ক্রোনাইজ করার জন্য সেই কাজগুলি প্রয়োজন
POSIX লক বা অন্য কিছু মিউচুয়াল এক্সক্লুশন মেকানিজম ব্যবহার করে ফাইল। নইলে লেখেন
বিভিন্ন কাজ থেকে অব্যবহারযোগ্য ক্রমানুসারে interleaved হতে পারে, অব্যবহারযোগ্য তথ্য ফলস্বরূপ.

এই ব্যবহারের ক্ষেত্রে PMC একটি বৈশিষ্ট্য প্রয়োগ করে যাকে আমরা "I/O ফরওয়ার্ডিং" বলি।
I/O ফরওয়ার্ডিং একটি PMC কাজের প্রতিটি কাজকে একটি নির্বিচারে সংখ্যায় ডেটা লিখতে সক্ষম করে
নিরাপদ উপায়ে ফাইল শেয়ার করা। এটি PMC কর্মী প্রক্রিয়ার মাধ্যমে ডেটা সংগ্রহ করে
টাস্ক দ্বারা লিখিত এবং MPI মেসেজিং ব্যবহার করে উচ্চ-গতির নেটওয়ার্কের মাধ্যমে এটি পাঠান
PMC মাস্টার প্রক্রিয়া, যেখানে এটি আউটপুট ফাইলে লেখা হয়। একটি প্রক্রিয়া থাকার মাধ্যমে (
পিএমসি মাস্টার প্রসেস) ফাইলে সব I/O লিখে অনেকগুলো সমান্তরাল কাজ হতে পারে
সুরক্ষিতভাবে ফাইলগুলিতে সিঙ্ক্রোনাইজ এবং লিখিত।

PMC-তে I/O ফরওয়ার্ডিং ব্যবহার করার দুটি ভিন্ন উপায় রয়েছে: পাইপ এবং ফাইল। পাইপ বেশি
দক্ষ, কিন্তু ফাইল ব্যবহার করা সহজ।

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

একটি PMC টাস্ক ফরওয়ার্ডিং I/O ব্যবহার করার জন্য শুধুমাত্র নির্দিষ্ট করতে হবে -f/--পাইপ-ফরোয়ার্ড
তথ্য ফরোয়ার্ড করার জন্য ফাইলের নাম এবং একটি নাম উল্লেখ করার জন্য যুক্তি
এনভায়রনমেন্ট ভেরিয়েবল যার মাধ্যমে PMC কর্মী প্রক্রিয়া ফাইলটি সম্পর্কে জানাতে পারে
পাইপের জন্য বর্ণনাকারী।

উদাহরণস্বরূপ, যদি একটি টাস্ক "mytask" থাকে যা দুটি ফাইলে ডেটা ফরোয়ার্ড করতে হবে:
"myfile.a" এবং "myfile.b", এটি দেখতে এরকম হবে:

টাস্ক mytask -f A=/tmp/myfile.a -f B=/tmp/myfile.b /bin/mytask

যখন /bin/mytask প্রক্রিয়া শুরু হয় তখন এর পরিবেশে দুটি ভেরিয়েবল থাকবে: "A=3"
এবং "B=4", উদাহরণস্বরূপ। এই ভেরিয়েবলের মান হল ফাইলের বর্ণনাকারী নম্বর
সংশ্লিষ্ট ফাইল। এই ক্ষেত্রে, যদি টাস্কটি "/tmp/myfile.a" তে লিখতে চায়, এটি পায়
এনভায়রনমেন্ট ভেরিয়েবল "A" এর মান এবং সেই বর্ণনাকারী নম্বরে কল লিখতে হবে। সি তে
এর জন্য কোড এই মত দেখায়:

char *A = getenv("A");
int fd = atoi(A);
char *message = "হ্যালো, ওয়ার্ল্ড\n";
লিখুন (fd, বার্তা, strlen(বার্তা));

কিছু প্রোগ্রামিং ভাষায় সরাসরি ফাইল বর্ণনাকারীতে লেখা সম্ভব নয়।
Fortran, উদাহরণস্বরূপ, ফাইল বর্ণনাকারী ব্যবহার করার পরিবর্তে ইউনিট সংখ্যা দ্বারা ফাইলগুলিকে বোঝায়। ভিতরে
এই ভাষাগুলি আপনি হয় আপনার বাইনারিতে CI/O ফাংশন লিঙ্ক করতে পারেন এবং তাদের থেকে কল করতে পারেন
অন্য ভাষায় লেখা রুটিন, অথবা আপনি লিনাক্সে একটি বিশেষ ফাইল খুলতে পারেন / proc
ফাইল সিস্টেম আপনি অ্যাক্সেস করতে চান পাইপ অন্য হ্যান্ডেল পেতে. পরেরটির জন্য, ফাইলটি
আপনার খোলা উচিত "/proc/self/fd/NUMBER" যেখানে NUMBER হল আপনার ফাইল বর্ণনাকারী নম্বর
পরিবেশ পরিবর্তনশীল থেকে পেয়েছি। উপরের উদাহরণের জন্য, myfile.a এর জন্য পাইপ
(পরিবেশ পরিবর্তনশীল A) হল "/proc/self/fd/3"।

যদি আপনি ব্যবহার করছেন পেগাসাস-কিকস্টার্ট, যদি আপনি একটি এর জন্য PMC ব্যবহার করেন তাহলে সম্ভবত এটি হয়
পেগাসাস ওয়ার্কফ্লো, তারপরে আপনার কোড পরিবর্তন করা এড়াতে আপনি একটি কৌশল করতে পারেন। তুমি ব্যাবহার কর
দ্য / proc ফাইল সিস্টেম, উপরে বর্ণিত হিসাবে, কিন্তু আপনি pegasus-kickstart কে পাথ পরিচালনা করতে দেন
নির্মাণ. উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনে একটি যুক্তি থাকে, -o, যা আপনাকে অনুমতি দেয়
আউটপুট ফাইল নির্দিষ্ট করুন তারপর আপনি এই মত আপনার কাজ লিখতে পারেন:

টাস্ক mytask -f A=/tmp/myfile.a /bin/pegasus-kickstart /bin/mytask -o /proc/self/fd/$A

এই ক্ষেত্রে, পেগাসাস-কিকস্টার্ট আপনার অ্যাপ্লিকেশন আর্গুমেন্টে $A এর সাথে প্রতিস্থাপন করবে
ফাইল বর্ণনাকারী নম্বর আপনি চান. আপনার কোডটি সাধারণভাবে সেই পথটি খুলতে পারে, এটিতে লিখতে পারে এবং
তারপরে এটি বন্ধ করুন যেন এটি একটি নিয়মিত ফাইল।

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

দিয়ে ফাইল ফরওয়ার্ডিং সক্ষম করা যেতে পারে -F/--ফাইল-ফরোয়ার্ড একটি কাজের যুক্তি।

এখানে একটি উদাহরণ দেয়া হলঃ

টাস্ক মাইটাস্ক -F /tmp/foo.0=/scratch/foo /bin/mytask -o /tmp/foo.0

এই ক্ষেত্রে, mytask প্রস্থান করার সময় কর্মী প্রক্রিয়া /tmp/foo.0 ফাইলটি খুঁজে পাওয়ার আশা করবে
সফলভাবে এটি সেই ফাইল থেকে ডেটা পড়ে এবং লেখার জন্য মাস্টারের কাছে পাঠায়
/scratch/foo এর শেষ। /tmp/foo.0 পড়ার পরে এটি কর্মীর দ্বারা মুছে ফেলা হবে
প্রক্রিয়া।

এই পদ্ধতিটি এমন সিস্টেমে সবচেয়ে ভালো কাজ করে যেখানে স্থানীয় ডিস্ক একটি RAM ফাইল সিস্টেম যেমন Cray
এক্সটি মেশিন। বিকল্পভাবে, টাস্ক ব্যবহার করতে পারেন /dev/shm একটি নিয়মিত লিনাক্স ক্লাস্টারে। এটা হতে পারে
ফাইল সিস্টেম ক্যাশে সক্ষম হলে স্থানীয় ডিস্কে তুলনামূলকভাবে দক্ষতার সাথে কাজ করে
পড়া এবং লেখা সব শোষণ.

ইনপুট / আউটপুট ফরওয়ার্ডিং আদেশ সহকারে
I/O ফরওয়ার্ডিং ব্যবহার করার সময় কয়েকটি সতর্কতা বিবেচনা করা গুরুত্বপূর্ণ।

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

দ্বিতীয়ত, আপনার কাজটি যদি প্রচুর ডেটা লিখতে চলেছে তবে আপনার I/O ফরওয়ার্ডিং ব্যবহার করা উচিত নয়
ফাইল. কারণ PMC কর্মী পাইপ/ফাইল থেকে মেমরিতে ডেটা পড়ছে এবং পাঠাচ্ছে
এটি একটি MPI বার্তায়, আপনি যদি খুব বেশি লেখেন, তাহলে কর্মী প্রক্রিয়া সিস্টেমটি চালাবে
জ্ঞানের বাহিরে. এছাড়াও, সমস্ত ডেটা একটি একক MPI বার্তায় ফিট করা দরকার৷ পাইপ ফরওয়ার্ডিং মধ্যে
আকারের কোন কঠিন সীমা নেই, তবে ফাইল ফরওয়ার্ডিং এর সীমা 1MB। আমরা নেই
বড় I/O-তে কর্মক্ষমতা বেঞ্চমার্ক করেছে, কিন্তু প্রায় 1 MB-এর চেয়ে বড় কিছু সম্ভবত
খুব বেশি. যেকোনো হারে, যদি আপনার ডেটা 1MB-এর থেকে বড় হয়, তাহলে I/O ফরওয়ার্ডিং সম্ভবত হবে না
যাইহোক একটি কর্মক্ষমতা সুবিধা অনেক আছে.

তৃতীয়ত, I/O ফাইলে লেখা হয় না যদি টাস্কটি একটি নন-জিরো এক্সিটকোড প্রদান করে। আমরা
অনুমান করুন যে যদি টাস্কটি ব্যর্থ হয় যে আপনি এটি উত্পাদিত ডেটা চান না।

চতুর্থত, বিভিন্ন কাজের ডেটা ইন্টারলেভ করা হয় না। সমস্ত তথ্য একটি দ্বারা লিখিত
প্রদত্ত কাজটি আউটপুট ফাইলে ক্রমানুসারে প্রদর্শিত হবে। আপনি এখনও পেতে পারেন নোট করুন
আংশিক রেকর্ড, যাইহোক, যদি একটি টাস্ক থেকে কোন ডেটা প্রদর্শিত হয় তবে তা কখনও বিভক্ত হবে না
আউটপুট ফাইলে অ-সংলগ্ন রেঞ্জ। আপনার যদি 3টি কাজ থাকে যা লিখুন: "আমি একটি কাজ" আপনি
পেতে পারি:

আমি একটি কাজ, আমি একটি কাজ, আমি একটি কাজ

এবং:

আমি একটি কাজ, আমি একটি কাজ

কিন্তু না:

আমি একটি কাজ আমি একটি কাজ আমি একটি কাজ

পঞ্চম, বিভিন্ন কাজের তথ্য আউটপুট ফাইলে নির্বিচারে প্রদর্শিত হয়। এটা নির্ভর করে
কোন আদেশে কাজগুলি PMC দ্বারা সম্পাদিত হয়েছিল, যা না থাকলে নির্বিচারে হতে পারে৷
কাজের মধ্যে নির্ভরতা। যে ডেটা লেখা হয় তাতে যথেষ্ট তথ্য থাকতে হবে
আপনি যদি এটির প্রয়োজন হয় তবে কোন কাজটি এটি তৈরি করেছে তা নির্ধারণ করতে সক্ষম। PMC করে না
ডেটাতে কোনো হেডার বা ট্রেলার যোগ করুন।

ষষ্ঠ, একটি টাস্ক শুধুমাত্র সফল হিসাবে চিহ্নিত করা হবে যদি এর সমস্ত I/O সফলভাবে হয়
লিখিত যদি কর্মপ্রবাহ সফলভাবে সম্পন্ন হয়, তাহলে I/O হয়েছে নিশ্চিত
লিখিত

সপ্তম, যদি মাস্টার কোনো কারণে আউটপুট ফাইলে লিখতে সক্ষম না হয় (যেমন
মাস্টার গন্তব্য ফাইলে I/O লেখার চেষ্টা করে, কিন্তু write() কল একটি রিটার্ন করে
ত্রুটি) তারপর টাস্কটি ব্যর্থ হিসাবে চিহ্নিত করা হয়েছে এমনকি যদি টাস্কটি একটি নন-জিরো এক্সিটকোড তৈরি করে। ভিতরে
অন্য কথায়, PMC দ্বারা টাস্ক ব্যর্থ চিহ্নিত করলেও আপনি একটি নন-জিরো কিকস্টার্ট রেকর্ড পেতে পারেন।

অষ্টম, পাইপ শুধুমাত্র লিখতে হয়. আপনি যদি ফাইল থেকে ডেটা পড়তে এবং লিখতে চান
ফাইল ফরওয়ার্ডিং ব্যবহার করা উচিত এবং পাইপ ফরওয়ার্ডিং নয়।

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

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

MISC


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

জানা সমস্যা


কাঁটাচামচ () এবং exec()
কর্মী প্রক্রিয়ার জন্য কম্পিউট নোডে কাজ শুরু করার জন্য কম্পিউট নোড
সমর্থন করা আবশ্যক কাঁটাচামচ () এবং exec() সিস্টেম কল। আপনার টার্গেট মেশিন চালালে একটি
কম্পিউট নোডগুলিতে স্ট্রাইপ-ডাউন ওএস যা এই সিস্টেম কলগুলিকে সমর্থন করে না
পেগাসাস-এমপিআই-ক্লাস্টার কাজ করবে না.

সিপিইউ ব্যবহার
অনেক MPI বাস্তবায়ন অপ্টিমাইজ করা হয়েছে যাতে বার্তা পাঠানো এবং গ্রহণ করা ব্যস্ত অপেক্ষায় থাকে
(অর্থাৎ তারা ঘুমানোর পরিবর্তে একটি বার্তা প্রেরণ বা গ্রহণের উপর স্পিন/পোল)। যুক্তি হল
যে ঘুম ওভারহেড যোগ করে এবং, যেহেতু অনেক HPC সিস্টেম ডেডিকেটেড স্পেস শেয়ারিং ব্যবহার করে
হার্ডওয়্যার, প্রতিযোগিতায় অন্য কোন প্রক্রিয়া নেই, তাই স্লিপিং এর পরিবর্তে স্পিনিং করতে পারেন
ভাল কর্মক্ষমতা উত্পাদন। এই বাস্তবায়নে MPI প্রক্রিয়া 100% CPU-তে চলবে
ব্যবহার এমনকি যখন তারা শুধু একটি বার্তার জন্য অপেক্ষা করছে। এটি মাল্টিকোরের জন্য একটি বড় সমস্যা
মধ্যে কাজ পেগাসাস-এমপিআই-ক্লাস্টার কারণ নিষ্ক্রিয় স্লটগুলি সিপিইউ সংস্থানগুলি গ্রাস করে। যাতে সমাধান করা যায়
এই সমস্যা পেগাসাস-এমপিআই-ক্লাস্টার প্রসেস জন্য চেক মধ্যে একটি স্বল্প সময়ের জন্য ঘুম
অপেক্ষার বার্তা। এটি উল্লেখযোগ্যভাবে লোড হ্রাস করে, কিন্তু একটি ছোট বিলম্ব ঘটায়
বার্তা গ্রহণ আপনি যদি একটি MPI বাস্তবায়ন ব্যবহার করেন যা বার্তা পাঠাতে ঘুমায়
ব্যাস্ত অপেক্ষা না করে রিসিভ করুন, তারপর নির্দিষ্ট করে স্লিপ ডিসেবল করতে পারেন
--না-ঘুম-অন-রিকভি বিকল্প খেয়াল রাখবেন কর্তা সবসময় ঘুমাবেন যদি --ম্যাক্স-ওয়াল-টাইম is
নির্দিষ্ট করা হয়েছে কারণ MPI তে একটি ব্লকিং কলকে বাধা দেওয়ার বা টাইমআউট করার কোনো উপায় নেই
(যেমন SIGALRM MPI_Recv EINTR ফেরত দেয় না)।

পরিবেশ বৈচিত্র্য


নীচের পরিবেশ ভেরিয়েবলগুলি কমান্ড-লাইন বিকল্পগুলির জন্য উপনাম। পরিবেশ হলে
ভেরিয়েবল বর্তমান, তারপর এটি সংশ্লিষ্ট বিকল্পের জন্য ডিফল্ট হিসাবে ব্যবহৃত হয়। যদি উভয়ই হয়
present, তারপর কমান্ড-লাইন বিকল্পটি ব্যবহার করা হয়।

PMC_HOST_SCRIPT
জন্য উপনাম --হোস্ট-স্ক্রিপ্ট বিকল্প।

PMC_HOST_MEMORY
জন্য উপনাম --হোস্ট-মেমরি বিকল্প।

PMC_HOST_CPUS
জন্য উপনাম --হোস্ট-সিপিস বিকল্প।

PMC_MAX_WALL_TIME
জন্য উপনাম --ম্যাক্স-ওয়াল-টাইম বিকল্প।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে পেগাসাস-এমপিআই-ক্লাস্টার ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

লিনাক্স কমান্ডগুলি

Ad




×
ভি .আই. পি  বিজ্ঞাপন
❤️এখানে কেনাকাটা করুন, বুক করুন, অথবা কিনুন — বিনামূল্যে, পরিষেবাগুলি বিনামূল্যে রাখতে সাহায্য করে।