ইন্টেল ট্রেস অ্যানালাইজার এবং কালেক্টর দিয়ে শুরু করুন
Intel® ট্রেস অ্যানালাইজার এবং কালেক্টর দিয়ে শুরু করুন
এই Get Started ডকুমেন্ট এবং একটি প্রাক-সংগৃহীত ট্রেস ব্যবহার করুন file Intel® ট্রেস বিশ্লেষক এবং সংগ্রাহকের সাথে একটি মৌলিক MPI কর্মক্ষমতা বিশ্লেষণের মাধ্যমে হাঁটতে।
ইন্টেল ট্রেস বিশ্লেষক এবং সংগ্রাহক বার্তা পাসিং ইন্টারফেস (এমপিআই) ব্যবহারের দক্ষতা অন্বেষণ করতে এবং যোগাযোগের হটস্পট, সিঙ্ক্রোনাইজেশন বাধা এবং লোড ব্যালেন্সিং সনাক্ত করতে সহায়তা করে। পণ্য সম্পর্কে আরও তথ্যের জন্য, ইন্টেল ট্রেস বিশ্লেষক এবং সংগ্রাহক পণ্য পৃষ্ঠা দেখুন।
ইন্টেল ট্রেস অ্যানালাইজার এবং কালেক্টর ডাউনলোড করুন
- Intel® oneAPI HPC টুলকিটের একটি অংশ হিসেবে
- একটি স্বতন্ত্র হাতিয়ার হিসাবে
পূর্বশর্ত
- ইন্টেল ট্রেস অ্যানালাইজার এবং কালেক্টর চালানোর আগে, নিশ্চিত করুন যে আপনি সর্বশেষ Intel® MPI লাইব্রেরি এবং Intel® oneAPI DPC++/C++ কম্পাইলার বা Intel® Fortran কম্পাইলার ইনস্টল করেছেন।
- এটি কম্পাইলার, ইন্টেল MPI লাইব্রেরি এবং ইন্টেল ট্রেস অ্যানালাইজার এবং কালেক্টরের জন্য প্রয়োজনীয় পরিবেশের ভেরিয়েবল সেট করে এবং আপনি আপনার অ্যাপ্লিকেশনগুলি ট্রেস করতে প্রস্তুত।
- আরও তথ্যের জন্য, দেখুন: Intel® oneAPI HPC টুলকিট সিস্টেমের প্রয়োজনীয়তা।
ওয়ার্কফ্লো বুঝুন
- আপনার আবেদন ট্রেস
- সবচেয়ে সক্রিয় MPI ফাংশন বিশ্লেষণ করুন
- সমস্যাযুক্ত মিথস্ক্রিয়া সনাক্ত করুন
- সমস্যা সৃষ্টিকারী ফাংশন প্রতিস্থাপন করে আপনার অ্যাপ্লিকেশন কর্মক্ষমতা উন্নত করুন
আপনার MPI অ্যাপ্লিকেশন ট্রেস করুন
একটি ট্রেস তৈরি করুন file নিম্নলিখিত অ্যাপ্লিকেশন আচরণ বিশ্লেষণের জন্য ইভেন্ট লগ সংগ্রহ করতে.
- OneAPI ইনস্টলেশন ডিরেক্টর থেকে সেটভার স্ক্রিপ্ট চালিয়ে Intel® ট্রেস অ্যানালাইজার এবং কালেক্টর চালু করার জন্য পরিবেশ সেট আপ করুন
উল্লেখ্য
ডিফল্টরূপে, ইন্টেল ট্রেস অ্যানালাইজার এবং সংগ্রাহক Linux* OS এর জন্য /opt/intel/oneapi/itac এবং প্রোগ্রামে ইনস্টল করা আছে Files (x86)\Intel\oneAPI\itac\Windows* OS এর জন্য সর্বশেষ।
লিনাক্সে:
$ source /opt/intel/oneapi/setvars.sh
উইন্ডোজে:
"সি: \ প্রোগ্রাম Files (x86)\Intel\oneAPI\setvars.bat” - আপনার MPI অ্যাপ্লিকেশনটি চালান এবং -trace বিকল্পের সাথে একটি ট্রেস তৈরি করুন।
লিনাক্সে:
$ mpirun -trace -n 4 ./poisson_sendrecv.single
উইন্ডোজে:
অ্যাপটি কম্পাইল করুন এবং ট্রেস সংগ্রহ করুন।
Intel oneAPI DPC++/C++ কম্পাইলারের জন্য, চালান:
> mpiicc -trace poisson_sendrecv.single.c
ইন্টেল ফোর্টরান কম্পাইলারের জন্য, চালান:
> mpiifort -trace poisson_sendrecv.single.f
এই প্রাক্তনample এর জন্য একটি ট্রেস (stf*) তৈরি করেample poisson_sendrcv.single MPI অ্যাপ্লিকেশন - জেনারেটেড .stf খুলুন file ইন্টেল ট্রেস বিশ্লেষকের সাথে ইন্টেল ট্রেস বিশ্লেষক এবং সংগ্রাহক।
লিনাক্সে:
$ traceanalyzer ./ poisson_sendrecv.single.stf
উইন্ডোজে:
traceanalyzer poisson_sendrecv.single.stf
উল্লেখ্য
পরীক্ষার উদ্দেশ্যে, আপনি একটি পূর্ব-সংগৃহীত ট্রেস ডাউনলোড করতে পারেন file এই ডকুমেন্টে ব্যবহৃত বিষের জন্য poisson_sendrecv.single.stf এবং ইন্টেল ট্রেস অ্যানালাইজার এবং কালেক্টরের সাথে এটি খুলুন।
.stf file সারাংশ পৃষ্ঠায় খোলে view, যা আপনার অ্যাপ্লিকেশন কর্মক্ষমতা সম্পর্কে সাধারণ তথ্য উপস্থাপন করে:উল্লেখ্য ইন্টেল ট্রেস অ্যানালাইজার এবং কালেক্টর কার্যকারিতা সম্পর্কে আরও তথ্যের জন্য, আরও জানুন দেখুন।
সর্বাধিক সক্রিয় MPI ফাংশন বিশ্লেষণ করুন
একটি MPI অ্যাপ্লিকেশন আচরণ বিশ্লেষণ করুন, বাধাগুলি খুঁজে বের করুন এবং অ্যাপ্লিকেশন কর্মক্ষমতা উন্নত করার উপায়গুলি খুঁজে পেতে ক্রমিককরণ সনাক্ত করুন।
- সারাংশ পৃষ্ঠা থেকে ইভেন্ট টাইমলাইন খুলুন view শীর্ষ MPI ফাংশনগুলির গভীর বিশ্লেষণের জন্য অবিরত > চার্ট > ইভেন্ট টাইমলাইনে ক্লিক করে।
চার্ট সময়ের সাথে পৃথক প্রক্রিয়া কার্যক্রম প্রদর্শন করে।
অ্যাপ্লিকেশন কাজটি পুনরাবৃত্তিমূলক, যেখানে প্রতিটি পুনরাবৃত্তি একটি গণনামূলক অংশ এবং MPI যোগাযোগ নিয়ে গঠিত। - প্রয়োজনীয় সময়ের ব্যবধানে আপনার মাউস টেনে ফোকাস করার জন্য একটি একক পুনরাবৃত্তি চিহ্নিত করুন এবং এতে জুম করুন:
ট্রেস view আপনার নির্বাচিত ট্রেসের মধ্যে বিভাগটি দেখায়। ইভেন্ট টাইমলাইন চার্ট সেই ইভেন্টগুলি দেখায় যা নির্বাচিত পুনরাবৃত্তির সময় সক্রিয় ছিল।
- অনুভূমিক বারগুলি এই প্রক্রিয়াগুলিতে বলা ফাংশনগুলির সাথে প্রক্রিয়াগুলিকে উপস্থাপন করে।
- কালো রেখাগুলি প্রক্রিয়াগুলির মধ্যে প্রেরিত বার্তাগুলি নির্দেশ করে। এই লাইনগুলি প্রেরণ এবং গ্রহণের প্রক্রিয়াগুলিকে সংযুক্ত করে।
- নীল রেখা সমষ্টিগত ক্রিয়াকলাপের প্রতিনিধিত্ব করে, যেমন সম্প্রচার বা ক্রিয়াকলাপ হ্রাস করা।
- ফ্ল্যাট প্রো-এ স্যুইচ করুনfile ট্যাব (A) আপনার টাইম পয়েন্টে কার্যকরী ফাংশনগুলি ঘনিষ্ঠভাবে দেখার জন্য ( ইভেন্ট টাইমলাইনে নির্বাচিত৷
- আপনার অ্যাপ্লিকেশনে MPI প্রক্রিয়া কার্যকলাপ বিশ্লেষণ করতে MPI ফাংশনগুলিকে গোষ্ঠীভুক্ত করুন।
এটি করতে, ফ্ল্যাট প্রো-তে সমস্ত প্রক্রিয়া > গ্রুপ MPI (B) এ ডান-ক্লিক করুনfile এবং UngroupMPI নির্বাচন করুন। এই অপারেশনটি পৃথক MPI কলগুলিকে প্রকাশ করে। - পুনরাবৃত্তির শুরুতে MPI_Sendrecv ব্যবহার করে তাদের সরাসরি প্রতিবেশীদের সাথে যোগাযোগের প্রক্রিয়াগুলি বিশ্লেষণ করুন। প্রাক্তন জন্যampLe:
- ক s মধ্যেample, MPI_Sendrecv ডেটা এক্সচেঞ্জের একটি বাধা রয়েছে: পূর্ববর্তীটির সাথে বিনিময় সম্পূর্ণ না হওয়া পর্যন্ত প্রক্রিয়াটি তার পরবর্তী প্রতিবেশীর সাথে ডেটা বিনিময় করে না। ইভেন্ট টাইমলাইন view একটি সিঁড়ি হিসাবে এই বাধা প্রদর্শন করে.
- খ. পুনরাবৃত্তির শেষে MPI_Allreduce সমস্ত প্রক্রিয়া পুনরায় সমন্বয় করে; এই কারণেই এই ব্লকের বিপরীত সিঁড়ির চেহারা রয়েছে।
- ফাংশন প্রো ব্যবহার করে সিরিয়ালাইজেশন সনাক্ত করুনfile এবং মেসেজ প্রোfile views.
- ক একই সময়ে চার্ট খুলুন:
ফাংশনে প্রোfile চার্ট, লোড ব্যালেন্সট্যাব খুলুন। - একটি বার্তা প্রো খুলতে চার্ট মেনুতে যানfile.
- খ. লোড ব্যালেন্স ট্যাবে, MPI_Sendrecv এবং MPI_Allreduce প্রসারিত করুন। লোড ব্যালেন্সিং নির্দেশ করে যে MPI_Sendrecv-এ ব্যয় করা সময় প্রক্রিয়া সংখ্যার সাথে বৃদ্ধি পায়, যখন MPI_Allreduce-এর সময় হ্রাস পায়।
- গ. বার্তা প্রো পরীক্ষা করুনfile নিচের ডানদিকের কোণায় চার্ট করুন।
ব্লকের কালার কোডিং ইঙ্গিত করে যে উচ্চতর র্যাঙ্ক থেকে নিম্ন র্যাঙ্কে যাওয়ার বার্তাগুলির জন্য আনুপাতিকভাবে আরও বেশি সময়ের প্রয়োজন হয় যখন নিম্ন র্যাঙ্ক থেকে উচ্চতর র্যাঙ্কে যাওয়ার বার্তাগুলি দুর্বল জোড়-বিজোড় ধরনের প্যাটার্ন প্রকাশ করে:
- ক একই সময়ে চার্ট খুলুন:
তুলনামূলক বিশ্লেষণের ফলাফলগুলি দেখায় যে অ্যাপ্লিকেশনটিতে কোনও জটিল বিনিময় নিদর্শন নেই, বিনিময়টি শুধুমাত্র প্রতিবেশী প্রক্রিয়াগুলির সাথে সঞ্চালিত হয়। অ্যাপ্লিকেশনটির যোগাযোগের মডেলটিকে অপ্টিমাইজ করার জন্য যোগাযোগের পদক্ষেপ পরিবর্তন করে আপনার অ্যাপ্লিকেশনের কর্মক্ষমতা উন্নত করার জন্য তথ্যটি অপরিহার্য হবে।
ভারসাম্যহীন যোগাযোগ সনাক্ত করুন
আদর্শ পরিস্থিতিতে আপনার আবেদন দেখুন এবং মূল ট্রেস তুলনা file সমস্যাযুক্ত মিথস্ক্রিয়াকে বিচ্ছিন্ন করার জন্য আদর্শের সাথে।
- একটি আদর্শ তৈরি করুন file:
- ক অ্যাডভান্সড > আইডিয়ালাইজেশন নির্বাচন করুন বা ক্লিক করুন
(আদর্শকরণ) টুলবার বোতাম।
- খ. আদর্শকরণ ডায়ালগ বক্সে আদর্শকরণ পরামিতিগুলি পরীক্ষা করুন (আদর্শ ট্রেস file রূপান্তরের জন্য নাম এবং সময়সীমা)।
- গ. আপনার ট্রেস আদর্শ করতে শুরু ক্লিক করুন.
- ক অ্যাডভান্সড > আইডিয়ালাইজেশন নির্বাচন করুন বা ক্লিক করুন
- আদর্শ ট্রেসের সাথে মূল ট্রেসের তুলনা করুন:
- ক উন্নত > ভারসাম্যহীন ডায়াগ্রাম নির্বাচন করুন বা ক্লিক করুন
(ইমব্যালেন্স ডায়াগ্রাম) টুলবার বোতাম।
- খ. ভারসাম্যহীন ডায়াগ্রাম ডায়ালগ বক্সে, অন্যটি খুলুন ক্লিক করুন File বোতাম, আদর্শ ট্রেসে নেভিগেট করুন এবং এটি নির্বাচন করুন।
- গ. ভারসাম্যহীন ডায়াগ্রাম উইন্ডোতে, মোট মোড বোতামে ক্লিক করুন এবং ব্রেকডাউন মোড নির্বাচন করুন।
- ক উন্নত > ভারসাম্যহীন ডায়াগ্রাম নির্বাচন করুন বা ক্লিক করুন
আপনি দেখতে পাচ্ছেন যে MPI_Sendrecv হল সবচেয়ে সময়সাপেক্ষ ফাংশন। ভারসাম্যহীনতা ওজন প্রদর্শিত হয়
হালকা রঙ এবং MPI_Sendrecv ফাংশনের জন্য প্রায় 10% গঠিত। এই সময়টি প্রক্রিয়াগুলি একে অপরের জন্য অপেক্ষা করে।
যোগাযোগ পরিবর্তন করে আপনার অ্যাপ্লিকেশন কর্মক্ষমতা উন্নত করুন
- ব্লকিংকে নন-ব্লকিং কমিউনিকেশনে পরিবর্তন করে MPI অ্যাপ্লিকেশনের কর্মক্ষমতা উন্নত করুন।
আপনার কোডে সিরিয়াল MPI_Sendrcv-কে নন-ব্লকিং কমিউনিকেশন দিয়ে প্রতিস্থাপন করুন: MPI_Isend এবং MPI_Irecv। প্রাক্তন জন্যample: মূল কোড স্নিপেট:
// সীমানা বিনিময়
অকার্যকর বিনিময় (প্যারা* পি, গ্রিড* জিআর){
int i,j;
MPI_status status_100, status_200, status_300, status_400;
// প্রথম সারি নিচে পাঠান
MPI_Send(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->down, 100, MPI_COMM_WORLD); MPI_Recv(gr->x_new[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->up, 100, MPI_COMM_WORLD,
&স্থিতি_100);
// শেষ সারি পাঠান
MPI_Send(gr->x_new[gr->lrow], gr->lcol+2, MPI_DOUBLE, gr->up, 200, MPI_COMM_WORLD);
MPI_Recv(gr->x_new[0], gr->lcol+2, MPI_DOUBLE, gr->down, 200, MPI_COMM_WORLD, &status_200);
ইন্টেল ট্রেস অ্যানালাইজার তুলনা ব্যবহার করুন view সংশোধিত সঙ্গে ক্রমিক অ্যাপ্লিকেশন তুলনা
// বাম কলাম টিএমপি অ্যারেতে অনুলিপি করুন
যদি(gr->বাম!= MPI_PROC_NULL){
gr->x_new[i][gr->lcol+1] = right_col[i]; right_col[i] = gr->x_new[i][gr->lcol];
// ডান পাঠান
MPI_Send(right_col, gr->lrow+2, MPI_DOUBLE, gr->right, 400, MPI_COMM_WORLD); }
যদি(gr->বাম!= MPI_PROC_NULL)
{
MPI_Recv(left_col, gr->lrow+2, MPI_DOUBLE, gr->left, 400, MPI_COMM_WORLD,&status_400); জন্য(i=0; i< gr->lrow+2; i++
{
gr->x_new[i][0] = left_col[i];
}
}
আপডেট করা কোড স্নিপেট
MPI_Request req[7];
// প্রথম সারি নিচে পাঠান
MPI_Isend(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->down, 100, MPI_COMM_WORLD, &req[0]);
MPI_Irecv(gr->x_new[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->up, 100, MPI_COMM_WORLD, &req[1]);
…..
MPI_Waitall(7, req, MPI_STATUSES_IGNORE);
একবার সংশোধন করা হলে, সংশোধিত অ্যাপ্লিকেশনটির একক পুনরাবৃত্তি নিম্নলিখিত প্রাক্তনের মতো দেখাবেampLe: - ইন্টেল ট্রেস অ্যানালাইজার তুলনা ব্যবহার করুন view সংশোধিত একের সাথে ক্রমিক প্রয়োগের তুলনা করতে। তুলনার সাহায্যে দুটি চিহ্ন তুলনা করুন View, যাচ্ছে View > তুলনা করুন। তুলনা View অনুরূপ দেখায়:
তুলনা View, আপনি দেখতে পাচ্ছেন যে নন-ব্লকিং কমিউনিকেশন ব্যবহার করে সিরিয়ালাইজেশন অপসারণ করতে এবং প্রক্রিয়ার যোগাযোগের সময় কমাতে সাহায্য করে।
উল্লেখ্য আপনার অ্যাপ্লিকেশনের নোড-স্তরের কর্মক্ষমতা সম্পর্কে আরও তথ্যের জন্য, সংশ্লিষ্ট সরঞ্জামগুলির জন্য ডকুমেন্টেশন দেখুন: Intel® VTune™ Profiler MPI কোড বিশ্লেষণ এবং Intel® উপদেষ্টা ব্যবহার করে Intel® MPI অ্যাপ্লিকেশন বিশ্লেষণ করা।
আরও জানুন
ইন্টেল ট্রেস অ্যানালাইজার এবং কালেক্টর সম্পর্কে আরও তথ্যের জন্য নিম্নলিখিত সংস্থানগুলি অন্বেষণ করুন৷
বিজ্ঞপ্তি এবং দাবিত্যাগ
- ইন্টেল প্রযুক্তিগুলির জন্য সক্ষম হার্ডওয়্যার, সফ্টওয়্যার বা পরিষেবা অ্যাক্টিভেশন প্রয়োজন হতে পারে।
- কোনও পণ্য বা উপাদান একেবারে সুরক্ষিত হতে পারে না।
- আপনার খরচ এবং ফলাফল পৃথক হতে পারে।
- © ইন্টেল কর্পোরেশন। ইন্টেল, ইন্টেল লোগো এবং অন্যান্য ইন্টেল চিহ্নগুলি হল ইন্টেল কর্পোরেশন বা এর সহযোগী সংস্থাগুলির ট্রেডমার্ক৷ অন্যান্য নাম এবং ব্র্যান্ডগুলি অন্যের সম্পত্তি হিসাবে দাবি করা যেতে পারে।
- এই নথির দ্বারা কোনও বৌদ্ধিক সম্পত্তির অধিকারের জন্য কোনও লাইসেন্স (প্রকাশিত বা উহ্য, এস্টপেল বা অন্যথায়) দেওয়া হয় না।
- বর্ণিত পণ্যগুলিতে ডিজাইনের ত্রুটি বা ত্রুটি থাকতে পারে যা errata নামে পরিচিত যা পণ্যটিকে প্রকাশিত স্পেসিফিকেশন থেকে বিচ্যুত করতে পারে। বর্তমান বৈশিষ্ট্যযুক্ত ত্রুটি-বিচ্যুতি অনুরোধে উপলব্ধ।
- ইন্টেল সমস্ত প্রকাশ্য এবং অন্তর্নিহিত ওয়ারেন্টি অস্বীকার করে, যার মধ্যে সীমাবদ্ধতা ছাড়াই, ব্যবসায়িকতার অন্তর্নিহিত ওয়ারেন্টি, একটি নির্দিষ্ট উদ্দেশ্যে ফিটনেস, এবং অ-লঙ্ঘন, সেইসাথে কর্মক্ষমতা, লেনদেনের কোর্স, বা বাণিজ্যে ব্যবহার থেকে উদ্ভূত যে কোনও ওয়ারেন্টি।
দলিল/সম্পদ
![]() |
intel Intel ট্রেস বিশ্লেষক এবং সংগ্রাহক দিয়ে শুরু করুন [পিডিএফ] ব্যবহারকারীর নির্দেশিকা ইন্টেল ট্রেস অ্যানালাইজার এবং কালেক্টর দিয়ে শুরু করুন, ইন্টেল, ট্রেস অ্যানালাইজার এবং কালেক্টর, কালেক্টর দিয়ে শুরু করুন |