ভবিষ্যতে আমার কোড পেটাস্কেল মেশিনে চালিত করতে চাইলে আমার কী প্রোগ্রামিংয়ের দৃষ্টান্তগুলিতে বিনিয়োগ করা উচিত?


36

শীর্ষ 500 এর সমীক্ষা থেকে এটি বেশ পরিষ্কার যে শিল্পটি প্রসেসিং কোরের তাত্পর্যপূর্ণ বৃদ্ধির দিকে ঝুঁকছে । সর্ববৃহৎ সুপার কম্পিউটারগুলি নোডগুলির মধ্যে যোগাযোগের জন্য এমপিআই ব্যবহার করে, যদিও কোনও নোডের মধ্যে কোনও একক এমপিআই প্রক্রিয়া মানচিত্রের জন্য সর্বাধিক (তবে প্রয়োজনীয়ভাবে সবচেয়ে কার্যকর নয়) পদ্ধতির সাথে অন-নোড সমান্তরালতার জন্য সুস্পষ্ট প্রবণতা দেখা যায় না automatic সংকলক, ওপেনএমপি, pthreads, CUDA, Cilk, এবং ওপেনসিএল থেকে সমান্তরালকরণ।

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


5
আমি এই প্রশ্নটি সঠিকভাবে বাদ দিয়ে দেখছি না। এফএকিউ থেকে, "আপনার প্রশ্নগুলি যুক্তিসঙ্গতভাবে বাদ দেওয়া উচিত question আপনি যদি এমন একটি সম্পূর্ণ বই কল্পনা করতে পারেন যা আপনার প্রশ্নের উত্তর দেয়, আপনি খুব জিজ্ঞাসা করছেন।" আসলে প্রতিটি সুপারকমপুটিং সম্মেলনে আমি এই বিষয়ে একাধিক প্যানেল নিয়ে এসেছি এবং বিভিন্ন প্রোগ্রামিং প্যারাডিমগুলিতে উত্সর্গীকৃত কয়েকশো বই রয়েছে
অ্যারারেল

স্পর্শকাতরভাবে সম্পর্কিত: cs.stackexchange.com/questions/891/…
নট 101

5
ক্রিস্টাল বল অনুপলব্ধ, চা পাতা ক্রাশ হয়েছে।
ডিএমকেহে

উত্তর:


34

ঐতিহাসিক দৃষ্টিকোণ

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

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


হার্ডওয়্যার মধ্যে প্রবণতা সাফ করুন

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

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

  • বিশেষ উদ্দেশ্য চিপস: এক্সিলিটরগুলির মতো বড় ভেক্টর ইউনিটগুলি ভাবেন (এনভিডিয়া বিল ডালি দ্বারা রচিত দেখুন)
  • লো পাওয়ার চিপস: এআরএম ভিত্তিক ক্লাস্টারগুলি (পাওয়ার বাজেটের সংস্থান করতে)
  • চিপস টাইলিং: বিভিন্ন স্পেসিফিকেশন সহ চিপগুলি টাইলিং ( অবান্তর আরগওয়ালের কাজ )

বর্তমান মডেল

বর্তমান মডেলটি আসলে 3 স্তরের গভীর। যদিও এই দুটি স্তরের দুটি ব্যবহার করে অনেকগুলি কোড রয়েছে তবে তিনটি ব্যবহার করেই অনেকের উদ্ভব হয়নি। আমি বিশ্বাস করি যে প্রথমে প্রবাসে পৌঁছানোর জন্য আপনার কোডটি তিনটি স্তরে চালানো যায় কিনা তা নির্ধারণে বিনিয়োগ করা দরকার। বর্তমান ট্রেন্ডগুলির সাথে ভাল পুনরাবৃত্তি করার এটি সম্ভবত নিরাপদতম পথ।

আমাকে মডেলগুলি সম্পর্কে পুনরাবৃত্তি করতে দিন এবং ভবিষ্যদ্বাণী করা নতুন হার্ডওয়্যার মতামতের ভিত্তিতে তাদের কীভাবে পরিবর্তন করতে হবে।

বণ্টিত

বিতরণ স্তরের খেলোয়াড়রা মূলত এমপিআই এবং পিজিএএস ভাষায় পড়ে into এমপিআই এখনই স্পষ্ট বিজয়ী, তবে ইউপিসি এবং চ্যাপেলের মতো পিজিএএস ভাষাগুলি মহাকাশে এগিয়ে চলেছে। একটি ভাল ইঙ্গিত হ'ল এইচপিসি বেঞ্চমার্ক চ্যালেঞ্জ। পিজিএএস ভাষাগুলি মানদণ্ডগুলির খুব মার্জিত বাস্তবায়ন দিচ্ছে।

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

তবে সত্যি কথা বলতে পিজিএএসের এই স্থানটিতে পা রাখার জন্য সত্যিই একটি ভাল গল্প রয়েছে। আপনি কি সত্যিই এমপিআই ইন্টারনোড প্রোগ্রাম করতে চান এবং তারপরে একই কৌশলটি ইন্ট্রনোড করতে হবে? এই টাইল্ড আর্কিটেকচারগুলির সাথে একটি বড় চুক্তি হ'ল চিপগুলির উপরে তাদের বিভিন্ন ঘড়ির গতি থাকবে এবং মেমরির ব্যান্ডউইদথের বড় পার্থক্য তাই পারফর্মেন্ট কোডগুলি এটিকে বিবেচনায় নিতে হবে।

অন-নোড ভাগ করা মেমরি

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

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

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

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

কো-প্রসেসর

অবশেষে কো-প্রসেসরের উত্থান (জিপিইউ, এমআইসি, সেল একেলিটার) ধরেছে। এটি স্পষ্ট হয়ে উঠছে যে তাদের ছাড়া প্রবাসের কোনও পথই সম্পূর্ণ হবে না। এসসি 11 এ, প্রতিটি বেল পুরষ্কার প্রতিযোগী স্বল্প পেটফ্ল্যাপগুলিতে পৌঁছাতে খুব কার্যকরভাবে তাদের ব্যবহার করেছিলেন used যদিও CUDA এবং ওপেনসিএল বর্তমান বাজারে আধিপত্য বিস্তার করেছে, আমার কাছে আশা রয়েছে যে ওপেনএসিসি এবং পিজিএএস সংকলকরা স্পেসে প্রবেশ করবে।

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


এটি অ্যাপ্লিকেশন বিকাশকারীকে কীভাবে প্রভাবিত করে

এখন আপনার প্রশ্ন পেতে। আপনি যদি এক্সেস্কেল মেশিনগুলির আগত জটিলতা থেকে নিজেকে রক্ষা করতে চান তবে আপনার কয়েকটি জিনিস করা উচিত:

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

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


কী এখানে আলোচনা করা হয় না

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

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

মন্তব্যগুলিতে আপনার যেখানে প্রয়োজন সেগুলির জন্য রেফারেন্স জিজ্ঞাসা করা প্রত্যাশার চেয়ে দীর্ঘ হয়ে গেল


2
ভাল, তবে আপনি কীভাবে ভেক্টরাইজেশনকে উপেক্ষা করতে পারবেন, যা অন-নোডের পারফরম্যান্সের জন্য একক বৃহত্তম ফ্যাক্টর?
ম্যাট নিপলি 14

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

ফরট্রানে কো-অ্যারেগুলি কি ইউপিসির সমান?
ওন্ডিজ এজাতক

যতদূর আমি বলতে পারি সেগুলি একই ধারণা তবে আমি উভয়ই গ্রন্থাগারটি ব্যাপকভাবে ব্যবহার করি নি।
অটারেল

এই অর্থে যে সিএএফ এবং ইউপিসি উভয়ই পিজিএএস, হ্যাঁ। এবং দুটিও লাইব্রেরি নয়, বিটিডব্লিউ। আরও বিস্তারিতভাবে এই প্রশ্নের উত্তর দেওয়ার জন্য ইন্টারনেটে প্রচুর তথ্য রয়েছে।
জেফ

8

আসুন ইন্ট্রনোড কোডের জন্য একটি কৌশল (কম্পিউটারিং যা আন্তঃসংযোগটি স্পর্শ করে না) আলোচনা করে শুরু করি, যেহেতু আমি মনে করি এমপিআই ইন্টারনোড কোডের জন্য একটি ভাল পছন্দ। আমি মনে করি 100 টিরও কম কোর সহ নোডগুলি সম্পর্কে কথা বলাই বোকামি, সুতরাং কমপক্ষে একটি বর্তমান জিপিইউ বা এমআইসি।

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

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


আমিও মনে করি CUDA / ওপেনসিএল এর পদ্ধতির উজ্জ্বল ভবিষ্যৎ আছে ... তবে কোনটি বিজয়ী হবে, CUDA বা OpenCL? সাম্প্রতিক এএমডি ফিয়াস্কো কি ওপেনসিএলকে ক্ষতি করতে চলেছে?
পিএইচডিপি

2
অবশেষে এমন একটি উন্মুক্ত মান থাকবে যা প্রত্যেকে ব্যবহার করে। এটি সম্ভবত ওপেনসিএল 2.0 হবে। আপাতত, চুদা কিছুটা এগিয়ে, তবে আমি আমার কোডের 95% সহজেই অনুবাদ করতে পারি।
ম্যাট নিপলি 4

7

আমি এই থ্রেডে আমার সম্মানিত কয়েকজন সহকর্মীর চেয়ে সংক্ষিপ্ত উত্তর চেষ্টা করব ;-)

আমার সমস্ত ছাত্রদের কাছে আমার বার্তা সর্বদা যে বিকাশকারী সময় সিপিইউ সময়ের চেয়ে বেশি মূল্যবান। এর অর্থ হ'ল যদি আপনার কাছে 100% কোডটি বড় মেশিনগুলিতে চালনার জন্য 80% দক্ষতার সাথে রূপান্তর করার সময় হয় - উচ্চ স্তরের পদ্ধতির ব্যবহার করে - তবে আপনি সময় সাপেক্ষ নিম্ন-স্তরের ব্যবহারের চেয়ে আপনি আরও ভাল হন than আপনার কোডের 20% এ আপনাকে 100% দক্ষতা দেয় এমন পদ্ধতির উপায়। ফলস্বরূপ, আমি উচ্চ-স্তরের গ্রন্থাগারগুলির একটি বড় অনুরাগী। এই অঞ্চলে আমার প্রিয় হ'ল থ্রেডিং বিল্ডিং ব্লক (টিবিবি) যেহেতু এটি আমাকে বাইরেরতম লুপগুলিতে এবং একটি উচ্চ স্তরে আলগোরিদিমগুলি দেখার অনুমতি দেয়। এটি ওএস ফাংশনগুলি মোকাবেলা করার ক্রুদ্ধতা ছাড়াই প্রাইথ্রেডগুলির সাথে আপনি যে সমস্ত কাজ করতে চাইতে পারেন তাও করতে পারে etc. ইত্যাদি, আমি অন্তর্দিকের লুপগুলিকে দেখায় এমন পদ্ধতির কোনও অনুরাগী নই কারণ এটি ইন্ট্রনোড সমান্তরাল সম্পদগুলি শোষণ করার ভুল স্তর - - সুতরাং কোনও ওপেনএমপি নেই,

আমি ওপেনসিএল, চুদা ইত্যাদি সম্পর্কে কর্তৃপক্ষের সাথে কথা বলতে পারি না


4

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

অপেক্ষাকৃত সীমিত উপায়ে এখনও উত্তর দেওয়া হয়নি বা উত্তর দেওয়া হয়নি এমন দুটি প্রশ্নের উত্তর দেওয়ার জন্য এখানে আমার প্রচেষ্টা রয়েছে:

প্রক্রিয়া আন্তঃসংযোগ আর্কিটেকচার সম্পর্কে আমার কী অনুমান করা উচিত?

আমি নেটওয়ার্কের তিনটি বৈশিষ্ট্য বিবেচনা করব:

  1. লেটেন্সি,
  2. ব্যান্ডউইথ, এবং
  3. সম্পাতবিন্দু।

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

যাই হোক না কেন, ব্লু জিন এবং ক্রে সিস্টেমে প্যাকেট ইনজেকশনের জন্য হার্ডওয়্যার লেটেন্সিটি আমাদের প্রায় 1 জন। যদি কিছু হয়, নোড-লেভেল সামঞ্জস্য বাড়ানো এই সংখ্যাটিকে এত কম রাখা কঠিন করে তোলে তবে আমি আশাবাদী যে হার্ডওয়্যার ডিজাইনাররা অদূর ভবিষ্যতের জন্য আমাদের 5 বছরের নিচে বিলম্বিত রাখার উপায়গুলি খুঁজে পাবেন।

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

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

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

এটি একটি অসম্পূর্ণ এবং অসম্পূর্ণ উত্তর। অন্যরা এটির উন্নতি করার চেষ্টা করতে বা আমার উন্নত করা উচিত বিষয়গুলির পরামর্শ দিতে স্বাগত।

পার্টিশনযুক্ত গ্লোবাল অ্যাড্রেস স্পেসের ভাষাগুলি পেটাস্কেল মেশিনগুলিতে "উত্পাদনে" উপলব্ধ থাকবে?

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

Coarrays ২০০ Fort ফরট্রানের অংশ, যদিও ইন্টেল এবং জিএনইউ ফোর্টরান বাস্তবায়ন এখনও উচ্চ মানের নয়। ইন্টেল বাস্তবায়নটি কাজের জন্য খ্যাতিযুক্ত তবে বেশ ধীর হতে হবে (এটি সম্পর্কে PGAS12 এ একটি কাগজ রয়েছে)।

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

এমপিআই -3 আরএমএ ব্যবহার করে উত্পাদন মানের উপায়ে পিজিএএস-স্টাইলের কনস্ট্রাক্টগুলি কার্যকর করা তুলনামূলক সহজ easy কেউ যদি এ সম্পর্কে একটি নতুন প্রশ্ন পোস্ট করে তবে আমি এর উত্তর দিয়ে খুশি হব।


4
আপনি নিজে এমপিআই -3 তে পিজিএএস-স্টাইলের নির্মাণকাজ বাস্তবায়নের বিষয়ে প্রশ্নটি পোস্ট করতে পারেন (যতক্ষণ না এটি অতীতে আপনি যে সত্যিকারের সমস্যার মুখোমুখি হয়েছিলেন (যতক্ষণ না এটি আমি ধরে নিই))। আমরা ব্যবহারকারীদের নিজস্ব পোস্টের উত্তর দেওয়ার অনুমতি দিই।
জিফ অক্সবেরি

1
এটি সর্বাধিক জনপ্রিয় প্রশ্নগুলির মধ্যে একটি, আমি এখানে জেফের উত্তরটি পেয়ে খুশি। সম্পাদনা: আপনি সেখানে জিফঅক্সবেরি বলতে চাইছেন তা আমি দেখতে পেয়েছি - হ্যাঁ, তার নিজের প্রশ্ন পোস্ট করা উচিত এবং এর জবাব দিতে হবে :)
অ্যারন আহমদিয়া

ঠিক আছে, আমি পরের সপ্তাহে দু'টিতে "PGAS এবং MPI-3 RMA এর মধ্যে কী সংযোগ আছে" একটি কঠিন রচনা লিখতে চেষ্টা করব try
জেফ

3

প্রকৃতপক্ষে প্রচুর পরিমাণে কোরগুলিও তুচ্ছ এবং আশ্চর্যজনকভাবে কার্যকর দৃষ্টিভঙ্গি উন্মুক্ত করে - এটি পুরো সিমুলেশনের অনেকগুলি পুনরাবৃত্তি চালানোর জন্য ব্যবহার করতে।

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


2

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


1
এটি অত্যন্ত মারাত্মক - ভবিষ্যতে এখানে, আজ today প্রশ্ন পেটাসকেল সম্পর্কে, যেখানে আমরা আজ কোথায় আছি। আপনি যদি আজকের ১০,০০,০০০ প্রসেসরের উপর কীভাবে চালাবেন সে সম্পর্কে যদি আপনি চিন্তা না করেন, তবে আপনি আগামীকাল এর ১,০০,০০,০০০ কোর দিয়ে খুব বেশি অগ্রগতি করতে পারবেন না।
ওল্ফগ্যাং ব্যাঙ্গারথ

1

আমি এই প্রশ্নের এই উত্তরটি পোস্ট করতে চলেছিলাম , তবে এটির সদৃশ হিসাবে এটি বন্ধ ছিল, তাই এখানে যায়:

এটি কিছুটা সলোমনিক লাগতে পারে তবে আমার অভিজ্ঞতায় ভবিষ্যতটি হাইব্রিডের অন্তর্গত পদ্ধতির অন্তর্ভুক্ত যেখানে বহু ভাগ করা মেমরি মাল্টি-কোর নোডগুলি মাল্টি-থ্রেডেড কার্নেলগুলি এমপিআই-র মতো বিতরণ-মেমরির দৃষ্টান্তের মাধ্যমে সংযুক্ত করা হয়।

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

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

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

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


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

হুম, আমি একটি শক্তিশালী অ্যাপ্লিকেশন বা লাইব্রেরি খুঁজছি যা আমাদের বিজি বাস্তবায়ন কাজ করছে তা যাচাই করতে টিবিবি ব্যবহার করে। আমি কেবল আগে cise.ufl.edu/research/sparse/SPQR খুঁজে পেয়েছি । আপনি কি ডিল চালানোর চেষ্টা করবেন এমন কোন সম্ভাবনা আছে ? আমি বিজিপি বা বিজিকিউতে উইকি.এলসিএফ.আনল. gov/parts/index.php/BlueTBB ব্যবহার করে যদি আমি বরাদ্দ সরবরাহ করি?
জেফ

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

@ জেফ: আমি চেষ্টা করে দেখতে চাই তবে সম্ভবত ভয়াবহ সময় বরাদ্দ করতে সক্ষম হব না। অফলাইনে আমার সাথে যোগাযোগ করুন নির্দ্বিধায়। (@ পেড্রো: মাথা উঁচু করার জন্য ধন্যবাদ!)
ওল্ফগ্যাং ব্যাঙ্গারথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.