Sieve C++ Parallel Programming System
সিভ সি + + সমান্তরাল প্রোগ্রামিং সিস্টেম হল একটি সি + + কম্পাইলার এবং সমান্তরাল রানটাইম যা কোডপ্লে দ্বারা ডিজাইন এবং প্রকাশ করা হয়েছে যার লক্ষ্য কোডের সমান্তরালকরণকে সহজতর করা যাতে এটি মাল্টি-প্রসেসর বা মাল্টি-কোর সিস্টেমে দক্ষতার সাথে চলতে পারে। এটি ওপেনএমপি, র্যাপিডমাইন্ড ডেভেলপমেন্ট প্ল্যাটফর্ম এবং থ্রেডিং বিল্ডিং ব্লক (টিবিবি)-এর মতো অন্যান্য সুপরিচিত সমান্তরাল পদ্ধতির বিকল্প। পরিচিতি চালনী একটি সি + + সংকলক যা সিরিয়াল কোডের একটি অংশ গ্রহণ করবে, যা চালনী চিহ্নিতকারী দিয়ে ব্যাখ্যা করা হয় এবং এটি স্বয়ংক্রিয়ভাবে সমান্তরাল হয়। প্রোগ্রামার একটি আভিধানিক ক্ষেত্রের মধ্যে সমান্তরাল করতে চান এমন কোডটি মোড়ান, যা 'চালনী' হিসাবে চিহ্নিত করা হয়। এই ক্ষেত্রের মধ্যে, সাধারণত 'চালনী ব্লক' হিসাবে উল্লেখ করা হয়, কিছু নিয়ম প্রযোজ্য হয়ঃ চালনী ব্লকের মধ্যে সমস্ত পার্শ্ব প্রতিক্রিয়া ক্ষেত্রের শেষ পর্যন্ত বিলম্বিত হয়। পার্শ্বপ্রতিক্রিয়াগুলি চালনী ব্লকের আওতার বাইরে ঘোষিত তথ্যের যে কোনও পরিবর্তন হিসাবে সংজ্ঞায়িত করা হয়। শুধুমাত্র চালনী বা তাৎক্ষণিকভাবে টীকা দেওয়া ফাংশনগুলিকে কল করা যেতে পারে। পার্শ্বপ্রতিক্রিয়া বিলম্বিত করা অনেক ছোট নির্ভরতা সরিয়ে দেয় যা সাধারণত স্বয়ংক্রিয় সমান্তরালকরণে বাধা সৃষ্টি করে। ডাইরেক্ট মেমোরি অ্যাক্সেস (ডি. এম. এ)-এর মতো বিভিন্ন তথ্য চলাচল ব্যবস্থার আরও ভাল ব্যবহারের অনুমতি দেওয়ার জন্য কম্পাইলার দ্বারা পড়া এবং লেখা নিরাপদে পুনরায় সাজানো যেতে পারে। উপরন্তু, উপনাম বিশ্লেষণ এবং তথ্যপ্রবাহ বিশ্লেষণ সরলীকৃত করা যেতে পারে। কম্পাইলার তারপর চালনী ব্লকের মধ্যে কোডকে অনেক সহজে বিভক্ত করতে পারে, সমান্তরালতা কাজে লাগাতে। মেমরি কনফিগারেশন স্কোপগুলির এই পৃথকীকরণের অর্থ হল সিভ সিস্টেমটি অ-অভিন্ন মেমরি আর্কিটেকচারে ব্যবহার করা যেতে পারে। প্লেস্টেশন 3-এ ব্যবহৃত সেল মাইক্রোপ্রসেসরের মতো মাল্টি-কোর সিপিইউগুলি এই ধরনের, যেখানে দ্রুত কোরগুলির স্থানীয় স্মৃতি থাকে যা অবশ্যই সিস্টেমে অন্তর্নিহিত কর্মক্ষমতা কাজে লাগাতে ব্যবহার করা উচিত। এটি x86-এর মতো শেয়ার্ড মেমোরি সিস্টেমেও কাজ করতে সক্ষম, যার অর্থ এটি বিভিন্ন আর্কিটেকচারে চলতে পারে। চালনী ব্লকগুলি বিভিন্ন স্মৃতি এবং প্রক্রিয়াকরণ উপাদানগুলির শ্রেণিবিন্যাস সহ সিস্টেমগুলির জন্যও নেস্ট করা যেতে পারে। সমান্তরালকরণ এবং স্কেলাবিলিটি চালনী সংকলক একটি চালনী ব্লকের মধ্যে কোডকে একটি 'স্প্লিটহেয়ার' বিবৃতি দ্বারা অন্তর্নিহিত বা স্পষ্টভাবে অংশে বিভক্ত করতে পারে। উদাহরণস্বরূপ, নিম্নলিখিত উদাহরণটি একটি লুপের সমান্তরালকরণ দেখায়ঃ চালনী {for (iterator i (0); i <দৈর্ঘ্য; + + i) {R [i] = A [i] * B [i] splithere;}} সংকলক একটি প্রবেশ বিন্দু হিসাবে লুপের জন্য গঠন বস্তুর উপরে একটি বিভাজন বিন্দু যোগ করবে। একইভাবে একটি প্রস্থান বিন্দু হিসাবে পরে যোগ করা হবে। চালনী ব্যবস্থায়, চালনী ব্লকের সুযোগের শুধুমাত্র স্থানীয় চলকগুলির নির্ভরতা থাকতে পারে। যাইহোক, এই নির্ভরতাগুলি অবশ্যই বিভক্ত পয়েন্টগুলি অতিক্রম করবে না; তারা সংকলক সতর্কতা তৈরি করবে। এই লুপটি সমান্তরাল করার জন্য, একটি আদর্শ পূর্ণসংখ্যা লুপিং কাউন্টারের জায়গায় একটি বিশেষ 'ইটারেটর' শ্রেণী ব্যবহার করা যেতে পারে। এটি সমান্তরালকরণের জন্য নিরাপদ, এবং প্রোগ্রামার ইচ্ছামতো নতুন ইটারেটর ক্লাস তৈরি করতে পারেন। এই ইটারেটর ক্লাসগুলি ছাড়াও, প্রোগ্রামার 'অ্যাকিউমুলেটরস' নামে ক্লাসগুলি প্রয়োগ করতে পারেন যা হ্রাস ক্রিয়াকলাপ চালানোর জন্য ব্যবহৃত হয়। ইটারেটর ক্লাসগুলি যেভাবে প্রয়োগ করা হয় তা স্কেলিবিলিটির জন্য বিভিন্ন উপায় উন্মুক্ত করে। চালনী সমান্তরাল রানটাইম একটি লক্ষ্য প্ল্যাটফর্মে কার্যকর করার সময় গতিশীল অনুমানমূলক মৃত্যুদন্ড কার্যকর করে। এটি খুব ভাল গতি অর্জন করতে পারে, তবে একটি একক মূল মেশিনে চালানোর জন্য অতিরিক্ত খরচ হতে পারে। ডিটারমিনিজম হল চালনী ব্যবস্থার একটি অস্বাভাবিক বৈশিষ্ট্য। যদি একটি মাল্টি কোর মেশিনে একটি সমান্তরাল চালনী প্রোগ্রাম কার্যকর করা হয় তবে একটি বাগ পাওয়া যায়, তবে ডিবাগিংয়ে সহায়তা করার জন্য একটি একক কোর চালানোর সময় বাগটি অদৃশ্য হয়ে যাবে না। এটির রেসের শর্তগুলি দূর করার সুবিধা রয়েছে, যা সমবর্তী প্রোগ্রামিংয়ের অন্যতম সাধারণ বাগ। চালনী ব্লকের মধ্যে সমান্তরাল নিয়ন্ত্রণ কাঠামো বিবেচনা করার প্রয়োজনীয়তা অপসারণ উন্নয়নের সময়কে ত্বরান্বিত করতে পারে এবং এর ফলে নিরাপদ কোড তৈরি হতে পারে। সমর্থিত সিস্টেম সিস্টেমটি সমজাতীয় বা বৈচিত্র্যময় সিপিইউ কোর সহ শ্রেণিবদ্ধ ভিত্তিক সিস্টেমের জন্য ডিজাইন করা হয়েছে যার স্থানীয় স্মৃতি রয়েছে, যা ডিএমএ ইঞ্জিন বা অনুরূপ মেমরি স্থানান্তর মডেলের মাধ্যমে সংযুক্ত। চালনীকে মাল্টি-কোর x86 সিস্টেম, এজিয়া ফিজিক্স প্রসেসিং ইউনিট এবং আইবিএম সেল মাইক্রোপ্রসেসরের উপর সফলভাবে কাজ করতে দেখা গেছে। একটি নির্দিষ্ট টার্গেট প্ল্যাটফর্মের জন্য কম্পাইলার কোড জেনারেটর উপলব্ধ না থাকলে এএনএসআই সি তৈরি হয়। এটি বিদ্যমান সি সংকলন টুলকিট ব্যবহার করে স্বয়ংক্রিয় সমান্তরালকরণের অনুমতি দেয়। আরও দেখুন সফ্টওয়্যার লেনদেনের মেমরি আলিয়াস বিশ্লেষণ ওপেনএমপি থ্রেডিং বিল্ডিং ব্লকস (টিবিবি) সিল্ক/সিল্ক প্লাস স্পেক্যুলেটিভ এক্সিকিউশন রেফারেন্স সিভ সি + + প্রোগ্রামগুলির স্বয়ংক্রিয় সমান্তরালতা অ্যালাস্টেয়ার ডোনাল্ডসন, অ্যান্টন লোকমোটভ, কলিন রিলে, অ্যান্ড্রু কুক। ইউরো-পার ওয়ার্কশপের কার্যধারায় একটি চিপের উপর অত্যন্ত সমান্তরাল প্রক্রিয়াকরণ (এইচপিপিসি '07), রেনেস, ফ্রান্স, আগস্ট 2007। লেকচার নোটস ইন কম্পিউটার সায়েন্স 4854,2007। বিলম্বিত পার্শ্ব-প্রতিক্রিয়া মাল্টি-কোর প্রোগ্রামিং সহজ করুন অ্যান্টন লোকমোটভ, অ্যালান মাইক্রফ্ট, অ্যান্ড্রু রিচার্ডস। 13তম আন্তর্জাতিক ইউরো-পার সম্মেলনের কার্যধারায়, রেনেস, ফ্রান্স, আগস্ট 2007। লেকচার নোটস ইন কম্পিউটার সায়েন্স 4641,641-650,2007। সিভ এস. লিন্ডলি ব্যবহার করে নির্ধারক ঘোষণামূলক সমান্তরালতা বাস্তবায়ন করা হচ্ছে। ডি. এ. এম. পি 2007-এর কার্যক্রমেঃ মাল্টিকোর প্রোগ্রামিং নিসের ঘোষণামূলক দিকগুলির উপর কর্মশালা, ফ্রান্স, জানুয়ারী 2007। কোডপ্লে সিভ সি + + সমান্তরাল প্রোগ্রামিং সিস্টেম এ. রিচার্ডস। হোয়াইট পেপার, 2006। মাইক্রোগ্রিড 2006-এ উপস্থাপিত কোডপ্লে সিভ সি + + সিস্টেম উপস্থাপনা স্কট ম্যাকেঞ্জি। বাহ্যিক লিঙ্ক কোডপ্লে সিভ ওয়েবসাইট সমবর্তী প্রোগ্রামিং ভাষা অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস সি + + প্রোগ্রামিং ভাষা পরিবার