ইংরেজিফরাসিস্প্যানিশ

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

mpirun.lam - ক্লাউডে অনলাইন

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

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

কার্যক্রম:

NAME এর


mpirun - LAM নোডগুলিতে MPI প্রোগ্রাম চালান।

সাইনোপিসিস


mpirun [-fhvO] [-c # | -np #] [-D | -wd dir] [-ger | -nger] [-sigs | -nsigs] [-ssi কী
মান] [-nw | -w] [-nx] [-pty | -npty] [-s নোড] [-t | -টাফ | -টন] [-টিভি] [-এক্স
VAR1[=VALUE1][,VAR2[=VALUE2],...]] [[-p উপসর্গ_str] [-sa | -এসএফ]] [যেখানে] প্রোগ্রাম [--
args]

বিঃদ্রঃ: যদিও প্রতিটি পৃথকভাবে ঐচ্ছিক, অন্তত একটি কোথায়, -এনপি, বা -c অবশ্যই
উপরের ফর্মে নির্দিষ্ট করা হয়েছে (অর্থাৎ, যখন একটি স্কিমা ব্যবহার করা হয় না)।

mpirun [-fhvO] [-D | -wd dir] [-ger | -nger] [-sigs | -nsigs] [-ssi কী মান] [-nw | -w]
[-nx] [-pty | -npty] [-t | -টাফ | -টন] [-টিভি] [-এক্স
VAR1[=VALUE1][,VAR2[=VALUE2],...]] স্কিমা

বিঃদ্রঃ: সার্জারির -c2c এবং -লামদ বিকল্পগুলি এখন অপ্রচলিত। ব্যবহার করুন -ssi পরিবর্তে. "SSI" দেখুন
অধ্যায়, নীচে।

দ্রুত সংক্ষিপ্তসার


আপনি যদি শুধুমাত্র একটি MPI অ্যাপ্লিকেশন চালানোর জন্য খুঁজছেন, আপনি সম্ভবত ব্যবহার করতে চান
নিম্নলিখিত কমান্ড লাইন:

% mpirun C my_mpi_application

এটি একটি অনুলিপি চালানো হবে আমার_এমপিআই_অ্যাপ্লিকেশন বর্তমান LAM মহাবিশ্বের প্রতিটি CPU-তে।
বিকল্পভাবে, "C" এর জায়গায় "N" ব্যবহার করা যেতে পারে, যেটির একটি অনুলিপি নির্দেশ করে
আমার_এমপিআই_অ্যাপ্লিকেশন বর্তমান LAM-এ প্রতিটি নোডে (CPU-এর বিপরীতে) চালানো উচিত
বিশ্ব. অবশেষে:

% mpirun -np 4 my_mpi_application

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

বিকল্প


এর দুটি রূপ রয়েছে mpirun কমান্ড -- প্রোগ্রামগুলির জন্য একটি (যেমন, SPMD-শৈলী
অ্যাপ্লিকেশন), এবং একটি অ্যাপ্লিকেশন স্কিমার জন্য (দেখুন appschema(5))। উভয় ফর্ম mpirun
ডিফল্টরূপে নিম্নলিখিত বিকল্পগুলি ব্যবহার করুন: -nger -w. এই প্রতিটি তাদের দ্বারা ওভাররাইড করা হতে পারে
কাউন্টারপার্ট বিকল্প, নীচে বর্ণিত.

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

-c # এর প্রতিশব্দ -এনপি (নিচে দেখ).

-D তৈরি করা বর্তমান কাজের ডিরেক্টরি হিসাবে এক্সিকিউটেবল প্রোগ্রাম অবস্থান ব্যবহার করুন
প্রসেস তৈরি প্রসেসের বর্তমান কাজের ডিরেক্টরি সেট করা হবে
ব্যবহারকারীর প্রোগ্রাম আহ্বান করার আগে। এই বিকল্পটির সাথে পারস্পরিক একচেটিয়া
-wd.

-f স্ট্যান্ডার্ড I/O ফাইল বর্ণনাকারী কনফিগার করবেন না - ডিফল্ট ব্যবহার করুন।

-h এই কমান্ডে দরকারী তথ্য মুদ্রণ করুন।

-ger GER (গ্যারান্টিড এনভেলপ রিসোর্স) যোগাযোগ প্রোটোকল এবং ত্রুটি সক্ষম করুন৷
রিপোর্টিং দেখা এমপিআই(7) GER এর বর্ণনার জন্য। এই বিকল্পটি পারস্পরিক
সঙ্গে একচেটিয়া -nger.

-nger GER (গ্যারান্টিড এনভেলপ রিসোর্স) অক্ষম করুন। এই বিকল্পটি পারস্পরিক একচেটিয়া
সঙ্গে -ger.

- nsigs ব্যবহারকারী অ্যাপ্লিকেশনে LAM ক্যাচ সংকেত নেই। এটি ডিফল্ট, এবং
সঙ্গে পারস্পরিক একচেটিয়া হয় -সিগস.

-এনপি # প্রদত্ত নোডগুলিতে প্রোগ্রামের এই অনেকগুলি অনুলিপি চালান। এই বিকল্পটি নির্দেশ করে
যে নির্দিষ্ট ফাইলটি একটি এক্সিকিউটেবল প্রোগ্রাম এবং একটি অ্যাপ্লিকেশন স্কিমা নয়।
যদি কোনো নোড নির্দিষ্ট করা না থাকে, তাহলে সমস্ত LAM নোডকে সময় নির্ধারণের জন্য বিবেচনা করা হয়; LAM করবে
একটি রাউন্ড-রবিন ফ্যাশনে প্রোগ্রামগুলি নির্ধারণ করুন, "আশেপাশে মোড়ানো" (এবং
একটি একক নোডে একাধিক অনুলিপি নির্ধারণ করা) যদি প্রয়োজন হয়।

-npty সিউডো-টিটি সমর্থন অক্ষম করুন। যদি না আপনার ছদ্ম-টিটিতে সমস্যা হয়
সমর্থন, আপনার সম্ভবত এই বিকল্পের প্রয়োজন নেই। -pty-এর সাথে পারস্পরিকভাবে একচেটিয়া।

-nw প্রস্থান করার আগে সমস্ত প্রক্রিয়া সম্পূর্ণ হওয়ার জন্য অপেক্ষা করবেন না mpirun. এই বিকল্প হয়
সঙ্গে পারস্পরিক একচেটিয়া -w.

-nx স্বয়ংক্রিয়ভাবে LAM_MPI_*, LAM_IMPI_*, বা IMPI_* পরিবেশ রপ্তানি করবেন না
দূরবর্তী নোডের ভেরিয়েবল।

-O মাল্টিকম্পিউটার একজাতীয়। বার্তাগুলি পাস করার সময় কোনও ডেটা রূপান্তর করবেন না।
এই পতাকাটি এখন অপ্রচলিত।

-pty সিউডো-টিটি সমর্থন সক্ষম করুন। অন্যান্য জিনিসের মধ্যে, এটি লাইন-বাফার সক্রিয়
আউটপুট (যা সম্ভবত আপনি চান)। এটি ডিফল্ট। পরস্পর
-npty-এর সাথে একচেটিয়া।

-s নোড এই নোড থেকে প্রোগ্রাম লোড করুন। এই বিকল্পটি কমান্ড লাইনে বৈধ নয়
যদি একটি অ্যাপ্লিকেশন স্কিমা নির্দিষ্ট করা হয়।

-সিগস ব্যবহারকারী প্রক্রিয়ায় LAM ক্যাচ সংকেত আছে. এই বিকল্পগুলি পারস্পরিক একচেটিয়া
সঙ্গে - nsigs.

-ssi চাবি মূল্য
বিভিন্ন SSI মডিউলে আর্গুমেন্ট পাঠান। নীচে, "SSI" বিভাগটি দেখুন।

-টি, -টন সমস্ত প্রক্রিয়ার জন্য এক্সিকিউশন ট্রেস জেনারেশন সক্ষম করুন। ট্রেস প্রজন্ম হবে
আর কোন পদক্ষেপ না নিয়ে এগিয়ে যান। এই বিকল্পগুলির সাথে পারস্পরিক একচেটিয়া
-টফ.

-টফ সমস্ত প্রক্রিয়ার জন্য এক্সিকিউশন ট্রেস জেনারেশন সক্ষম করুন। জন্য ট্রেস প্রজন্ম
প্রসেসগুলি সম্মিলিতভাবে কল করার পরে বার্তা পাস ট্রাফিক শুরু হবে
MPIL_Trace_on(2)। উল্লেখ্য যে ডেটাটাইপ এবং কমিউনিকেটরদের জন্য ট্রেস জেনারেশন
ইচ্ছা বার্তাগুলির জন্য ট্রেস জেনারেশন সক্ষম কিনা তা নির্বিশেষে এগিয়ে যান বা৷
না. এই বিকল্পটির সাথে পারস্পরিক একচেটিয়া -t এবং -টন.

-টেলিভিশন টোটালভিউ ডিবাগারের অধীনে প্রসেস চালু করুন।

-v শব্দময় হও; গুরুত্বপূর্ণ পদক্ষেপগুলি সম্পন্ন হওয়ার সাথে সাথে রিপোর্ট করুন।

-w আগে সব অ্যাপ্লিকেশন প্রস্থান করার জন্য অপেক্ষা করুন mpirun প্রস্থান

-wd Dir ব্যবহারকারীর প্রোগ্রাম কার্যকর হওয়ার আগে ডিরেক্টরি ডিরেক্টরে পরিবর্তন করুন। উল্লেখ্য যে যদি
দ্য -wd বিকল্পটি কমান্ড লাইনে এবং একটি অ্যাপ্লিকেশন স্কিমা উভয় ক্ষেত্রেই প্রদর্শিত হয়,
কমান্ড লাইনের উপর স্কিমা প্রাধান্য পাবে। এই বিকল্পটি পারস্পরিক
সঙ্গে একচেটিয়া -D.

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

-সাসা সমস্ত MPI প্রক্রিয়ার প্রস্থান অবস্থা প্রদর্শন করুন তা নির্বিশেষে তারা ব্যর্থ হোক বা হোক
সফলভাবে চালানো

-sf তাদের মধ্যে একটি ব্যর্থ হলেই সমস্ত প্রক্রিয়ার প্রস্থান অবস্থা প্রদর্শন করুন।

-p prefix_str
[-sa] এবং [-sf] দ্বারা প্রদর্শিত প্রতিটি প্রক্রিয়া স্থিতি লাইনের উপসর্গ
prefix_str.

কোথায় কোথায় শুরু করতে হবে তা নির্দেশ করে নোড এবং/অথবা CPU শনাক্তকারীর একটি সেট কার্যক্রম। দেখ
bhost(5) নোড এবং CPU শনাক্তকারীর বর্ণনার জন্য। mpirun ইচ্ছা
সময়সূচী সংলগ্ন পদে MPI_COMM_WORLD একই নোডে যখন CPU শনাক্তকারী
ব্যবহৃত. উদাহরণস্বরূপ, যদি LAM বুট করা হয় n4 এবং একটি CPU-তে 0-এর CPU কাউন্ট দিয়ে
n2 এবং 1 এর গণনা কোথায় C হল, র‍্যাঙ্ক 0 থেকে 3 n0-এ স্থাপন করা হবে, এবং
4 এবং 5 র্যাঙ্কগুলি n1 এ স্থাপন করা হবে।

args প্রতিটি নতুন প্রক্রিয়ায় এই রানটাইম আর্গুমেন্টগুলি পাস করুন। এই সবসময় হতে হবে
শেষ আর্গুমেন্ট mpirun. এই বিকল্পটি কমান্ড লাইনে বৈধ নয় যদি একটি
অ্যাপ্লিকেশন স্কিমা নির্দিষ্ট করা হয়.

বর্ণনাঃ


এক আহ্বান mpirun LAM এর অধীনে চলমান একটি MPI অ্যাপ্লিকেশন শুরু করে। আবেদন করলে
কেবলমাত্র SPMD, অ্যাপ্লিকেশনটি নির্দিষ্ট করা যেতে পারে mpirun কমান্ড লাইন। যদি
অ্যাপ্লিকেশন হল MIMD, একাধিক প্রোগ্রাম সমন্বিত, একটি এপ্লিকেশন স্কিমা প্রয়োজন
পৃথক ফাইল। দেখা appschema(5) অ্যাপ্লিকেশন স্কিমা সিনট্যাক্সের বর্ণনার জন্য, কিন্তু
এটি মূলত একাধিক ধারণ করে mpirun কমান্ড লাইন, কম কমান্ড নাম নিজেই. দ্য
একটি প্রোগ্রামের বিভিন্ন ইনস্ট্যান্টেশনের জন্য বিভিন্ন বিকল্প নির্দিষ্ট করার ক্ষমতা আরেকটি
একটি অ্যাপ্লিকেশন স্কিমা ব্যবহার করার কারণ।

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

মনে রাখবেন যে LAM কার্যকরভাবে MPI_COMM_WORLD নম্বর বাম থেকে ডানে যেখানে,
কোন নামকরণ ব্যবহার করা হয় তা নির্বিশেষে। এটি গুরুত্বপূর্ণ হতে পারে কারণ সাধারণ MPI
প্রোগ্রামগুলি তাদের নিকটবর্তী প্রতিবেশীদের সাথে (অর্থাৎ, myrank +/- X) এর চেয়ে বেশি যোগাযোগ করে
দূরবর্তী প্রতিবেশী। যখন প্রতিবেশীরা একই নোডে শেষ হয়, তখন shmem RPIs এর জন্য ব্যবহার করা যেতে পারে
নেটওয়ার্ক RPI-এর পরিবর্তে যোগাযোগ, যার ফলে দ্রুত MPI কর্মক্ষমতা হতে পারে।

নোড দ্বারা অবস্থানগুলি নির্দিষ্ট করলে নির্দিষ্ট নোডের প্রতি এক্সিকিউটেবলের একটি কপি চালু হবে।
একটি ক্যাপিটল "N" ব্যবহার করে LAM কে ল্যাম্বুট করা সমস্ত উপলব্ধ নোড ব্যবহার করতে বলে (দেখুন
লম্বুট(1))। নির্দিষ্ট নোডের পরিসরগুলি "nR[,R]*" আকারে নির্দিষ্ট করা যেতে পারে, যেখানে
R একটি একক নোড নম্বর বা নোড সংখ্যার একটি বৈধ পরিসীমা নির্দিষ্ট করে
[0, num_nodes)। উদাহরণ স্বরূপ:

mpirun N a.out
এক্সিকিউটেবলের এক কপি চালায় a. আউট LAM মহাবিশ্বের সমস্ত উপলব্ধ নোডগুলিতে।
MPI_COMM_WORLD র‍্যাঙ্ক 0 হবে n0-এ, র‍্যাঙ্ক 1 হবে n1, ইত্যাদি৷

mpirun n0-3 a.out
এক্সিকিউটেবলের এক কপি চালায় a. আউট 0 থেকে 3 পর্যন্ত নোডগুলিতে। MPI_COMM_WORLD র্যাঙ্ক 0
n0-এ থাকবে, র‌্যাঙ্ক 1 হবে n1-তে, ইত্যাদি।

mpirun n0-3,8-11,15 a.out
এক্সিকিউটেবলের এক কপি চালায় a. আউট 0 থেকে 3, 8 থেকে 11 এবং 15 নোডগুলিতে।
MPI_COMM_WORLD র্যাঙ্কগুলি নিম্নরূপ ক্রমানুসারে করা হবে: (0, n0), (1, n1), (2, n2), (3, n3),
(4, n8), (5, n9), (6, n10), (7, n11), (8, n15)।

CPU দ্বারা নির্দিষ্ট করা MPI কাজগুলি চালু করার পছন্দের পদ্ধতি। উদ্দেশ্য হল যে
সাথে ব্যবহৃত বুট স্কিমা লম্বুট(1) প্রতিটি নোডে কতগুলি CPU পাওয়া যায় তা নির্দেশ করবে,
এবং তারপর একটি একক, সহজ mpirun কমান্ড তাদের সব জুড়ে চালু করতে ব্যবহার করা যেতে পারে. হিসাবে
উপরে উল্লিখিত, CPU-গুলি নির্দিষ্ট করা আসলে CPU-তে প্রক্রিয়াগুলিকে আবদ্ধ করে না -- এটি শুধুমাত্র a
SMPs চালু করার জন্য সুবিধার ব্যবস্থা। অন্যথায়, বাই-সিপিইউ নোটেশন একই
বাই-নোড নোটেশন হিসাবে, "N" এবং "n" এর পরিবর্তে "C" এবং "c" ব্যবহার করা হয়।

নিম্নলিখিত উদাহরণে অনুমান করুন যে LAM মহাবিশ্ব চারটি 4-উপায় SMP নিয়ে গঠিত। তাই
c0-3 n0 এর উপর, c4-7 n1 এর উপর, c8-11 n2 এর উপর এবং 13-15 n3 এর উপর।

mpirun C a.out
এক্সিকিউটেবলের এক কপি চালায় a. আউট LAM মহাবিশ্বের সমস্ত উপলব্ধ CPU-তে।
এটি সাধারণত সব এমপিআই কাজ চালু করার সহজ (এবং পছন্দের) পদ্ধতি (এমনকি
যদি এটি প্রতি নোডের একটি প্রক্রিয়ার সমাধান করে)। MPI_COMM_WORLD র‍্যাঙ্ক 0-3 হবে n0 এ,
র‍্যাঙ্ক 4-7 হবে n1-এ, র‍্যাঙ্ক 8-11 হবে n2, এবং র‍্যাঙ্ক 13-15 হবে n3-এ।

mpirun c0-3 a.out
এক্সিকিউটেবলের এক কপি চালায় a. আউট CPU-তে 0 থেকে 3. চারটি র‍্যাঙ্ক
MPI_COMM_WORLD MPI_COMM_WORLD এ থাকবে।

mpirun c0-3,8-11,15 a.out
এক্সিকিউটেবলের এক কপি চালায় a. আউট CPU-তে 0 থেকে 3, 8 থেকে 11, এবং 15 পর্যন্ত।
MPI_COMM_WORLD র‍্যাঙ্ক 0-3 হবে n0-এ, 4-7 হবে n2, এবং 8 হবে n3-এ।

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

mpirun n0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3 a.out

এই কাজ, কিন্তু স্পষ্টভাবে টাইপ করা কঠিন. বাই-সিপিইউ ব্যবহার করা সাধারণত সহজ
স্বরলিপি কেউ ভাবতে পারে যে নিম্নলিখিতগুলি সমতুল্য:

mpirun N -np 16 a.out

এই না সমতুল্য কারণ MPI_COMM_WORLD র্যাঙ্ক ম্যাপিং নোড দ্বারা বরাদ্দ করা হবে
CPU এর পরিবর্তে। তাই র‌্যাঙ্ক 0 হবে n0-এর উপর, র‌্যাঙ্ক 1 হবে n1-তে, ইত্যাদি। উল্লেখ্য যে
অনুসরণ, তবে, is সমতুল্য, কারণ LAM যেখানে "C" এর অভাবকে ব্যাখ্যা করে:

mpirun -np 16 a.out

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

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

mpirun CN a.out

যাইহোক, কিছু ক্ষেত্রে, একাধিক নির্দিষ্ট করা যেখানে ধারাগুলি কার্যকর হতে পারে। একটি বিবেচনা করুন
সমান্তরাল অ্যাপ্লিকেশন যেখানে MPI_COMM_WORLD র্যাঙ্ক 0 একটি "ম্যানেজার" হবে এবং তাই ব্যবহার করবে
খুব কম CPU চক্র কারণ এটি সাধারণত "কর্মী" প্রসেস ফিরে আসার জন্য অপেক্ষা করে
ফলাফল অতএব, উপলব্ধ সকলের উপর একটি "কর্মী" প্রক্রিয়া চালানো সম্ভবত বাঞ্ছনীয়
CPUs, এবং একটি অতিরিক্ত প্রক্রিয়া চালান যা "ম্যানেজার" হবে:

mpirun c0 C ম্যানেজার-কর্মী-প্রোগ্রাম

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

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

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

LAM তিনটি ডিরেক্টরিতে একটি অ্যাপ্লিকেশন স্কিমা খোঁজে: স্থানীয় ডিরেক্টরি, মান
LAMAPPLDIR এনভায়রনমেন্ট ভেরিয়েবল, এবং laminstalldir/boot, যেখানে "laminstalldir"
ডিরেক্টরি যেখানে LAM/MPI ইনস্টল করা হয়েছিল।

মান ইনপুট / আউটপুট
LAM সমস্ত দূরবর্তী নোডে UNIX স্ট্যান্ডার্ড ইনপুটকে /dev/null-এ নির্দেশ করে। স্থানীয় নোড যে
প্রার্থনা mpirun, আদর্শ ইনপুট থেকে উত্তরাধিকারসূত্রে প্রাপ্ত হয় mpirun. ডিফল্ট যা ব্যবহার করা হয়
টার্মিনালে বিরোধপূর্ণ অ্যাক্সেস রোধ করতে -w বিকল্প।

LAM সমস্ত দূরবর্তী নোডের LAM ডেমনে UNIX স্ট্যান্ডার্ড আউটপুট এবং ত্রুটি নির্দেশ করে। LAM
সমস্ত ক্যাপচার করা আউটপুট/ত্রুটি নোডে প্রেরণ করে যা আহ্বান করা হয়েছে mpirun এবং এটি প্রিন্ট করে
এর আদর্শ আউটপুট/ত্রুটি mpirun. স্থানীয় প্রক্রিয়াগুলি এর আদর্শ আউটপুট/ত্রুটির উত্তরাধিকারী হয়
mpirun এবং সরাসরি এটিতে স্থানান্তর করুন।

এইভাবে সাধারণ ব্যবহার করে LAM অ্যাপ্লিকেশনের জন্য স্ট্যান্ডার্ড I/O পুনর্নির্দেশ করা সম্ভব
শেল পুনর্নির্দেশ পদ্ধতি চালু আছে mpirun.

% mpirun C my_app my_input my_output

এই উদাহরণে যে নোট করুন কেবল স্থানীয় নোড (অর্থাৎ, নোড যেখানে mpirun আহ্বান করা হয়েছিল
থেকে) stdin এ my_input থেকে স্ট্রীম পাবেন। অন্য সব নোডের stdin
/dev/null এর সাথে আবদ্ধ হবে। যাইহোক, সব নোড থেকে stdout সংগ্রহ করা হবে
my_output ফাইল।

সার্জারির -f বিকল্পটি উপরে বর্ণিত স্ট্যান্ডার্ড I/O সমর্থন করার জন্য প্রয়োজনীয় সমস্ত সেটআপ এড়িয়ে যায়।
দূরবর্তী প্রক্রিয়াগুলি সম্পূর্ণরূপে /dev/null-এ নির্দেশিত হয় এবং স্থানীয় প্রক্রিয়াগুলি ইনহেরিট ফাইল
থেকে বর্ণনাকারী লম্বুট(1).

ছদ্ম-টিটি সমর্থন
সার্জারির -pty প্রক্রিয়া আউটপুট জন্য বিকল্প সক্রিয় pseudo-tty সমর্থন (এটি দ্বারা সক্রিয় করা হয়
ডিফল্ট). এটি, অন্যান্য জিনিসগুলির মধ্যে, দূরবর্তী নোড থেকে লাইন বাফার আউটপুটের জন্য অনুমতি দেয়
(যা সম্ভবত আপনি কি চান)। এই বিকল্পটি দিয়ে নিষ্ক্রিয় করা যেতে পারে -npty সুইচ।

প্রক্রিয়া পরিসমাপ্তি / সংকেত হ্যান্ডলিং
একটি MPI অ্যাপ্লিকেশন চালানোর সময়, যদি কোনো র্যাঙ্ক অস্বাভাবিকভাবে মারা যায় (হয় আগে প্রস্থান করা হয়
আবাহন MPI_FINALIZE, অথবা একটি সংকেতের ফলে মৃত্যু), mpirun একটি ত্রুটি প্রিন্ট আউট হবে
মেসেজ করুন এবং MPI অ্যাপ্লিকেশনের বাকি অংশ মেরে ফেলুন।

ডিফল্টরূপে, LAM/MPI শুধুমাত্র ব্যবহারকারী প্রোগ্রামে একটি সংকেতের জন্য একটি সংকেত হ্যান্ডলার ইনস্টল করে
(ডিফল্টরূপে SIGUSR2, কিন্তু LAM কনফিগার করা এবং নির্মিত হলে এটি ওভাররাইড করা যেতে পারে)।
তাই, ব্যবহারকারীদের LAM/MPI প্রোগ্রামে তাদের নিজস্ব সিগন্যাল হ্যান্ডলার ইনস্টল করা নিরাপদ
(এলএএম দ্বারা প্রদত্ত প্রক্রিয়ার 'রিটার্ন স্ট্যাটাস' পরীক্ষা করে মৃত্যুর-দ্বারা-সংকেতের ক্ষেত্রে নোটিশ করে
অপারেটিং সিস্টেম)।

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

যদি -সিগস বিকল্পের সাথে ব্যবহার করা হয় mpirun, LAM/MPI বিভিন্ন সিগন্যাল হ্যান্ডলার ইনস্টল করবে
স্থানীয়ভাবে প্রতিটি র‌্যাঙ্কে সংকেত ধরতে, ত্রুটির বার্তা প্রিন্ট করতে এবং বাকিগুলোকে মেরে ফেলতে
MPI আবেদন। এটি কিছুটা অপ্রয়োজনীয় আচরণ কারণ এটি এখন সমস্ত দ্বারা পরিচালিত হয়৷
mpirun, কিন্তু এটি পিছনের সামঞ্জস্যের জন্য ছেড়ে দেওয়া হয়েছে।

প্রক্রিয়া প্রস্থান স্থিতিগুলিকে
সার্জারির -সাসা, -sf, এবং -p এর বিদ্যমান স্থিতি প্রদর্শন করতে পরামিতি ব্যবহার করা যেতে পারে
পৃথক এমপিআই প্রক্রিয়াগুলি শেষ হওয়ার সাথে সাথে। -সাসা প্রস্থান অবস্থা প্রদর্শন করতে বাধ্য করে
সমস্ত প্রক্রিয়ার জন্য; -sf অন্তত একটি প্রক্রিয়া শেষ হলে শুধুমাত্র বিদ্যমান অবস্থা প্রদর্শন করে
হয় একটি সংকেত দ্বারা বা একটি অ-শূন্য প্রস্থান স্থিতি (মনে রাখবেন যে আহ্বান করার আগে প্রস্থান করুন
MPI_FINALIZE একটি অ-শূন্য প্রস্থান অবস্থা সৃষ্টি করবে)।

প্রতিটি প্রক্রিয়ার স্থিতি প্রিন্ট করা হয়, প্রতি লাইনে একটি, নিম্নলিখিত বিন্যাসে:

উপসর্গ_স্ট্রিং নোড পিড নিহত অবস্থা

If নিহত তাহলে 1 হয় অবস্থা সংকেত নম্বর। যদি নিহত তাহলে 0 হয় অবস্থা প্রস্থান হয়
প্রক্রিয়ার অবস্থা।

ডিফল্ট উপসর্গ_স্ট্রিং হল "mpirun:", কিন্তু -p অপশন এটি ওভাররাইড ব্যবহার করা যেতে পারে
স্ট্রিং।

বর্তমান ওয়ার্কিং নির্দেশিকা
প্রসেস করা ডিরেক্টরির ক্ষেত্রে mpirun-এর ডিফল্ট আচরণ পরিবর্তিত হয়েছে
মধ্যে শুরু হবে।

সার্জারির -wd mpirun-এর বিকল্প ব্যবহারকারীকে তাদের আগে একটি নির্বিচারে ডিরেক্টরিতে পরিবর্তন করতে দেয়
প্রোগ্রাম আহ্বান করা হয়। এটি কাজ নির্দিষ্ট করতে অ্যাপ্লিকেশন স্কিমা ফাইলগুলিতেও ব্যবহার করা যেতে পারে
নির্দিষ্ট নোড এবং/অথবা নির্দিষ্ট অ্যাপ্লিকেশনের জন্য ডিরেক্টরি।

যদি -wd বিকল্পটি স্কিমা ফাইলে এবং কমান্ড লাইনে, স্কিমা ফাইল উভয়ই প্রদর্শিত হয়
ডিরেক্টরি কমান্ড লাইন মান ওভাররাইড করবে।

সার্জারির -D বিকল্পটি বর্তমান কাজের ডিরেক্টরিকে সেই ডিরেক্টরিতে পরিবর্তন করবে যেখানে
নির্বাহযোগ্য বসবাস। এটি অ্যাপ্লিকেশন স্কিমা ফাইলগুলিতে ব্যবহার করা যাবে না। -wd পারস্পরিক হয়
সঙ্গে একচেটিয়া -D.

যদি না হয় -wd না -D নির্দিষ্ট করা হয়েছে, স্থানীয় নোড যেখানে ডিরেক্টরির নাম পাঠাবে
প্রতিটি দূরবর্তী নোড থেকে mpirun আহ্বান করা হয়েছিল। দূরবর্তী নোড তারপর চেষ্টা করবে
সেই ডিরেক্টরিতে পরিবর্তন করুন। যদি তারা ব্যর্থ হয় (যেমন, যদি ডিরেক্টরিটি এতে বিদ্যমান না থাকে
নোড), তারা ব্যবহারকারীর হোম ডিরেক্টরি থেকে শুরু করবে।

ব্যবহারকারীর প্রোগ্রাম আহ্বান করার আগে সমস্ত ডিরেক্টরি পরিবর্তন ঘটে; এটা পর্যন্ত অপেক্ষা করে না
MPI_INIT বলা হয়.

প্রক্রিয়া পরিবেশ
MPI অ্যাপ্লিকেশনের প্রক্রিয়াগুলি LAM ডেমন থেকে তাদের পরিবেশের উত্তরাধিকারসূত্রে প্রাপ্ত
নোড যার উপর তারা চলছে। একটি LAM ডেমনের পরিবেশ বুট করার সময় স্থির করা হয়
সঙ্গে LAM লম্বুট(1) এবং সাধারণত ব্যবহারকারীর শেল থেকে উত্তরাধিকারসূত্রে প্রাপ্ত হয়। উৎপত্তির উপর
নোড, এই শেল হবে যা থেকে লম্বুট(1) আহ্বান করা হয়েছিল; দূরবর্তী নোডের উপর, সঠিক
পরিবেশ দ্বারা ব্যবহৃত বুট SSI মডিউল দ্বারা নির্ধারিত হয় লম্বুট(1)। rsh বুট মডিউল,
উদাহরণস্বরূপ, দূরবর্তী নোডগুলিতে LAM ডেমন চালু করতে rsh/ssh ব্যবহার করে এবং সাধারণত
LAM ডেমন চালু করার আগে ব্যবহারকারীর শেল-সেটআপ ফাইলগুলির এক বা একাধিক এক্সিকিউট করে।
LD_LIBRARY_PATH এনভায়রনমেন্টের প্রয়োজন হয় এমন গতিশীলভাবে লিঙ্কযুক্ত অ্যাপ্লিকেশনগুলি চালানোর সময়
পরিবর্তনশীল সেট করতে হবে, বুট করার সময় এটি সঠিকভাবে সেট করা আছে কিনা তা নিশ্চিত করার জন্য যত্ন নেওয়া আবশ্যক
LAM.

রপ্তানি পরিবেশ ভেরিয়েবল
LAM_MPI_*, LAM_IMPI_*, অথবা IMPI_* ফর্মে নাম দেওয়া সমস্ত পরিবেশের ভেরিয়েবল
স্থানীয় এবং দূরবর্তী নোডগুলিতে স্বয়ংক্রিয়ভাবে নতুন প্রক্রিয়াগুলিতে রপ্তানি করা হবে। এই রপ্তানি
সঙ্গে বাধা হতে পারে -nx বিকল্প।

উপরন্তু, -x বিকল্প mpirun নির্দিষ্ট পরিবেশ ভেরিয়েবল রপ্তানি করতে ব্যবহার করা যেতে পারে
নতুন প্রক্রিয়ার জন্য। এর সিনট্যাক্স যখন -x বিকল্প নতুন সংজ্ঞা অনুমতি দেয়
ভেরিয়েবল, মনে রাখবেন যে এই বিকল্পের জন্য পার্সার বর্তমানে খুব পরিশীলিত নয় - এটি
এমনকি উদ্ধৃত মান বুঝতে পারে না। ব্যবহারকারীদের মধ্যে ভেরিয়েবল সেট করার পরামর্শ দেওয়া হয়
পরিবেশ এবং ব্যবহার -x তাদের রপ্তানি করতে; তাদের সংজ্ঞায়িত না.

চিহ্ন প্রজন্ম
দুটি সুইচ এলএএম-এর অধীনে চলমান প্রক্রিয়াগুলি থেকে ট্রেস জেনারেশন নিয়ন্ত্রণ করে এবং উভয়কেই অবশ্যই ভিতরে থাকতে হবে
ট্রেস জন্য অবস্থান আসলে উৎপন্ন করা হবে. প্রথম সুইচ দ্বারা নিয়ন্ত্রিত হয়
mpirun এবং দ্বিতীয় সুইচ প্রাথমিকভাবে দ্বারা সেট করা হয় mpirun কিন্তু এর সাথে রানটাইমে টগল করা যেতে পারে
MPIL_Trace_on(2) এবং MPIL_Trace_off(2)। দ্য -t (-টন সমতুল্য) এবং -টফ অপশন সব
প্রথম সুইচ চালু করুন। অন্যথায় প্রথম সুইচ বন্ধ এবং কল MPIL_Trace_on(2)
অ্যাপ্লিকেশন প্রোগ্রাম অকার্যকর হয়. দ্য -t বিকল্পটি দ্বিতীয়টিও চালু করে
সুইচ দ্য -টফ বিকল্পটি দ্বিতীয় সুইচটি বন্ধ করে দেয়। দেখা MPIL_Trace_on(2) এবং
ল্যামট্রেস(1) আরও বিস্তারিত জানার জন্য।

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

সার্জারির -O MULITCOMপিউটার ছিল কিনা LAM-কে নির্দেশ করার জন্য সুইচটি প্রয়োজনীয় ছিল
সমজাতীয় বা না। LAM এখন স্বয়ংক্রিয়ভাবে নির্ধারণ করে যে প্রদত্ত MPI কাজ কিনা
সমজাতীয় বা না। দ্য -O পতাকা নিঃশব্দে পশ্চাদমুখী সামঞ্জস্যের জন্য গ্রহণ করা হবে,
কিন্তু তা উপেক্ষা করা হয়।

এসএসআই (পদ্ধতি সেবা ইন্টারফেস)
সার্জারির -ssi সুইচ বিভিন্ন SSI মডিউলে পরামিতি পাস করার অনুমতি দেয়। LAM এর SSI
মডিউলগুলি বিস্তারিতভাবে বর্ণনা করা হয়েছে লামসি(7)। SSI মডিউল MPI-এর উপর সরাসরি প্রভাব ফেলে
প্রোগ্রাম কারণ তারা রান টাইমে টিউনযোগ্য প্যারামিটার সেট করার অনুমতি দেয় (যেমন কোন RPI
কমিউনিকেশন ডিভাইস ড্রাইভার ব্যবহার করতে হবে, সেই RPI-তে কোন প্যারামিটার পাস করতে হবে ইত্যাদি)।

সার্জারির -ssi সুইচ দুটি আর্গুমেন্ট নেয়: চাবি এবং মূল্য. দ্য চাবি যুক্তি সাধারণত নির্দিষ্ট করে
যা SSI মডিউল মান পাবে। উদাহরণস্বরূপ, দ চাবি "rpi" নির্বাচন করতে ব্যবহৃত হয়
MPI বার্তা পরিবহনের জন্য কোন RPI ব্যবহার করা হবে। দ্য মূল্য যুক্তি হল মান যে
প্রেরণ করা হয়. উদাহরণ স্বরূপ:

mpirun -ssi rpi lamd N foo
LAM কে "lamd" RPI ব্যবহার করতে এবং প্রতিটি নোডে "foo" এর একক অনুলিপি চালাতে বলে।

mpirun -ssi rpi tcp N foo
LAM কে "tcp" RPI ব্যবহার করতে বলে৷

mpirun -ssi rpi sysv N foo
LAM কে "sysv" RPI ব্যবহার করতে বলে৷

ইত্যাদি। LAM এর RPI SSI মডিউলগুলি বর্ণনা করা হয়েছে lamssi_rpi(7).

সার্জারির -ssi বিভিন্ন নির্দিষ্ট করতে সুইচ একাধিকবার ব্যবহার করা যেতে পারে চাবি এবং / অথবা মূল্য
যুক্তি. যদি একই চাবি একাধিকবার উল্লেখ করা হয়েছে, মূল্যs সঙ্গে সংযুক্ত করা হয়
একটি কমা (",") তাদের আলাদা করে।

উল্লেখ্য যে -ssi সুইচ হল পরিবেশ ভেরিয়েবল সেট করার জন্য একটি শর্টকাট। দ্য
পূর্বে সংশ্লিষ্ট পরিবেশ ভেরিয়েবল সেট করে একই প্রভাব সম্পন্ন করা যেতে পারে
দৌড় mpirun. LAM সেট করে পরিবেশের ভেরিয়েবলের ফর্ম হল:
LAM_MPI_SSI_key=মান.

উল্লেখ্য যে -ssi সুইচ পূর্বে সেট করা কোনো পরিবেশ ভেরিয়েবলকে ওভাররাইড করে। এছাড়াও নোট করুন
যে অজানা চাবি আর্গুমেন্ট এখনও এনভায়রনমেন্ট ভেরিয়েবল হিসাবে সেট করা আছে -- সেগুলি চেক করা হয় না
(দ্বারা mpirun) সঠিকতার জন্য। বেআইনি বা ভুল মূল্য যুক্তি হতে পারে বা নাও হতে পারে
রিপোর্ট করা হয়েছে -- এটি নির্দিষ্ট SSI মডিউলের উপর নির্ভর করে।

সার্জারির -ssi সুইচ পুরানো অপ্রচলিত -c2c এবং -লামদ সুইচ এই সুইচ ব্যবহার করা হয়
প্রাসঙ্গিক কারণ LAM-এ একবারে শুধুমাত্র দুটি RPI পাওয়া যেতে পারে: lamd RPI এবং একটি
C2C RPIs এর। এটি আর সত্য নয় -- সমস্ত RPI এখন উপলব্ধ এবং এখানে বেছে নেওয়া যায়৷
রান-টাইম ল্যামড আরপিআই নির্বাচন করা উপরের উদাহরণে দেখানো হয়েছে। দ্য -c2c সুইচ কোন আছে
সরাসরি অনুবাদ যেহেতু "C2C" অন্য সমস্ত RPI-এর উল্লেখ করত যেগুলি lamd ছিল না
আরপিআই। যেমন, -ssi rpi মূল্য নির্দিষ্ট কাঙ্খিত RPI নির্বাচন করতে ব্যবহার করা আবশ্যক (তা হোক না কেন
হল "lamd" বা অন্য RPI এর মধ্যে একটি)।

গ্যারান্টিযুক্ত খাম Resources
ডিফল্টরূপে, LAM প্রতিটি MPI-তে ন্যূনতম পরিমাণ বার্তা খামের বাফারিংয়ের গ্যারান্টি দেবে
প্রক্রিয়া জোড়া এবং বাধা বা একটি ত্রুটি রিপোর্ট করবে একটি প্রক্রিয়া যা ওভারফ্লো করার চেষ্টা করে
এই সিস্টেম সম্পদ। এই দৃঢ়তা এবং ডিবাগিং বৈশিষ্ট্যটি একটি মেশিনে প্রয়োগ করা হয়
নির্দিষ্ট পদ্ধতিতে যখন সরাসরি যোগাযোগ ব্যবহার করা হয়। এর মাধ্যমে সাধারণ LAM যোগাযোগের জন্য
LAM ডেমন, একটি প্রোটোকল ব্যবহার করা হয়। দ্য -nger বিকল্প GER এবং নেওয়া ব্যবস্থা নিষ্ক্রিয় করে
এটা সমর্থন LAM হলে সিস্টেম অ্যাডমিনিস্ট্রেটর দ্বারা ন্যূনতম GER কনফিগার করা হয়
ইনস্টল করা দেখা এমপিআই(7) আরও বিস্তারিত জানার জন্য।

উদাহরণ


উপরে "অবস্থানের নামকরণ" বিভাগে উদাহরণগুলি দেখতে ভুলবেন না।

mpirun N prog1
সমস্ত নোডে prog1 লোড এবং কার্যকর করুন। এক্সিকিউটেবল ফাইলের জন্য ব্যবহারকারীর $PATH অনুসন্ধান করুন
প্রতিটি নোডে।

mpirun -c 8 prog1
যেখানে LAM সেগুলি চালাতে চায় সেখানে prog8-এর 1 কপি চালান।

mpirun n8-10 -v -nw -s n3 prog1 -q
নোড 1, 8 এবং 9-এ prog10 লোড করুন এবং চালান। নোড 1-এ prog3 অনুসন্ধান করুন এবং স্থানান্তর করুন
এটা তিনটি লক্ষ্য নোড. প্রতিটি প্রক্রিয়া তৈরি করা হয় হিসাবে রিপোর্ট. a হিসাবে "-q" দিন
প্রতিটি নতুন প্রক্রিয়ার কমান্ড লাইন। প্রসেস শেষ হওয়ার আগে অপেক্ষা করবেন না
প্রস্থান করা হচ্ছে mpirun.

mpirun -v myapp
অ্যাপ্লিকেশন স্কিমা, myapp পার্স করুন এবং এতে নির্দিষ্ট করা সমস্ত প্রক্রিয়া শুরু করুন। রিপোর্ট
যেমন প্রতিটি প্রক্রিয়া তৈরি হয়।

mpirun -npty -wd /work/output -x DISPLAY C my_application

প্রতিটি উপলব্ধ সিপিইউতে "my_application" এর একটি অনুলিপি শুরু করুন। উপলব্ধ সংখ্যা
LAM বুট করার সময় প্রতিটি নোডের CPU গুলি পূর্বে নির্দিষ্ট করা হয়েছিল লম্বুট(1)। হিসাবে
উপরে উল্লিখিত, mpirun মধ্যে সন্নিহিত র্যাঙ্ক নির্ধারণ করা হবে MPI_COMM_WORLD একই নোডে
যেখানে সম্ভব. উদাহরণস্বরূপ, যদি n0-এর একটি CPU গণনা 8 থাকে এবং n1-এর CPU সংখ্যা 4 থাকে,
mpirun স্থাপন করবে MPI_COMM_WORLD n0-এ 7 থেকে 0 পর্যন্ত এবং n8-এ 11 থেকে 1 পর্যন্ত।
এটি অনেক সমান্তরাল অ্যাপ্লিকেশনের জন্য অন-নোড যোগাযোগকে সর্বাধিক করে তোলে; যখন ব্যবহার করা হয়
LAM-এ মাল্টি-প্রটোকল নেটওয়ার্ক/শেয়ারড মেমরি RPI-এর সাথে একত্রে (দেখুন
RELEASE_NOTES এবং LAM বিতরণ সহ ফাইল ইনস্টল করুন), সামগ্রিক যোগাযোগ
কর্মক্ষমতা বেশ ভাল হতে পারে। এছাড়াও ছদ্ম-টিটি সমর্থন নিষ্ক্রিয় করুন, ডিরেক্টরিতে পরিবর্তন করুন৷
/work/output, এবং DISPLAY ভেরিয়েবলটিকে নতুন প্রক্রিয়াগুলিতে রপ্তানি করুন (সম্ভবত
my_application আউটপুট প্রদর্শনের জন্য xv এর মতো একটি X অ্যাপ্লিকেশন আহ্বান করবে)।

কারণ নির্ণয়


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

mpirun: অ্যাপ্লিকেশন স্কিমাতে সিনট্যাক্স ত্রুটি, লাইন XXX
একটি ব্যবহার বা সিনট্যাক্স ত্রুটির কারণে অ্যাপ্লিকেশন স্কিমা পার্স করা যাবে না৷
ফাইলে দেওয়া লাইন।

ফাইলের নাম: এই ধরনের কোনো ফাইল বা ডিরেক্টরি নেই
এই ত্রুটি দুটি ক্ষেত্রে ঘটতে পারে। হয় নামযুক্ত ফাইলটি অবস্থিত করা যাবে না বা এটি আছে৷
পাওয়া গেছে কিন্তু ব্যবহারকারীর প্রোগ্রাম চালানোর জন্য পর্যাপ্ত অনুমতি নেই বা
অ্যাপ্লিকেশন স্কিমা পড়ুন।

প্রত্যাবর্তন VALUE না


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

যাইহোক, উল্লেখ্য যে যদি -nw সুইচ ব্যবহার করা হয়, mpirun থেকে রিটার্ন মান হয় না
র‌্যাঙ্কের প্রস্থান অবস্থা নির্দেশ করে।

onworks.net পরিষেবা ব্যবহার করে mpirun.lam অনলাইন ব্যবহার করুন


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

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

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

Ad