ভাল, এটি সত্যিই নির্ভর করে আপনি কী উন্নয়ন করছেন। উত্তরটি, আপনি কী বিকাশ করছেন তার উপর নির্ভর করে "এটি তাত্পর্যপূর্ণ" থেকে শুরু করে "এটি একেবারে সমালোচনামূলক এবং আমরা দলের সকলকে সমান্তরাল বাস্তবায়ন সম্পর্কে ভাল বোঝাপড়া এবং ব্যবহারের আশা করি"।
বেশিরভাগ ক্ষেত্রে, যখন সমান্তরালতার প্রয়োজন হয় তখন লক, থ্রেড এবং কার্য এবং টাস্ক পুলগুলির একটি শক্ত বোঝাপড়া এবং ব্যবহার একটি ভাল শুরু হবে। (ল্যাং / লিব অনুসারে পরিবর্তিত হয়)
আপনার যে নকশাগুলি অবশ্যই তৈরি করতে হবে তার মধ্যে যে পার্থক্য রয়েছে তা যুক্ত করুন - অনিয়ন্ত্রিত মাল্টিপ্রসেসিংয়ের জন্য একজনকে প্রায়শই বেশ কয়েকটি নতুন প্রোগ্রামিং মডেল বা সমান্তরাল কৌশল শিখতে হবে। সেক্ষেত্রে, শেখার সময়, শক্ত বোঝাপড়া করার জন্য পর্যাপ্ত সময় ব্যর্থ হওয়া এবং বিদ্যমান প্রোগ্রামগুলি আপডেট করতে একটি দলকে এক বছর (বা আরও) সময় লাগতে পারে। আপনি যখন এই পর্যায়ে পৌঁছে গেছেন, আপনি (আশাবাদী!) আজকের মতো সমস্যাগুলি / বাস্তবায়নের বিষয়টি অনুধাবন করবেন না বা কাছে পৌঁছে যাবেন না (তবে আপনি এখনও সেই রূপান্তরটি তৈরি না করে থাকেন)।
আরেকটি প্রতিবন্ধকতা হ'ল আপনি কার্যকরভাবে কোনও কার্যকর করার জন্য কোনও প্রোগ্রামকে অনুকূল করে তুলছেন। যদি আপনাকে প্রোগ্রামগুলি অনুকূলকরণের জন্য খুব বেশি সময় না দেওয়া হয়, তবে আপনি অবশ্যই এটির থেকে যথাযথভাবে উপকৃত হবেন না। উচ্চ স্তরের (বা স্পষ্ট) সমান্তরালতা আপনার প্রোগ্রামের পার্সিয়ড গতি উন্নত করতে পারে মোটামুটি প্রচেষ্টার সাথে, এবং এটি এখন পর্যন্ত অনেক দল যেতে পারে: "আমরা অ্যাপ্লিকেশনটির প্রকৃত স্পষ্ট অংশগুলিকে সমান্তরাল করেছি" - এটি কিছু ক্ষেত্রে ঠিক আছে। কম ঝুলন্ত ফল গ্রহণ এবং সরল প্যারালাইজেশন ব্যবহারের সুবিধা কী কোর সংখ্যার সাথে সমানুপাতিক হবে? প্রায়শই, যখন দুটি থেকে চারটি লজিকাল কোর থাকে তবে প্রায়শই এর বাইরে হয় না। অনেক ক্ষেত্রে, সময় বিনিয়োগের ভিত্তিতে এটি একটি গ্রহণযোগ্য রিটার্ন। এই সমান্তরাল মডেলটি সমান্তরালতার ভাল ব্যবহারগুলি বাস্তবায়নের জন্য অনেকের পরিচয়।
আপনি এই তুচ্ছ সমান্তরাল মডেলগুলি ব্যবহার করে যা শিখেন তা সব জটিল সমান্তরাল দৃশ্যে আদর্শ হবে না; কার্যকরভাবে জটিল সমান্তরাল ডিজাইন প্রয়োগ করার জন্য অনেক আলাদা বোঝাপড়া এবং পদ্ধতির প্রয়োজন। এই সাধারণ মডেলগুলি প্রায়শই বিচ্ছিন্ন হয় বা সিস্টেমের অন্যান্য উপাদানগুলির সাথে তুচ্ছ ইন্টারঅ্যাকশন করে। পাশাপাশি, এই তুচ্ছ মডেলগুলির অনেকগুলি প্রয়োগ কার্যকরভাবে জটিল সমান্তরাল সিস্টেমগুলিতে ভাল স্কেল করে না - একটি খারাপ জটিল সমান্তরাল নকশা সাধারণ মডেল হিসাবে কার্যকর করতে দীর্ঘ সময় নিতে পারে। অসুস্থ: এটি একক থ্রেডযুক্ত মডেলের চেয়ে দ্বিগুণ দ্রুত কার্যকর করে, কার্যকর করার সময় 8 লজিকাল কোর ব্যবহার করে util সর্বাধিক কমনের উদাহরণগুলি অনেকগুলি থ্রেড এবং উচ্চ স্তরের সিঙ্ক্রোনাইজেশন হস্তক্ষেপ ব্যবহার করে / তৈরি করছে। সাধারণভাবে, এটিকে সমান্তরাল মন্দা বলে অভিহিত করা হয়। আপনি যদি সমান্তরাল সমস্যাগুলিকে সাধারণ সমস্যা হিসাবে দেখেন তবে এটির মুখোমুখি হওয়া বেশ সহজ।
সুতরাং, আসুন আমরা বলি যে আপনার সত্যিকারের প্রোগ্রামগুলিতে দক্ষ সংখ্যালঘু পাঠককে ব্যবহার করা উচিত (সংখ্যালঘু, আজকের জলবায়ুতে): জটিল মডেলটি শিখতে আপনাকে কার্যকর মডেলটি কার্যকরভাবে প্রয়োগ করতে হবে এবং তারপরে আপনি কীভাবে প্রোগ্রামের প্রবাহ এবং মিথস্ক্রিয়াতে যোগাযোগ করবেন তা শিখতে হবে। জটিল মডেলটি হ'ল যেখানে আপনার প্রোগ্রামটি চূড়ান্তভাবে হওয়া উচিত যেহেতু আজ সেখানে হার্ডওয়্যার রয়েছে এবং যেখানে সবচেয়ে প্রভাবশালী উন্নতি করা হবে।
সাধারণ মডেলগুলির সম্পাদন একটি কাঁটাচামড়ার মতো কল্পনা করা যায় এবং জটিল মডেলগুলি জটিল, আহ, বাস্তুতন্ত্রের মতো কাজ করে। আমি মনে করি সাধারণ লকিং এবং থ্রেডিং সহ সাধারণ মডেলগুলির বোঝাপড়াটি যখন ডোমেন (যেখানে আপনি বিকাশ করেছেন) এটি ব্যবহার করবে তখন মধ্যবর্তী বিকাশকারীদের কাছে হওয়া বা হওয়া উচিত। জটিল মডেলগুলি বোঝা আজও কিছুটা অস্বাভাবিক (বেশিরভাগ ডোমেনগুলিতে) তবে আমি মনে করি চাহিদাটি খুব দ্রুত বাড়বে। বিকাশকারী হিসাবে, আমাদের প্রোগ্রামগুলির অনেকগুলি এই মডেলগুলিকে সমর্থন করে এবং বেশিরভাগ ব্যবহার এই ধারণাগুলি বোঝার এবং বাস্তবায়নে বেশ পিছিয়ে থাকে। যেহেতু লজিকাল প্রসেসর গণনাগুলি হার্ডওয়্যার উন্নতির অন্যতম গুরুত্বপূর্ণ ক্ষেত্র, তাই জটিল সিস্টেমগুলি বুঝতে এবং প্রয়োগ করতে পারে এমন লোকদের চাহিদা অবশ্যই বাড়বে।
অবশেষে, এমন অনেক লোক আছেন যারা মনে করেন সমাধানটি কেবল "সমান্তরালতা যুক্ত করুন"। প্রায়শই, বিদ্যমান প্রয়োগটি দ্রুত করা আরও ভাল। এটি অনেক ক্ষেত্রে অনেক সহজ এবং অনেক সহজ। বুনো অনেক প্রোগ্রাম কখনও অনুকূলিত হয় নি; কিছু লোকের মধ্যে কেবল এই ধারণা ছিল যে অযৌক্তিক সংস্করণটি খুব শীঘ্রই কোনও দিন হার্ডওয়্যার দ্বারা গ্রহন করা হবে। বিদ্যমান কর্মসূচীর নকশা বা অ্যালগোসের উন্নতি করাও যদি গুরুত্বপূর্ণ পারফরম্যান্স গুরুত্বপূর্ণ - সমস্যাগুলিতে আরও বেশি কর ছুঁড়ানো অগত্যা সর্বোত্তম বা সহজ সমাধান নয়।
আধুনিক পিসিগুলিকে টার্গেট করার সময়, আমাদের বেশিরভাগ যাদের ভাল সমান্তরাল সিস্টেমগুলি প্রয়োগ করতে হবে তাদের মাল্টিথ্রেডিং, লকিং, সমান্তরাল গ্রন্থাগারগুলি, একটি বইয়ের পড়া মূল্যবান এবং অনেক অভিজ্ঞতা রচনা এবং পরীক্ষামূলক প্রোগ্রামের বাইরে যাওয়ার দরকার নেই (মূলত, আপনি কীভাবে উল্লেখযোগ্যভাবে পুনর্গঠন করতে পারেন লেখার কর্মসূচী গ্রহণ করুন)।