এটিকে চিত্রিত করুন: আপনি একটি মনোরম ভোজের জন্য তাড়াহুড়ো করছেন, তবে আপনি আপনার রান্নাঘরের আকার এবং ডেকের হাতের সংখ্যা দ্বারা সীমাবদ্ধ। সমান্তরাল কম্পিউটিং জগতে, Amdahl's Law এবং Gustafson's Law হল বিশ্বস্ত রেসিপি যা আপনার রান্নার মাস্টারপিসকে অপ্টিমাইজ করার জন্য প্রয়োজন৷ এগুলি এমন গোপন উপাদানগুলির মতো যা কয়েক দশক ধরে কম্পিউটারের কার্যকারিতাকে পাকাপোক্ত করেছে, যা আমাদেরকে আরও দ্রুত প্রক্রিয়াকরণের গতি উপভোগ করতে দেয়৷ এই দুটি নীতি সমান্তরাল কম্পিউটিং এর ইয়িন এবং ইয়াং হতে পারে, এবং তারা মাল্টি-কোর প্রসেসর এবং উচ্চ-পারফরম্যান্স কম্পিউটিং এর ক্ষেত্র জয় করার জন্য তাদের অনুসন্ধানে প্রযুক্তি-বুদ্ধিমান উইজার্ডদের গাইড করে চলেছে। কিন্তু Amdahl's এবং Gustafson এর আইন কি এবং কিভাবে তারা আলাদাভাবে বা টেন্ডেম তাদের জাদু কাজ করে? সমান্তরাল প্রোগ্রামিংয়ের গুরুত্ব সম্পর্কে সচেতন হওয়ার কারণে, আজ আমরা এই আইনগুলির জটিলতায় ডুবে যাব এবং আবিষ্কার করব যে কীভাবে এগুলি জ্ঞানী প্রোগ্রামারদের হাতে শক্তিশালী হাতিয়ার হিসাবে ব্যবহার করা যেতে পারে।
আমদাহলের আইন: পটভূমি
- সর্বোচ্চ গতি
- সতর্কতা
গুস্তাফসনের আইন: পটভূমি
- স্কেল্ড স্পিডআপ
- সতর্কতা
শক্তিশালী স্কেলিং বনাম দুর্বল স্কেলিং
- স্কেলিং পরীক্ষা
- শক্তিশালী স্কেলিং
- দুর্বল স্কেলিং
উপসংহার
'67 সালে, স্প্রিং জয়েন্ট কম্পিউটার কনফারেন্সে, ডঃ জিন আমডাহল, IBM-তে কিছু গুরুতর কম্পিউটার জাদুকর কাজ করছেন, ইলিয়াক-IV-এর অভ্যন্তরীণ কাজের পিছনের প্রতিভা ব্রেইনিয়াক ড্যানিয়েল স্লটনিক সহ আরও তিনজন প্রযুক্তি-প্রেমী লোকের সাথে একত্রিত হন। তারা কি ছিল, আপনি জিজ্ঞাসা? ঠিক আছে, তারা কম্পিউটার আর্কিটেকচারের ভবিষ্যতকে হ্যাশ করছিল। এই সম্মেলনের সময়, ডক্টর জিন আমডাহল বাস্তব-বিশ্বের সমস্যা এবং তাদের সমস্ত অগোছালো উদ্ভটতার সাথে মোকাবিলা করার সময় "মাল্টি-প্রসেসর পদ্ধতির" সম্মুখীন হওয়া বাধাগুলির বিষয়ে তার চিন্তাভাবনা তুলে ধরেন। এবং অনুমান করুন, তিনি এই ধরনের প্রকৃতির সমস্যাগুলির জন্য "একক প্রসেসর পদ্ধতির" জন্য একটি বড় চিৎকার দিয়েছেন!
আইবিএম-এ থাকাকালীন, আমডাহল গভীরভাবে লক্ষ্য করেছিলেন যে গণনামূলক কাজের একটি উল্লেখযোগ্য অংশ গ্রহণ করা হয়েছিল যাকে তিনি উপযুক্তভাবে " ডেটা ম্যানেজমেন্ট হাউসকিপিং " বলে অভিহিত করেছিলেন। তিনি দৃঢ়ভাবে দাবি করেছিলেন যে এই নির্দিষ্ট ভগ্নাংশটি প্রায় এক দশক ধরে উল্লেখযোগ্যভাবে সামঞ্জস্যপূর্ণ ছিল, ধারাবাহিকভাবে উত্পাদন রানে কার্যকর করা নির্দেশাবলীর 40% বৃদ্ধি করে।
এই "গৃহস্থালি" কাজের ছাতার নিচে কি পড়ে? এটি কম্পিউটেশনাল টাস্কগুলির একটি বিস্তৃত অ্যারেকে অন্তর্ভুক্ত করে যা অপরিহার্য হলেও, মূল কম্পিউটিং মিশনে সরাসরি অবদান রাখে না। নির্দিষ্ট অ্যালগরিদম এবং অ্যাপ্লিকেশনের উপর নির্ভর করে, এতে ডেটা I/O, প্রিপ্রসেসিং, মেমরি ম্যানেজমেন্ট, ফাইল হ্যান্ডলিং এবং আরও অনেক কিছু জড়িত থাকতে পারে। এই সামঞ্জস্যতা প্রস্তাব করে যে, অনেক অ্যাপ্লিকেশনের জন্য, প্রক্রিয়াকরণ সময়ের একটি উল্লেখযোগ্য অংশ এই কাজগুলিতে ব্যয় করা হয়। একটি নির্দিষ্ট স্তরের ডেটা ম্যানেজমেন্ট হাউসকিপিং প্রায় অনিবার্য এবং উল্লেখযোগ্যভাবে হ্রাস করা চ্যালেঞ্জিং। আমডাহল নোট করেছেন যে এই ওভারহেডটি ক্রমানুসারে প্রদর্শিত হয়, যার অর্থ এটি ধাপে ধাপে ঘটে এবং সমান্তরাল প্রক্রিয়াকরণ কৌশলগুলির জন্য অনুপযুক্ত।
"একটি মোটামুটি সুস্পষ্ট উপসংহার যা এই মুহুর্তে টানা যেতে পারে তা হল উচ্চ সমান্তরাল প্রক্রিয়াকরণের হার অর্জনের জন্য ব্যয় করা প্রচেষ্টা নষ্ট হয় যদি না এটি প্রায় একই মাত্রার অনুক্রমিক প্রক্রিয়াকরণের হারে অর্জনের সাথে থাকে।" - ডঃ জিন আমডাহল [১]
তার মূল গবেষণাপত্রে [১], আমডাহল যোগ করেছেন যে "হাউসকিপিং" কাজের ক্ষেত্রটি "মাল্টি-প্রসেসর" পদ্ধতির মুখোমুখি হওয়া চ্যালেঞ্জগুলির বিষয়ে আইসবার্গের একটি টিপ মাত্র। একজন প্রশিক্ষিত তাত্ত্বিক পদার্থবিদ হিসেবে তার চিত্তাকর্ষক পটভূমিতে Ph.D. ধারণ করে, Amdahl বাস্তব-বিশ্বের শারীরিক চ্যালেঞ্জগুলির একটি অন্তরঙ্গ বোঝাপড়ার অধিকারী ছিলেন যেগুলি মোকাবেলা করার জন্য কম্পিউটারগুলিকে প্রকৌশলী করা হয়েছিল। তিনি অনেক জটিলতাকে আন্ডারস্কোর করেছেন, যেমন অনিয়মিত সীমানা, নন-ইউনিফর্ম অভ্যন্তরীণ, এবং পরিবর্তনশীল অবস্থার উপর স্থানিক এবং অস্থায়ী নির্ভরতা, যার সবকটিই "মাল্টি-প্রসেসর" দৃষ্টান্তের জন্য ভয়াবহ বাধা রয়েছে।
উদাহরণস্বরূপ, একটি 2D কার্টেসিয়ান গ্রিডে তাপ বিতরণের গণনা বিবেচনা করুন। যে কোন বিন্দুতে, তাপমাত্রা (T) প্রতিবেশী বিন্দুর তাপমাত্রার উপর নির্ভর করে। একটি সমান্তরাল কম্পিউটিং মডেল নিয়োগ করার সময়, এই মানগুলিকে সন্নিহিত পয়েন্টগুলির সাথে যোগাযোগ করা অপরিহার্য, যা পৃথক প্রসেসরে সংরক্ষণ করা যেতে পারে। এই সমস্যাগুলি সমসাময়িক পরিস্থিতিতে বিস্তৃত হতে থাকে।
সৌভাগ্যক্রমে, কম্পিউটেশনাল বিশেষজ্ঞদের সম্মিলিত বুদ্ধিমত্তা এই জটিল চ্যালেঞ্জগুলিকে সামনের দিকে মোকাবেলা করার জন্য তৈরি করা অসংখ্য সংখ্যাসূচক পদ্ধতি এবং প্রোগ্রামিং কৌশল তৈরি করেছে।
তার মূল কাজটিতে, আমদাহলের সূত্র গাণিতিক সমীকরণের মধ্যে পড়েনি; এটি শুধুমাত্র পরবর্তী বিশ্লেষণে সর্বাধিক গতির পরিমাণ নির্ধারণ করা হয়েছিল।
Amdahl এর আইন এই ধারণার উপর ভিত্তি করে যে একটি সিরিয়াল প্রোগ্রামের সঞ্চালন সময়ের একটি ভগ্নাংশ f আদর্শভাবে কোনো যোগাযোগ বা সিঙ্ক্রোনাইজেশন ওভারহেড ছাড়াই সমান্তরাল। পরিপূরক অংশ, s = 1 − f হিসাবে উপস্থাপিত, সম্পূর্ণরূপে অনুক্রমিক।
এইভাবে, যদি টি অনুক্রমিক প্রোগ্রামের সম্পাদনের সময় হয়, তাহলে p কোর, T(p) এর সম্পাদনের সময় দ্বারা দেওয়া হয়:
Speedup , অনুক্রমিক সঞ্চালন সময়ের সাথে সমান্তরাল সম্পাদনের সময়ের অনুপাত, দেয়:
সুতরাং, স্পিডআপের উপরের সীমাটিকে সংজ্ঞায়িত করা যেতে পারে:
এর সরলতা সত্ত্বেও, আমদাহলের আইন তার সীমাবদ্ধতা ছাড়া নয়। মডেলটি মেমরি ব্যান্ডউইথ, লেটেন্সি এবং I/O সীমাবদ্ধতার মতো জটিল হার্ডওয়্যার বাধাগুলিকে উপেক্ষা করে। এটি থ্রেড তৈরি, সিঙ্ক্রোনাইজেশন, যোগাযোগ ওভারহেড এবং অন্যান্য বাস্তব-বিশ্বের কারণগুলির কার্যকারিতা ত্রুটিগুলি বিবেচনা করতে ব্যর্থ হয়। দুঃখজনকভাবে, এইসব হিসাববিহীন কারণগুলি সাধারণত প্রকৃত কর্মক্ষমতার উপর ক্ষতিকর প্রভাব ফেলে।
নিম্নলিখিত চিত্রটি গতির উপর সমান্তরালকরণের প্রভাবকে চিত্রিত করে, যেমনটি Amdahl এর আইন দ্বারা নির্ধারিত। এটা স্পষ্ট যে, এমনকি 95% এর একটি উল্লেখযোগ্য সমান্তরাল ভগ্নাংশ এবং প্রসেসরের একটি বিশাল অ্যারের সাথে, সর্বাধিক অর্জনযোগ্য গতির ক্যাপ প্রায় 20 গুণ। সমান্তরালকরণ শতাংশকে 99%-এ ঠেলে এবং অসীমভাবে অনেক প্রসেসর নিয়োগ করা আরও চিত্তাকর্ষক 100x গতি অর্জন করতে পারে, যা প্রতিশ্রুতি রাখে।
যাইহোক, এটি স্বীকার করা গুরুত্বপূর্ণ যে এতগুলি প্রসেসর থাকা একটি বিরল ঘটনা ৷ আমরা প্রায়ই অনেক বেশি পরিমিত সংখ্যার সাথে কাজ করি, যেমন 64 বা তারও কম।
যখন আমরা 64টি প্রসেসর ব্যবহার করে (f 95%) ব্যবহার করে একটি প্রোগ্রামে Amdahl এর আইন প্রয়োগ করি, তখন সর্বাধিক গতি 15.42x এর কাছাকাছি হয়। স্বীকার্য, এই পরিসংখ্যান খুব আশাব্যঞ্জক নয়!
এই অন্তর্দৃষ্টি এই অভিব্যক্তিতে নিযুক্ত সীমা দ্বারা কিছুটা অস্পষ্ট:
এই সীমাটি এই সত্যটি লুকিয়ে রাখে যে স্পিডআপের পরিসংখ্যান উল্লেখযোগ্যভাবে কম যখন আমরা প্রসেসরের ব্যবহারিক, বাস্তব-বিশ্বের সংখ্যা বিবেচনা করি।
তা সত্ত্বেও, Amdahl-এর আইনের সবচেয়ে উল্লেখযোগ্য ত্রুটি এই ধারণার মধ্যে রয়েছে যে একটি অ্যাপ্লিকেশন চালানোর জন্য আরও কোর ব্যবহার করার সময় সমস্যার আকার স্থির থাকে।
মূলত, এটি অনুমান করে যে সমান্তরাল ভগ্নাংশটি অপরিবর্তিত থাকে, নিযুক্ত কোরের সংখ্যা নির্বিশেষে। এই সীমাবদ্ধতাটি জন এল. গুস্তাফসন দ্বারা পুঙ্খানুপুঙ্খভাবে সম্বোধন এবং সম্প্রসারিত হয়েছিল, যিনি একটি পরিবর্তিত দৃষ্টিভঙ্গি প্রস্তাব করেছিলেন যা বর্তমানে গুস্তাফসনের আইন নামে পরিচিত। যাইহোক, এই স্বীকৃত সমস্যা এবং সতর্কতা সত্ত্বেও, এটি স্বীকার করা অপরিহার্য যে আমদাহলের আইনের নিজস্ব যোগ্যতা রয়েছে, যা সমান্তরালকরণের জটিলতাগুলির মধ্যে মূল্যবান অন্তর্দৃষ্টি প্রদান করে। Amdahl এর আইন শক্তিশালী স্কেলিং পরীক্ষার আকারে প্রয়োগ খুঁজে পায়, একটি বিষয় যা আমরা পরে অন্বেষণ করব।
স্যান্ডিয়া ন্যাশনাল ল্যাবরেটরিতে ব্যাপকভাবে সমান্তরাল কম্পিউটিং সিস্টেমে কাজ করার সময়, ড. জন এল. গুস্তাফসন এবং তার দল একটি 1024-প্রসেসর হাইপারকিউবে তিনটি ভিন্ন অ্যাপ্লিকেশনের জন্য চিত্তাকর্ষক গতির কারণগুলি পেয়েছে৷ সিরিয়াল কোডের ভগ্নাংশ 0.4-0.8% এর সাথে মিলে যায়।
“...আমরা একটি 1024-প্রসেসর হাইপারকিউবে গতির কারণগুলি অর্জন করেছি যা আমরা অভূতপূর্ব বলে বিশ্বাস করি: 1021 কনজুগেট গ্রেডিয়েন্ট ব্যবহার করে বিম স্ট্রেস বিশ্লেষণের জন্য, 1020 সুস্পষ্ট সসীম পার্থক্য ব্যবহার করে বিভ্রান্ত পৃষ্ঠ তরঙ্গ সিমুলেশনের জন্য এবং 1016 অস্থির তরল-প্রবাহ ব্যবহার করে অস্থির তরল প্রবাহের জন্য পরিবহন।" — ড. জন এল. গুস্তাফসন [২]
আমরা শেষ বিভাগে স্পষ্টভাবে দেখেছি যে Amdahl এর আইন অনুসারে, বিপুল সংখ্যক প্রসেসরের জন্য সর্বোচ্চ গতি অর্জন 1/s। সুতরাং, কিভাবে 1021x এর এই বিস্ময়কর গতি অর্জন করা যেতে পারে?
গুস্তাফসন [২] হাইলাইট করেছেন যে গাণিতিক অভিব্যক্তিটির একটি সূক্ষ্ম অনুমান রয়েছে, যা বোঝায় যে পরিবর্তনশীল f টি p এর সাথে সম্পর্কিত নয়। যাইহোক, এই দৃশ্যকল্প খুব কমই আমরা সম্মুখীন বাস্তবতা. বাস্তব-বিশ্বের পরিস্থিতিতে, আমরা সাধারণত একাডেমিক গবেষণার নিয়ন্ত্রিত পরিবেশ ব্যতীত একটি নির্দিষ্ট-আকারের সমস্যা গ্রহণ করি না এবং বিভিন্ন সংখ্যক প্রসেসরে এটি চালাই না। পরিবর্তে, ব্যবহারিক অ্যাপ্লিকেশনগুলিতে, সমস্যার আকার প্রসেসরের সংখ্যার সাথে তাল মিলিয়ে পরিমাপ করতে থাকে।
যখন আরও শক্তিশালী প্রসেসর পাওয়া যায়, ব্যবহারকারীরা বর্ধিত ক্ষমতার সম্পূর্ণ সুবিধা নিতে সমস্যার জটিলতা প্রসারিত করে মানিয়ে নেয়। তারা গ্রিড রেজোলিউশন, টাইমস্টেপের সংখ্যা, পার্থক্য অপারেটরের জটিলতা এবং অন্যান্য পরামিতিগুলির মতো দিকগুলিকে সুনিশ্চিত করতে পারে যাতে প্রোগ্রামটি একটি পছন্দসই সময়সীমার মধ্যে কার্যকর করা যায়।
গুস্তাফসনের মতে, এটি প্রায়শই অনুমান করা আরও বাস্তবসম্মত যে, অনুশীলনে, রানটাইম সমস্যার আকারের পরিবর্তে তুলনামূলকভাবে স্থির থাকে।
গুস্তাফসন লক্ষ্য করেছেন যে একটি প্রোগ্রামের সমান্তরাল বা ভেক্টর ভগ্নাংশ সমস্যা আকারের অনুপাতে বৃদ্ধি পায়। ভেক্টর স্টার্টআপ, প্রোগ্রাম লোডিং, সিরিয়াল বটলনেকস এবং I/O ক্রিয়াকলাপগুলির মতো উপাদানগুলি, যা সম্মিলিতভাবে প্রোগ্রাম রানটাইমের উপাদানগুলিতে অবদান রাখে, সাধারণত তুলনামূলকভাবে স্থির থাকে এবং সমস্যা আকারের সাথে উল্লেখযোগ্য বৃদ্ধি প্রদর্শন করে না।
গুস্তাফসন জোর দিয়ে যুক্তিটিকে আরও এগিয়ে নিয়েছিলেন যে পরিস্থিতিতে যেখানে আমরা শারীরিক সিমুলেশনে স্বাধীনতার ডিগ্রী দ্বিগুণ করি, প্রসেসরের সংখ্যার একটি অনুরূপ দ্বিগুণ প্রায়শই অপরিহার্য। প্রাথমিক অনুমান হিসাবে, সমান্তরালভাবে কার্যকরভাবে বিতরণ করা যেতে পারে এমন কাজের পরিমাণ প্রসেসরের সংখ্যার সাথে রৈখিকভাবে বৃদ্ধি পেতে থাকে।
উল্লিখিত তিনটি অ্যাপ্লিকেশনের তাদের গভীরভাবে পরীক্ষায়, গুস্তাফসন এবং তার সহকর্মীরা আবিষ্কার করেছেন যে সমান্তরাল উপাদানটি প্রায় 1023.9969, 1023.9965 এবং 1023.9965 এর স্কেলিং ফ্যাক্টরগুলি প্রদর্শন করে।
গুস্তাফসনের অনুমান পি কোরগুলিতে স্বাভাবিক রানটাইম বিবেচনায় নিহিত, যার যোগফল (1 − f) + f পর্যন্ত হয়, যার ফলে সামগ্রিক মান 1 হয়। এই যুক্তি দ্বারা, যদি (1 − f) + f p কোরে রানটাইম বোঝায় , তারপর একটি একক কোরের রানটাইমকে (1 − f) + p*f হিসাবে প্রকাশ করা যেতে পারে। ফলস্বরূপ, স্পিডআপ, যাকে গুস্তাফসন " স্কেলড স্পিডআপ " হিসাবে উল্লেখ করেছেন, নিম্নরূপ গণনা করা যেতে পারে:
যখন আমরা 64 প্রসেসর ব্যবহার করে একটি প্রোগ্রামে গুস্তাফসনের আইন প্রয়োগ করি (f 95% সহ), ভবিষ্যদ্বাণী করা গতি 60.85x হয় (Amdahl এর আইনের সাথে 15.42x এর তুলনায়)। এখন আমরা কথা বলছি😉
নিম্নলিখিত পরিসংখ্যান দুটি আইনের মধ্যে পার্থক্য তুলে ধরে।
Amdahl's এবং Gustafson এর দৃষ্টিভঙ্গি সমান্তরালকরণের বিষয়ে আলাদা মতামত প্রদান করে, প্রত্যেকের নিজস্ব অনুমান রয়েছে।
Amdahl এর আইন অনুমান করে যে কাজের পরিমাণ যা সমান্তরাল করা যেতে পারে তা ধ্রুবক এবং প্রসেসরের সংখ্যা থেকে স্বাধীন, এটি খুব হতাশাবাদী করে তোলে। গুস্তাফসনের দৃষ্টিভঙ্গি, যা অনুমান করে যে সমান্তরাল করা যেতে পারে এমন কাজের পরিমাণ কোরের সংখ্যার সাথে রৈখিকভাবে বৃদ্ধি পায়, নিঃসন্দেহে অনেক পরিস্থিতির জন্য ব্যবহারিক। যাইহোক, এটি কখনও কখনও অত্যধিক আশাবাদী হতে পারে।
বাস্তব-বিশ্বের অ্যাপ্লিকেশনগুলি প্রায়শই সীমাবদ্ধতার সম্মুখীন হয় যা এই রৈখিক মাপযোগ্যতা সীমিত করতে পারে। উদাহরণস্বরূপ, কোরের সংখ্যা বাড়ার সাথে সাথে সমান্তরাল প্রক্রিয়াকরণ, ডেটা নির্ভরতা এবং যোগাযোগের ওভারহেডের জটিলতার কারণে হ্রাসপ্রাপ্ত রিটার্ন ঘটতে পারে। উপরন্তু, হার্ডওয়্যার সীমাবদ্ধতা কার্যত কোরের সংখ্যাকে সীমাবদ্ধ করে যা কার্যকরভাবে একটি একক চিপে সংহত করা যায়। গুস্তাফসনের আইন সবসময় এই জটিল বাস্তব-বিশ্বের চ্যালেঞ্জগুলির জন্য দায়ী নাও হতে পারে, যার ফলে এটির প্রয়োগযোগ্যতাকে প্রভাবিত করে এমন সতর্কতাগুলি বিবেচনা করা প্রয়োজন।
গুস্তাফসনের আইনের কার্যকারিতা প্রয়োগের প্রকৃতির উপরও নির্ভর করতে পারে। যদিও কিছু অ্যাপ্লিকেশন স্বাভাবিকভাবেই ক্রমবর্ধমান মূল সংখ্যার সাথে রৈখিক পরিমাপযোগ্যতার জন্য নিজেদেরকে ধার দেয়, অন্যরা অন্তর্নিহিত সীমাবদ্ধতা বা সমস্যার প্রকৃতির কারণে খুব তাড়াতাড়ি মালভূমি হতে পারে। ব্যবহারিক অ্যাপ্লিকেশনগুলিতে লিনিয়ার স্কেলেবিলিটির সম্ভাব্যতা বিবেচনা করার সময় প্রোগ্রামিং জটিলতা এবং রিটার্ন হ্রাস করার সম্ভাবনা অবশ্যই বিবেচনা করা উচিত।
সংক্ষেপে, সমান্তরালকরণের বিষয়ে আরও আশাবাদী দৃষ্টিভঙ্গি প্রস্তাব করার সময়, আধুনিক কম্পিউটিং-এর বাস্তব-বিশ্বের জটিলতার সাথে সামঞ্জস্য করার জন্য অ্যাপ্লিকেশন, হার্ডওয়্যার সীমাবদ্ধতা এবং সমান্তরাল প্রোগ্রামিংয়ের জটিলতাগুলির গভীর বোঝার সাথে গুস্তাফসনের আইন প্রয়োগ করা দরকার।
এর মূলে, স্কেলেবিলিটি একটি সিস্টেম বা অ্যাপ্লিকেশনের ক্ষমতাকে বোঝায় যার আকার প্রসারিত হওয়ার সাথে সাথে বর্ধিত ওয়ার্কলোডগুলি দক্ষতার সাথে পরিচালনা করার জন্য।
কম্পিউটিংয়ে, হার্ডওয়্যার বা সফ্টওয়্যার যাই হোক না কেন, স্কেলেবিলিটি উপলব্ধ সংস্থানগুলিকে বাড়িয়ে কম্পিউটেশনাল শক্তি বাড়ানোর ক্ষমতা বোঝায়।
হাই-পারফরমেন্স কম্পিউটিং (HPC) ক্লাস্টারের পরিপ্রেক্ষিতে, স্কেলেবিলিটি অর্জন করা গুরুত্বপূর্ণ; এটি অতিরিক্ত হার্ডওয়্যার উপাদানগুলিকে সংহত করে সিস্টেমের সামগ্রিক ক্ষমতা নির্বিঘ্নে প্রসারিত করার ক্ষমতাকে নির্দেশ করে। সফ্টওয়্যার সম্পর্কে, স্কেলেবিলিটি প্রায়শই সমান্তরালকরণ দক্ষতার সমার্থক হয়, যা একটি নির্দিষ্ট সংখ্যক প্রসেসর ব্যবহার করার সময় বাস্তব গতির উপলব্ধি এবং অর্জনযোগ্য আদর্শ গতির মধ্যে অনুপাতের প্রতিনিধিত্ব করে। সফ্টওয়্যার পারফরম্যান্স বাড়ানোর জন্য সমান্তরাল প্রক্রিয়াকরণকে কীভাবে কার্যকরভাবে ব্যবহার করতে পারে সে সম্পর্কে এই মেট্রিকটি অন্তর্দৃষ্টি প্রদান করে।
বড় অ্যাপ্লিকেশানগুলির সাধারণ বিকাশ প্রক্রিয়ায়, প্রথম থেকেই সম্পূর্ণ সমস্যা আকার এবং সর্বাধিক প্রসেসর গণনা দিয়ে পরীক্ষা শুরু করা প্রায়শই অবাস্তব। এই পদ্ধতির জন্য বর্ধিত অপেক্ষার সময় এবং সম্পদের অত্যধিক ব্যবহার অন্তর্ভুক্ত। অতএব, একটি আরও বাস্তবসম্মত কৌশলের মধ্যে প্রাথমিকভাবে এই কারণগুলিকে স্কেল করা জড়িত, যা পরীক্ষার পর্যায়কে ত্বরান্বিত করে এবং সম্পদ পরিকল্পনায় সহায়তা করে, চূড়ান্ত পূর্ণ-স্কেল চালানোর জন্য প্রয়োজনীয় সংস্থানগুলির আরও সুনির্দিষ্ট অনুমান করার অনুমতি দেয়।
স্কেলেবিলিটি টেস্টিং একটি অ্যাপ্লিকেশন কতটা ভালভাবে বিভিন্ন সমস্যার আকার এবং বিভিন্ন প্রসেসরের সংখ্যার সাথে মানিয়ে নিতে পারে তা মূল্যায়ন করার উপায় হিসাবে কাজ করে, সর্বোত্তম কর্মক্ষমতা নিশ্চিত করে।
এটা মনে রাখা গুরুত্বপূর্ণ যে স্কেলেবিলিটি টেস্টিং অ্যাপ্লিকেশনটির সামগ্রিক কার্যকারিতা বা সঠিকতা যাচাই করে না; কম্পিউটেশনাল রিসোর্স সমন্বয় করা হয় বলে এর প্রাথমিক ফোকাস কর্মক্ষমতা এবং দক্ষতার উপর।
দুটি স্ট্যান্ডার্ড স্কেলিং পরীক্ষা, শক্তিশালী এবং দুর্বল , সমান্তরাল কম্পিউটিংয়ে ব্যাপকভাবে নিযুক্ত করা হয়।
শক্তিশালী স্কেলিং সমস্যা আকার ধ্রুবক রাখার সময় প্রসেসরের সংখ্যা বৃদ্ধি জড়িত। এই পদ্ধতিটি প্রসেসর প্রতি কাজের চাপ কমিয়ে দেয়, যা দীর্ঘ-চলমান CPU-নিবিড় অ্যাপ্লিকেশনের জন্য বিশেষভাবে মূল্যবান। শক্তিশালী স্কেলিং এর প্রাথমিক উদ্দেশ্য হল এমন একটি কনফিগারেশন সনাক্ত করা যা রিসোর্স খরচগুলিকে একটি পরিচালনাযোগ্য সীমার মধ্যে রেখে যুক্তিসঙ্গত কার্যকর করার সময় প্রদান করে।
প্রসেসিং এলিমেন্টের সংখ্যা বৃদ্ধির সাথে সাথে সমস্যার আকার স্থির থাকা অবস্থায় আমডাহলের আইনে শক্তিশালী স্কেলিং করা হয়েছে। এই পদ্ধতিটি প্রায়শই উল্লেখযোগ্য সিপিইউ-বাউন্ড ওয়ার্কলোড সহ প্রোগ্রামগুলির জন্য যুক্তিযুক্ত।
শক্তিশালী স্কেলিং এর চূড়ান্ত লক্ষ্য হল সর্বোত্তম "মিষ্টি স্পট" সনাক্ত করা যা গণনাগুলিকে একটি যুক্তিসঙ্গত সময়সীমার মধ্যে সম্পন্ন করার অনুমতি দেয়, একই সময়ে সমান্তরাল ওভারহেডের কারণে প্রক্রিয়াকরণ চক্রের অপচয় কমিয়ে দেয়।
শক্তিশালী স্কেলিংয়ে, একটি প্রোগ্রামকে রৈখিকভাবে স্কেল করার জন্য বিবেচনা করা হয় যদি গতিবেগ, সময়ের প্রতি একক সম্পন্ন কাজের ইউনিটের পরিপ্রেক্ষিতে, নিযুক্ত প্রক্রিয়াকরণ উপাদানের সংখ্যার সাথে সারিবদ্ধ হয় (N)। একইভাবে, স্পিডআপ সাবলাইনার বা এমনকি সুপার-লিনিয়ার হতে পারে, এটি কীভাবে প্রসেসরের সংখ্যার সাথে স্কেল করে তার উপর নির্ভর করে।
অবশেষে, আমি আমার কোডগুলির একটিতে শক্তিশালী স্কেলিং পরীক্ষা করার চেষ্টা করেছি। ফ্লুইডচেন-ইএম হল একটি কম্পিউটেশনাল ফ্লুইড ডায়নামিক্স সলভার যা অনেক ফ্লুইড ডায়নামিক্স সমস্যা সমাধান করতে সক্ষম। নিম্নলিখিত ফলাফলগুলি ঢাকনা-চালিত গহ্বরের অনুকরণের সাথে মিলে যায়। চূড়ান্ত টাইমস্ট্যাম্পে বেগ (একত্রিত হওয়ার পরে) কল্পনা করা হয়, এবং এক্সিকিউশন রানটাইম গণনা করা হয়। Fluidchen-EM কম্পিউটেশনাল ডোমেনকে iproc*jproc প্রসেসরে বিতরণ করতে MPI ব্যবহার করে।
দ্রষ্টব্য : ফলাফলগুলি আমার ব্যক্তিগত কম্পিউটারে চালানো হয়েছিল এবং সমস্ত কোর শুধুমাত্র একটি প্রসেসরের সাথে মিলে যায়৷ সিমুলেশন একটি বড় এবং ভাল মেশিনে চালানো হলে ফলাফল পরিবর্তিত হতে পারে!
কম্পিউটেশনাল ডোমেনটি মোট imamax*jmax গ্রিড পয়েন্টে বিভক্ত।
iproc: এক্স-ডিরেকশনে প্রসেসরের সংখ্যা
jproc: y-দিক থেকে প্রসেসরের সংখ্যা
চিত্রে দেখানো হয়েছে, প্রসেসরের সংখ্যা 1 থেকে 2 দ্বিগুণ হওয়ার কারণে কার্যকর করার সময় দ্রুত হ্রাস পায়। যাইহোক, 2 থেকে 4 প্রসেসরের পরবর্তী দ্বিগুণ করার জন্য গতিবেগ ততটা নাটকীয় নয়, এবং এটি আরও বৃদ্ধির জন্য সম্পৃক্ত হতে শুরু করে। প্রসেসরের সংখ্যায়। যাইহোক, ফলাফলগুলি আটটি কোর সহ একটি প্রসেসরে সংকলিত হয়েছিল, তাই এই ফলাফলগুলি পরিবর্তিত হতে পারে যদি একটি বড় এবং আরও শক্তিশালী মেশিনে সম্পাদন করা হয়।
দুর্বল স্কেলিংয়ে, প্রসেসরের সংখ্যা এবং সমস্যার আকার বৃদ্ধি পায়, প্রতি প্রসেসরে একটি ধ্রুবক কাজের চাপ বজায় থাকে। দুর্বল স্কেলিং গুস্তাফসনের আইনের সাথে সারিবদ্ধ, যেখানে স্কেল করা স্পিডআপ একটি স্কেল করা সমস্যা আকারের কাজের চাপের উপর ভিত্তি করে গণনা করা হয়, আমডাহলের আইনের বিপরীতে, যা একটি নির্দিষ্ট সমস্যা আকারের উপর ফোকাস করে।
প্রতিটি প্রক্রিয়াকরণ উপাদানের জন্য বরাদ্দকৃত সমস্যার আকার স্থির থাকে, অতিরিক্ত উপাদানগুলিকে সম্মিলিতভাবে একটি বৃহত্তর সামগ্রিক সমস্যা সমাধান করার অনুমতি দেয়, যা একটি একক নোডের মেমরি ক্ষমতা অতিক্রম করতে পারে।
দুর্বল স্কেলিং যথেষ্ট মেমরি বা সংস্থান প্রয়োজনীয়তা (মেমরি-বাউন্ড) সহ অ্যাপ্লিকেশনগুলিকে ন্যায্যতা দেয় যা একটি একক নোড সরবরাহ করতে পারে তার চেয়ে বেশি মেমরির প্রয়োজন। এই জাতীয় অ্যাপ্লিকেশনগুলি প্রায়শই দক্ষ স্কেলিং প্রদর্শন করে কারণ তাদের মেমরি অ্যাক্সেস কৌশলগুলি কাছাকাছি নোডগুলিকে অগ্রাধিকার দেয়, উচ্চতর মূল সংখ্যাগুলির জন্য তাদের উপযুক্ত করে তোলে।
দুর্বল স্কেলিং এর ক্ষেত্রে, রৈখিক মাপযোগ্যতা অর্জন করা হয় যখন রানটাইম স্থির থাকে কারণ কাজের চাপ প্রসেসরের সংখ্যার সরাসরি অনুপাতে বৃদ্ধি পায়।
এই মোড গ্রহণকারী বেশিরভাগ প্রোগ্রামগুলি উচ্চতর মূল গণনার জন্য অনুকূল স্কেলিং প্রদর্শন করে, বিশেষ করে যারা নিকটতম-প্রতিবেশী যোগাযোগের ধরণ নিযুক্ত করে, কারণ তাদের যোগাযোগের ওভারহেড ব্যবহৃত প্রক্রিয়ার সংখ্যা নির্বিশেষে তুলনামূলকভাবে সামঞ্জস্যপূর্ণ থাকে। এই প্রবণতার ব্যতিক্রমগুলির মধ্যে রয়েছে অ্যালগরিদমগুলি বিশ্বব্যাপী যোগাযোগের ধরণগুলির উপর অত্যন্ত নির্ভরশীল৷
অবশেষে, আমি Fluidchen-EM ব্যবহার করে দুর্বল স্কেলিং পরীক্ষা করেছি। নিম্নলিখিত ফলাফলগুলি Rayleigh–Bénard পরিচলনের অনুকরণের সাথে মিলে যায়। আবার, চূড়ান্ত টাইমস্ট্যাম্পে বেগ (একত্রিত হওয়ার পরে) কল্পনা করা হয়, এবং এক্সিকিউশন রানটাইম গণনা করা হয়। Fluidchen-EM কম্পিউটেশনাল ডোমেনকে iproc*jproc প্রসেসরে বিতরণ করতে MPI ব্যবহার করে।
দ্রষ্টব্য: ফলাফলগুলি আমার ব্যক্তিগত কম্পিউটারে চালানো হয়েছিল এবং সমস্ত কোর শুধুমাত্র একটি প্রসেসরের সাথে মিলে যায়৷ সিমুলেশন একটি বড় এবং ভাল মেশিনে চালানো হলে ফলাফল পরিবর্তিত হতে পারে!
কম্পিউটেশনাল ডোমেনটি মোট imamax*jmax গ্রিড পয়েন্টে বিভক্ত।
iproc: এক্স-ডিরেকশনে প্রসেসরের সংখ্যা
jproc: y-দিক থেকে প্রসেসরের সংখ্যা
imax: চ্যানেলের দৈর্ঘ্য বরাবর গ্রিড পয়েন্টের সংখ্যা
jmax: চ্যানেলের উচ্চতা বরাবর গ্রিড পয়েন্টের সংখ্যা
xlength: চ্যানেলের দৈর্ঘ্য
দৈর্ঘ্য: চ্যানেলের উচ্চতা
উপরের চিত্রে যেমন দেখানো হয়েছে, এক্সিকিউশন রানটাইম সমস্যা আকার এবং প্রসেসরের সংখ্যা উভয়ের বৃদ্ধির সাথে বৃদ্ধি প্রদর্শন করে। এই আচরণটি বিভিন্ন কারণের জন্য দায়ী করা যেতে পারে। সমস্ত কোর একটি একক প্রসেসরে অবস্থান করে, যেহেতু সমস্যার আকার প্রসারিত হয় এবং আরও প্রসেসর নিযুক্ত থাকে, প্রক্রিয়াকরণ সময়ের একটি অংশ MPI (মেসেজ পাসিং ইন্টারফেস) যোগাযোগ স্থাপনে ব্যয় হয়। উপরন্তু, বৃহত্তর সমস্যা আকারের জন্য কোরগুলির মধ্যে ডেটা আদান-প্রদানের প্রয়োজন হয়, যা যোগাযোগ নেটওয়ার্কের সীমিত ব্যান্ডউইথের কারণে যোগাযোগের বিলম্বকে বাড়িয়ে তোলে।
এইভাবে, এই পরীক্ষার ফলাফলগুলি সমস্যার সমান্তরালে গুরুত্বপূর্ণ অন্তর্দৃষ্টি প্রদান করে।
অ্যালগরিদম সমান্তরালে গুস্তাফসনের আইন এবং আমডাহলের আইনের মধ্যে নির্বাচন গণনা কাজের চাপের অভিযোজনযোগ্যতার উপর নির্ভর করে। গুস্তাফসনের আইন উপযুক্ত যখন একটি অ্যালগরিদম গতিশীলভাবে উপলব্ধ সমান্তরালকরণের সাথে মেলে গণনার পরিমাণকে সামঞ্জস্য করতে পারে। বিপরীতে, Amdahl এর আইন আরো উপযুক্ত যখন গণনার লোড স্থির করা হয় এবং সমান্তরালকরণের মাধ্যমে উল্লেখযোগ্যভাবে পরিবর্তন করা যায় না। বাস্তব-বিশ্বের পরিস্থিতিতে, সমান্তরালকরণের জন্য একটি অ্যালগরিদম মানিয়ে নেওয়ার ক্ষেত্রে প্রায়শই কিছু পরিমাণ গণনা পরিবর্তন জড়িত থাকে এবং উভয় আইনই মূল্যবান মাপকাঠি হিসাবে কাজ করে, যা পূর্বাভাসিত গতিতে উপরের এবং নিম্ন সীমানা প্রদান করে। তাদের মধ্যে পছন্দ সমান্তরালকরণের সময় প্রবর্তিত গণনাগত পরিবর্তনের পরিমাণের উপর নির্ভর করে, সম্ভাব্য গতি লাভের একটি ব্যাপক মূল্যায়ন সক্ষম করে।
[২] আমদাহলের আইন পুনর্মূল্যায়ন | ACM এর যোগাযোগ
[৪] ক্ষতিকর বলে বিবেচিত মাল্টিকোরের ভবিষ্যত ভবিষ্যদ্বাণী করার জন্য আমদাহলের আইন (tu-berlin.de)
[৫] স্কেলিং — HPC উইকি (hpc-wiki.info)
[6] r1parks দ্বারা Amdahl বনাম গুস্তাফসন — ইনফোগ্রাম
আনস্প্ল্যাশে মার্ক সেন্দ্রা মার্টোরেলের আলোচিত ছবি
এছাড়াও এখানে প্রকাশিত.