Performance portability
পারফরম্যান্স পোর্টেবিলিটি বলতে কম্পিউটার প্রোগ্রাম এবং অ্যাপ্লিকেশনগুলির বিভিন্ন প্ল্যাটফর্ম জুড়ে কার্যকরভাবে কাজ করার ক্ষমতাকে বোঝায়। পারফরম্যান্স পোর্টেবল অ্যাপ্লিকেশনগুলির বিকাশকারীরা কর্মক্ষমতাকে বাধা না দিয়ে এবং আদর্শভাবে প্ল্যাটফর্ম-নির্দিষ্ট কোডকে ন্যূনতম করার সময় একাধিক প্ল্যাটফর্মকে সমর্থন করতে চায়। এটি এইচপিসি (হাই পারফরম্যান্স কম্পিউটিং) সম্প্রদায়ের মধ্যে একটি কাঙ্ক্ষিত পণ্য, তবে এটি পরিমাপ করার কোনও সর্বজনীন বা সম্মত উপায় নেই। বহনযোগ্যতা কোনও অ্যাপ্লিকেশনের বহনযোগ্যতা বা সোর্স কোডের বহনযোগ্যতা বোঝায় কিনা তা নিয়ে কিছু বিতর্ক রয়েছে। কর্মক্ষমতা দুটি উপায়ে পরিমাপ করা যেতে পারেঃ হয় কোনও অ্যাপ্লিকেশনের অপ্টিমাইজড সংস্করণকে তার বহনযোগ্য সংস্করণের সাথে তুলনা করে; অথবা কতগুলি এফএলওপি সঞ্চালিত হয় তার উপর ভিত্তি করে কোনও অ্যাপ্লিকেশনের তাত্ত্বিক শীর্ষ কর্মক্ষমতার তুলনা করা, প্রধান-স্মৃতি থেকে প্রসেসরে স্থানান্তরিত তথ্যের সাথে। হার্ডওয়্যারের বৈচিত্র্য এমন সফ্টওয়্যার তৈরি করে যা অ্যাপ্লিকেশনটির দীর্ঘায়ুর জন্য ক্রমবর্ধমান গুরুত্বপূর্ণ বিভিন্ন ধরণের মেশিনে কাজ করে। বিষয়বস্তু কর্মক্ষমতা বহনযোগ্যতা শব্দটি শিল্পে প্রায়শই ব্যবহৃত হয় এবং সাধারণত বোঝায়ঃ "(1) একাধিক হার্ডওয়্যার প্ল্যাটফর্ম জুড়ে একটি অ্যাপ্লিকেশন চালানোর ক্ষমতা; এবং (2) এই প্ল্যাটফর্মগুলিতে কিছু ধারণাগত স্তরের কর্মক্ষমতা অর্জন করা।" উদাহরণস্বরূপ, 2016 সালের ডিওই (মার্কিন যুক্তরাষ্ট্রের জ্বালানি বিভাগ) সেন্টার অফ এক্সিলেন্স পারফরম্যান্স পোর্টেবিলিটি মিটিং-এ জন পেনিকুক (ইন্টেল) বলেন, "একটি অ্যাপ্লিকেশন যদি পারফরম্যান্সের একটি সামঞ্জস্যপূর্ণ স্তর অর্জন করে তবে তা বহনযোগ্য। প্রতিটি প্ল্যাটফর্মে সর্বাধিক পরিচিত বাস্তবায়নের তুলনায় প্ল্যাটফর্ম জুড়ে শীর্ষ এফএলওপিএস (প্রতি সেকেন্ডে ভাসমান পয়েন্ট অপারেশন)-এর শতাংশ নয়, এক্সিকিউশন সময় বা যোগ্যতার অন্যান্য পরিসংখ্যান দ্বারা সংজ্ঞায়িত করা হয়েছে। "আরও সরাসরি, জেফ লার্কিন (এনভিডিয়া) উল্লেখ করেছেন যে পারফরম্যান্স বহনযোগ্যতা তখন ছিল যখন" একই সোর্স কোড বিভিন্ন আর্কিটেকচারের উপর উত্পাদনশীলভাবে চলবে "। পারফরম্যান্স পোর্টেবিলিটি এইচপিসি (হাই পারফরম্যান্স কম্পিউটিং) সম্প্রদায়ের মধ্যে আলোচনার একটি মূল বিষয়। বর্তমান এবং ভবিষ্যতের এইচপিসি প্ল্যাটফর্মগুলিতে পারফরম্যান্স পোর্টেবিলিটি লক্ষ্যগুলির দিকে ধারণা এবং অগ্রগতি নিয়ে আলোচনা করার জন্য 2016 সালে চালু হওয়া এইচপিসি ফোরামে পারফরম্যান্স, পোর্টেবিলিটি এবং প্রোডাক্টিভিটিতে শিল্প, একাডেমিয়া এবং ডিওই জাতীয় পরীক্ষাগারগুলির সহযোগীরা প্রতি বছর মিলিত হন। প্রাসঙ্গিকতা পারফরম্যান্স বহনযোগ্যতা ক্রমাগত বিবর্তিত কম্পিউটিং স্থাপত্যের কারণে ডেভেলপারদের মধ্যে প্রাসঙ্গিকতা বজায় রাখে যা বর্তমান হার্ডওয়্যারের জন্য ডিজাইন করা অ্যাপ্লিকেশনগুলিকে অপ্রচলিত করার হুমকি দেয়। পারফরম্যান্স বহনযোগ্যতা এই ধারণার প্রতিনিধিত্ব করে যে কোনও বিকাশকারীর একক কোডবেস নতুন আর্কিটেকচার এবং বিভিন্ন বর্তমান আর্কিটেকচারের গ্রহণযোগ্য সীমার মধ্যে সম্পাদন করতে থাকবে যা কোডটি এখনও পরীক্ষা করা হয়নি। হার্ডওয়্যারের ক্রমবর্ধমান বৈচিত্র্য এমন সফ্টওয়্যার বিকাশ করে যা দীর্ঘায়ু এবং অব্যাহত প্রাসঙ্গিকতার জন্য প্রয়োজনীয় বিভিন্ন ধরণের মেশিনে কাজ করে। কর্মক্ষমতা বহনযোগ্যতার একটি বিশিষ্ট প্রবক্তা হল মার্কিন যুক্তরাষ্ট্রের জ্বালানি বিভাগের (ডিওই) এক্সাস্কেল কম্পিউটিং প্রকল্প (ইসিপি)। ই. সি. পি-র একটি এক্সাস্কেল কম্পিউটিং ইকোসিস্টেম তৈরির মিশনের জন্য বিভিন্ন ধরনের হার্ডওয়্যার স্থাপত্যের প্রয়োজন, যা কর্মক্ষমতা বহনযোগ্যতাকে একটি চলমান উদ্বেগের বিষয় করে তুলেছে এবং এক্সাস্কেল সুপারকম্পিউটারগুলি কার্যকরভাবে ব্যবহার করার জন্য অবশ্যই প্রস্তুত থাকতে হবে। 2016 সালের ডিওই সেন্টারস অফ এক্সিলেন্স পারফরম্যান্স পোর্টেবিলিটি মিটিং-এ, বার্ট স্টিল (লরেন্স লিভারমোর ন্যাশনাল ল্যাবরেটরি) বলেন যে বিভিন্ন প্ল্যাটফর্মের ক্রমাগত ব্যবহারের কারণে পারফরম্যান্স পোর্টেবিলিটি ই. সি. পি-র জন্য "একটি গুরুত্বপূর্ণ চলমান সমস্যা" ছিল। 2016 সাল থেকে ডিওই কর্মক্ষমতা বহনযোগ্যতার অব্যাহত গুরুত্ব অন্বেষণ করে কর্মশালার আয়োজন করেছে। 2017 সালের বৈঠকে উপস্থিত কোম্পানি এবং গোষ্ঠীগুলির মধ্যে রয়েছে ন্যাশনাল এনার্জি রিসার্চ সায়েন্টিফিক কম্পিউটিং সেন্টার (এনইআরএসসি), লরেন্স লিভারমোর ন্যাশনাল ল্যাবরেটরি (এলএলএনএল), স্যান্ডিয়া ন্যাশনাল ল্যাবরেটরিজ (এসএনএল), ওক রিজ ন্যাশনাল ল্যাবরেটরি (ওআরএনএল), ইন্টারন্যাশনাল বিজনেস মেশিনস (আইবিএম), আর্গোন ন্যাশনাল ল্যাবরেটরি (এএনএল), লস আলামোস ন্যাশনাল ল্যাবরেটরি (এলএএনএল), ইন্টেল এবং এনভিডিয়া। পারফরম্যান্স পোর্টেবিলিটি পরিমাপ একটি প্রোগ্রাম কখন পারফরম্যান্স পোর্টেবিলিটিতে পৌঁছায় তার পরিমাণ নির্ধারণ দুটি বিষয়ের উপর নির্ভর করে। প্রথম ফ্যাক্টর, বহনযোগ্যতা, কোডের মোট লাইন দ্বারা পরিমাপ করা যেতে পারে যা একাধিক আর্কিটেকচার জুড়ে ব্যবহৃত হয় বনাম কোডের মোট লাইন যা একক আর্কিটেকচারের উদ্দেশ্যে করা হয়। বহনযোগ্যতা কোনও অ্যাপ্লিকেশনের বহনযোগ্যতা বোঝায় কিনা তা নিয়ে কিছু বিতর্ক রয়েছে (অর্থাৎ। এটি সর্বত্র চলে কি না), অথবা সোর্স কোডের বহনযোগ্যতা (অর্থাৎ। কত কোড বিশেষ)। দ্বিতীয় কারণ, কর্মক্ষমতা, কয়েকটি উপায়ে পরিমাপ করা যেতে পারে। একটি পদ্ধতি হল একটি অ্যাপ্লিকেশনের প্ল্যাটফর্ম অপ্টিমাইজড সংস্করণের কার্যকারিতা বনাম একই অ্যাপ্লিকেশনের পোর্টেবল সংস্করণের কার্যকারিতা তুলনা করা। আরেকটি পদ্ধতি হল একটি রুফলাইন পারফরম্যান্স মডেল তৈরি করা, যা প্রোগ্রাম সম্পাদনের সময় কতগুলি এফএলওপি সঞ্চালিত হয় বনাম প্রধান-মেমোরি থেকে প্রসেসরে স্থানান্তরিত তথ্যের উপর ভিত্তি করে একটি অ্যাপ্লিকেশনের তাত্ত্বিক শীর্ষ কর্মক্ষমতা প্রদান করে। বর্তমানে কোন সর্বজনীন মান নেই যা প্রকৃতপক্ষে কোড বা একটি অ্যাপ্লিকেশন কর্মক্ষমতা বহনযোগ্য করে তোলে এবং প্রস্তাবিত পরিমাপ পদ্ধতিগুলি কোড দলগুলির সাথে প্রাসঙ্গিক উদ্বেগগুলি সঠিকভাবে ধারণ করে কিনা সে সম্পর্কে কোনও চুক্তি নেই। 2016 সালের ডিওই (মার্কিন যুক্তরাষ্ট্রের জ্বালানি বিভাগ) সেন্টার অফ এক্সিলেন্স পারফরম্যান্স পোর্টেবিলিটি মিটিংয়ের সময়, লরেন্স লিভারমোর ন্যাশনাল ল্যাবরেটরির স্পিকার ডেভিড রিচার্ডস বলেছিলেন যে, "একটি কোড পারফরম্যান্স পোর্টেবল হয় যখন অ্যাপ্লিকেশন দল তার পারফরম্যান্সকে পোর্টেবল বলে!" পারফরম্যান্স পোর্টেবিলিটি অ্যাক্রস ডাইভার্স কম্পিউটার আর্কিটেকচারস শীর্ষক 2019 সালের একটি গবেষণায় পারফরম্যান্স পোর্টেবিলিটির বর্তমান অবস্থা নির্ধারণের জন্য বিভিন্ন স্থাপত্যের সেট জুড়ে একাধিক সমান্তরাল প্রোগ্রামিং মডেল বিশ্লেষণ করা হয়েছে। সমীক্ষায় এই সিদ্ধান্তে উপনীত হয়েছে যে, কর্মক্ষমতা বহনযোগ্য কোড লেখার সময় একাধিক হার্ডওয়্যার প্ল্যাটফর্ম জুড়ে একাধিক বিক্রেতার দ্বারা সমর্থিত উন্মুক্ত (মানক) প্রোগ্রামিং মডেল ব্যবহার করা, অ্যালগরিদম এবং প্রয়োগের সমস্ত স্তরে সর্বাধিক সমান্তরালতা প্রকাশ করা, একই সাথে একাধিক প্ল্যাটফর্মে কোডগুলি বিকাশ ও উন্নত করা এবং বহু-উদ্দেশ্যমূলক স্বয়ংক্রিয়-সুরকরণ সমস্ত প্ল্যাটফর্মে ভাল কর্মক্ষমতা অর্জনের জন্য একটি নমনীয় কোডবেসে উপযুক্ত পরামিতিগুলি খুঁজে পেতে সহায়তা করতে পারে। 2022 সালের গবেষণাগুলি অনুমান করে যে একটি সমান্তরাল প্রয়োগের কার্যকারিতা বহনযোগ্যতার একটি পর্যাপ্ত এবং অন্তর্ভুক্তিমূলক সংজ্ঞা কাম্য, তবে বরং জটিল, এবং বৈজ্ঞানিক সম্প্রদায়ের বেশিরভাগ গবেষক এবং বিকাশকারীরা এই ধরনের সংজ্ঞা গ্রহণ করবেন কিনা তা সন্দেহজনক। উপরন্তু, সমান্তরাল প্রোগ্রামিং মডেলগুলির বিকাশে গত দুই দশকে যে পরিবর্তনগুলি ঘটেছে, বিশেষত বর্তমান সংস্করণগুলিতে নতুন পোর্টেবল পারফরম্যান্স বিমূর্ত সংযোজন এবং আগামী বছরগুলিতে যেগুলি যুক্ত করা হবে, সেগুলি এই ক্ষেত্রে একটি নতুন প্রবণতার রূপরেখা তৈরি করে। এই প্রবণতাটি ইঙ্গিত করে যে সমান্তরাল প্রোগ্রামিং মডেলগুলি অ্যাপ্লিকেশনগুলিকে যে কার্যকারিতা বহনযোগ্যতা প্রদান করবে তা কর্মক্ষমতা বহনযোগ্যতার চেয়ে বেশি তাৎপর্যপূর্ণ হবে যা অ্যাপ্লিকেশনগুলি নিজেরাই সরবরাহ করতে পারে। অন্য কথায়, এটি প্রস্তাব করা হয় যে সমান্তরাল প্রোগ্রামিং মডেলগুলি নির্দেশমূলক মডেলগুলির তুলনায় আরও বর্ণনামূলক হয়ে উঠবে, এইভাবে প্রোগ্রামারের কাছ থেকে প্রোগ্রামিং মডেল বাস্তবায়ন এবং এর অন্তর্নিহিত সংকলকের কাছে একটি বড় দায়িত্ব স্থানান্তর করবে, যা শেষ পর্যন্ত অ্যাপ্লিকেশনটির কর্মক্ষমতা বহনযোগ্যতার মাত্রা নির্ধারণ করে। অদূর ভবিষ্যতে অ্যাপ্লিকেশনগুলি কীভাবে বিকশিত হবে তার ক্ষেত্রে এটি একটি মৌলিক ধারণাগত পরিবর্তন। এই পরিবর্তনগুলির ফলস্বরূপ, কর্মক্ষমতা বহনযোগ্যতার সংজ্ঞার বিমূর্ত স্তরটি বাড়ানো প্রয়োজন। অন্য কথায়, এই গবেষণাগুলি কর্মক্ষমতা বহনযোগ্যতার জন্য একটি সংজ্ঞা প্রস্তাব করে যা প্রয়োগ-কেন্দ্রিক না হয়ে সমান্তরাল প্রোগ্রামিং মডেল-কেন্দ্রিক। ফ্রেমওয়ার্ক এবং নন-ফ্রেমওয়ার্ক সলিউশন বেশ কয়েকটি প্রোগ্রামিং অ্যাপ্লিকেশন এবং সিস্টেম রয়েছে যা প্রোগ্রামারদের তাদের অ্যাপ্লিকেশনগুলির কার্যকারিতা বহনযোগ্য করতে সহায়তা করে। কার্যকরী বহনযোগ্যতা সমর্থন করার দাবি করা কিছু কাঠামোর মধ্যে রয়েছে ওপেনসিএল, এসওয়াইসিএল, কোক্কোস, আরএজেএ, জাভা, ওপেনএমপি, ওপেনএসিসি। এই প্রোগ্রামিং ইন্টারফেসগুলি নির্দিষ্ট প্রোগ্রামিং ভাষাগুলিতে মাল্টি-প্ল্যাটফর্ম মাল্টিপ্রোসেসিং প্রোগ্রামিং সমর্থন করে। কিছু নন-ফ্রেমওয়ার্ক সমাধানের মধ্যে রয়েছে সেলফ-টিউনিং এবং ডোমেন-নির্দিষ্ট ভাষা। রেফারেন্স বাহ্যিক লিঙ্ক কার্যকরী কর্মক্ষমতা বহনযোগ্যতা। আই. ই. ই. ই সম্মেলন প্রকাশনা বিভিন্ন কম্পিউটার স্থাপত্য জুড়ে কর্মক্ষমতা বহনযোগ্যতা জুলিয়াঃ বাক্যবিন্যাসের জন্য আসুন, উচ্চ-স্তরের সমান্তরাল প্যাটার্নের মাধ্যমে অ্যাক্সিলারেটরদের জন্য গতি অন্বেষণ কর্মক্ষমতা বহনযোগ্যতার জন্য থাকুন কর্মক্ষমতা বহনযোগ্যতা অর্জনের দিকে অ্যাক্সিলারেটরদের জন্য নির্দেশাবলী ব্যবহার করে ইন্টেল নতুন ডেটা সমান্তরাল সি + +-এ কাজ করছে কোক্কোস লাইব্রেরি সি. এল. এ. ডব্লিউ ব্যবহার করে আলবানি সীমাবদ্ধ উপাদান বিশ্লেষণ কোডের কর্মক্ষমতা বহনযোগ্যতার দিকেঃ উদীয়মান কম্পিউটিং আর্কিটেকচার জুড়ে কর্মক্ষমতা বহনযোগ্যতা প্রদানকারী একটি সরঞ্জাম সাধারণ-উদ্দেশ্য সমান্তরাল প্রোগ্রামিংয়ের উৎপাদনশীলতা এবং কর্মক্ষমতা বহনযোগ্যতা বৃদ্ধি স্পিরালঃ এক্সট্রিম স্কেল কম্পিউটিংয়ে ভবিষ্যতের প্রমাণ কর্মক্ষমতা বহনযোগ্যতা বহনযোগ্যতাঃ মেট্রিক, চ্যালেঞ্জ পারফরম্যান্স পোর্টেবিলিটি মেট্রিক্স প্রয়োগের ক্ষেত্রে ওপেনএসিসি, ওপেনএমপি, কোক্কোস এবং আরএজেএ গ্রন্থপঞ্জির পারফরম্যান্স পোর্টেবিলিটির উপর পারফরম্যান্স পোর্টেবিলিটি মেট্রিকের সংস্কার এক্সাস্কেল বৈজ্ঞানিক প্রয়োগঃ স্কেলিবিলিটি এবং পারফরম্যান্স পোর্টেবিলিটি। যুক্তরাজ্য, সি. আর. সি প্রেস, 2017। মাজাহেরি এ., শুল্টে জে., মোস্কেভিচ এম. ডব্লিউ., ওল্ফ এফ., জানেসারি এ। (2019) জিপিইউ টেনসর অপারেশনের প্রোগ্রামযোগ্যতা এবং কর্মক্ষমতা বহনযোগ্যতা বৃদ্ধি করা। ইয়াহিয়াপুর আর. (সংস্করণ) ইউরো-পার 2019: সমান্তরাল প্রক্রিয়াকরণ। ইউরো-পার 2019। লেকচার নোটস ইন কম্পিউটার সায়েন্স, খণ্ড 11725। স্প্রিঙ্গার, চাম। https://doi.org/10.1007/978-3-030-29400-7_16 কম্পিউটার প্রোগ্রামিং