টাস্ক-ভিত্তিক বৈজ্ঞানিক কম্পিউটিং-এ ভাগ করা মেমরি সমান্তরাল লাইব্রেরি


10

সাম্প্রতিক বছরগুলিতে, বেশ কয়েকটি লাইব্রেরি / সফ্টওয়্যার প্রকল্প প্রকাশিত হয়েছে যা সাধারণ-উদ্দেশ্যে ডেটাচালিত শেয়ার্ড-মেমরি সমান্তরালতার কোনও ফর্ম বা অন্য কোনও অফার দেয়।

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

এই ধরনের লাইব্রেরির উদাহরণগুলি হ'ল:

  • কোয়ার্ক : মূলত জন্য ডিজাইন করা ম্যাগমা বীজগণিত গ্রন্থাগার রৈখিক সমান্তরাল, একটি জন্য ব্যবহার করা হয়েছে হয়েছে বলে মনে হয় সমান্তরাল ফাস্ট Multipole পদ্ধতি খুব।

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

  • এসএমপি সুপারসকলার : #pragmaএক্সটেনশনগুলির উপর ভিত্তি করে সিল্কের মতো অনেক ক্ষেত্রেই বার্সেলোনা সুপারকম্পিউটিং সেন্টারে বিকাশ ঘটে ।

  • স্টারপিইউ : অনুরূপ লাইব্রেরি ভিত্তিক "কোডলেটস" যা জিপিইউ সহ বেশ কয়েকটি বিভিন্ন আর্কিটেকচারের জন্য সংকলন এবং নির্ধারিত হতে পারে।

  • ওপেনএমপি টাস্ক: সংস্করণ 3.0.০ অনুসারে, ওপেনএমপি "টাস্কগুলি" প্রবর্তন করেছে যা সংবিধান অনুসারে নির্ধারিত হতে পারে (স্পেসিফিকেশনের বিভাগ ২.7 দেখুন)।

  • ইন্টেলের থ্রেডিং বিল্ডিং ব্লকস : অ্যাসিক্রোনাস টাস্কগুলি তৈরি এবং চালু করতে সি ++ ক্লাস ব্যবহার করে, টিউটোরিয়ালটির বিভাগ 11 দেখুন।

  • ওপেনসিএল : মাল্টি-কোরে টাস্ক-ভিত্তিক সমান্তরালতা সমর্থন করে।

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

সুতরাং এখানে প্রশ্নটি: ভাগ্য-স্মৃতি সমান্তরালতার জন্য এই লাইব্রেরি / ভাষার বর্ধনের কোনও বা কোনও অনুরূপ বৈজ্ঞানিক কম্পিউটিং কোডগুলি সম্পর্কে কেউ কি জানেন?


আপনি কি টাস্ক-ভিত্তিক সমান্তরালতা খুঁজছেন? আপনি ওপেনসিএল এবং ইন্টেল টিবিবি এড়িয়ে যাওয়ার কোনও কারণ আছে কি? আমাকে স্বীকার করতে হবে যে আপনি এখানে যা খুঁজছেন তা আমি ঠিক বলতে পারি না।
আরন আহমদিয়া

1
@ অ্যারোনআহমাদিয়া: অজ্ঞতা, মূলত ... :) আমি তালিকায় টিবিবি এবং ওপেনসিএল যুক্ত করেছি, তবে প্রশ্নটি এখনও একই: এইগুলি, যেমন তাদের টাস্ক-ভিত্তিক উপাদানগুলি, কোনও বৈজ্ঞানিক জন্য সফ্টওয়্যারের কোনও উল্লেখযোগ্য অংশে ব্যবহার করা হয়েছে? কম্পিউটিং?
পেড্রো

আমরা এই প্রশ্নটি এবং এর উত্তরগুলি সম্প্রদায়-উইকিতে বনাম রূপান্তরিত করার বিষয়ে কীভাবে অনুভব করব? এটি আরও স্কোপ করার চেষ্টা করছে?
অরন আহমদিয়া

@ অ্যারোনআহমাদিয়া: আমি কিছুটা চিন্তিত যে আমি যদি প্রশ্নের ফর্ম্যাটটি ছেড়ে চলে যাই তবে এটি দ্রুত টাস্ক-ভিত্তিক এবং / অথবা ভাগ করে নেওয়া মেমোরি প্রোগ্রামিংয়ের সুবিধাগুলি / অসুবিধাগুলি সম্পর্কে দীর্ঘ আলোচনার দিকে ঝুঁকবে। আমি অবশ্য আরও কিছু উত্তর পেয়ে এটি স্যুইচিংয়ের পক্ষে হতে চাই।
পেড্রো

শিরোনামটি উপযুক্ত নয়। এই প্রশ্নটি কাজের সমান্তরালতা সম্পর্কিত, ভাগ করা মেমরির নয়।
জেফ

উত্তর:


8

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


এটি দেখানোর জন্য ধন্যবাদ, আমি চুক্তির দিকে তাকাইনি। II! কোন চুক্তিতে এমন কোন প্রকাশনা বা ডকুমেন্টেশনের টুকরো রয়েছে যা? আমি টিবিবি ব্যবহারের বিস্তারিতভাবে বর্ণনা করেছি?
পেড্রো

কোনও প্রকাশনা নয়, তবে এটি সাহায্য করতে পারে: dealii.org/developer/do ऑक्सीजन
ওল্ফগ্যাং

4

আমার মতে, এই সিস্টেমগুলি মূলত নিম্নলিখিত কারণগুলির কারণে তুলনামূলকভাবে ব্যর্থ হয়েছে।

  • সমান্তরাল গণনা যে নিখুঁত দৃষ্টিকোণটি মেমরির স্থানীয়তা প্রকাশ এবং সিঙ্ক্রোনাইজেশন পয়েন্টগুলি সরিয়ে দেওয়ার চেয়ে সমান্তরাল গণনাকে (যেমন ফ্লপগুলি) সমান্তরাল করা সম্পর্কে about যদিও ঘন ম্যাট্রিক্স অ্যালগরিদমগুলির মতো কিছু সমস্যা এখনও এফপি-সীমাবদ্ধ থাকে তবে এটি কেবল মেমরি সাবসিস্টেম এবং সর্বাধিক গণনামূলক কার্নেলগুলি (বিশেষত পিডিই বিশ্বে) বেশি যত্নশীল সংবেদনশীল হওয়ার পরে যত্ন সহকারে বিবেচনার পরে ঘটে। কাজের সারিগুলি ফ্লপ এবং আরও বেশি পারমাণবিক মেমোরি অপারেশনের (কাতারে সংক্রমণের কারণে) আরও ভাল নিষ্পাপ ভারসাম্যের জন্য মেমরি স্থানীয়ভাবে বাণিজ্য করে।
  • শক্তিশালী স্কেলাবিলিটি ব্যয়ে গতিশীল লোড ভারসাম্যের জন্য ওভার-পচেস্টের উপর নির্ভরতা। কার্যগুলিতে সাধারণত ওভারল্যাপিং ডেটা নির্ভরতা থাকে (ভুতের মান)। অভ্যন্তরের আকার সঙ্কুচিত হওয়ার সাথে সাথে ভূত / অভ্যন্তর অনুপাত বৃদ্ধি পায়। এমনকি যখন এটি অপ্রয়োজনীয় কাজকে বোঝায় না, তখন এটি বর্ধিত মেমরি চলাচলকে বোঝায়। মেমরি ব্যান্ডউইথের প্রয়োজনীয়তার ক্ষেত্রে উল্লেখযোগ্য পরিমাণে হ্রাস করা যেতে পারে যেমন সমবায়িত প্রিফেচ যেমন একাধিক থ্রেড তাদের প্রতিবেশীর জন্য সফ্টওয়্যার-প্রিফেচিং দ্বারা একটি এল 1 বা এল 2 ক্যাশে ভাগ করে তোলে (যা সুস্পষ্টভাবে থ্রেডের গোষ্ঠীকে প্রায় সুসংগত রাখে)। এটি অত্যধিক পচে যাওয়ার ঠিক বিপরীত।
  • অনুমানযোগ্য পারফরম্যান্স, বেশিরভাগই উপরের মেমরি-সম্পর্কিত সমস্যার কারণে issues
  • গ্রন্থাগার বান্ধব উপাদানগুলির অভাব। এটি প্রায় কোনও একটি এনালগ না হিসাবে সংক্ষিপ্ত করা যেতে পারে MPI_Commযা বিভিন্ন গ্রন্থাগারকে সংঘর্ষ ছাড়াই সমৃদ্ধ ক্রিয়াকলাপ সম্পাদন করতে, পাশাপাশি গ্রন্থাগারগুলির মধ্যে প্রসঙ্গটি পাস এবং প্রয়োজনীয় বৈশিষ্ট্যগুলি পুনরুদ্ধার করতে দেয়। "যোগাযোগকারী" দ্বারা সরবরাহিত বিমূর্ততা লাইব্রেরি রচনার জন্য গুরুত্বপূর্ণ যা ভাগ করা বা বিতরণ করা মেমরি ব্যবহৃত হয় তা নির্বিশেষে।

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

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

১. এই সিস্টেমগুলি ব্যবহার করে হাতে গোনা কয়েকটি প্রকল্প রয়েছে, তবে আমি মনে করি না যে পদ্ধতিকে "সফল" হিসাবে বিবেচনা করা যেতে পারে। ২. নির্ভরতাগুলি এখনও ভাগ করা মেমরিতে ওভারল্যাপ হয়ে থাকে। অ্যাটিক্সের মাধ্যমে সিঙ্ক্রোনাইজেশনের মতো বাধা থেকে বাঁচতে tcmalloc বা লিনাক্স কার্নেল থ্রেডগুলিকে আরও স্বতন্ত্র করে তোলে তা দেখুন। অংশীদারি ঠিকানার স্থানটি বোঝায় না যে আপনার পরিচালনা করা উচিত যেমন আপনার অভিন্ন মেমরি ছিল বা আপনার পরমাণুগুলিকে সস্তা বলে বিবেচনা করা উচিত।
জেদ ব্রাউন

৩. আপনি কী "ন্যায্য তুলনা" করতে চান তা আমি জানি না, তবে PLASMA কেবল পিক এফপিইউয়ের প্রায় 25% পায় (যেমন, hpcgarage.org/cscads2012/Luszczek-UTK-PowerTools.pdf এর স্লাইড 5 ) যা হবে বিতরণ মেমরিতে একই অপারেশনের জন্য উত্সাহজনকভাবে খারাপ যেখানে কমপক্ষে 70০% শীর্ষের প্রত্যাশা থাকবে। ঘন লিনিয়ার বীজগণিত একটি এফপিইউ-বাউন্ডযুক্ত কেস যা আমি বিশেষভাবে একটি সম্ভাব্য ব্যতিক্রম হিসাবে উল্লেখ করেছি, তবে প্রচুর ম্যাট্রিক্স মাপের পরেও, PLASMA সম্ভবত এফপিইউ-আবদ্ধ হওয়া থেকে অনেক দূরে।
জেদ ব্রাউন

পেড্রো, বেশিরভাগ পদার্থবিজ্ঞানের একটি দীর্ঘ পরিসরের উপাদান রয়েছে, সুতরাং কণাগুলির একটি আপডেটের সাথে মিলিত হয় যা উপরের পৃষ্ঠ থেকে টলিউডের প্রভাবের সাথে সাপেক্ষে (পিপিপিএম, ঘূর্ণি কণা, ইত্যাদি)
ম্যাট নিপলে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.