সম্মতি এবং সমান্তরালতার মধ্যে পার্থক্য কী?


1073

সম্মতি এবং সমান্তরালতার মধ্যে পার্থক্য কী?

উদাহরণগুলি প্রশংসা করা হয়।


41
সংক্ষিপ্ত উত্তর: কনকুরেন্সি হ'ল গ্রাহকদের দুটি লাইন যা কোনও একক ক্যাশিয়ার থেকে অর্ডার করে (লাইনগুলি টার্ন অর্ডার করে নেওয়া হয়); সমান্তরালতা হ'ল গ্রাহকদের দুটি লাইন যা দুটি ক্যাশিয়ার থেকে অর্ডার হয় (প্রতিটি লাইন তার নিজস্ব ক্যাশিয়ার পায়)।
ছারভে

@ ছারভে: আমার মনে হয় এর উত্তর হওয়া উচিত। সংক্ষিপ্ত (পাঠ্যের দুটি রেখা, যদি আপনি "সংক্ষিপ্ত উত্তর" ছেড়ে দেন) তত্ক্ষণাত বোধগম্য। সুন্দরভাবে সম্পন্ন!
মাইক ম্যাক্সওয়েল

উত্তর:


1268

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

সমান্তরালতা হ'ল কাজগুলি যখন আক্ষরিকভাবে একই সময়ে চালিত হয়, যেমন একটি মাল্টিকোর প্রসেসরের উপর।


বরাত দিয়ে সূর্যের মাল্টি প্রোগ্রামিং গাইড :

  • সংমেয়: কমপক্ষে দুটি থ্রেড যখন অগ্রগতি করে তখন একটি শর্ত বিদ্যমান। সমান্তরালতার আরও সাধারণ রূপ যা ভার্চুয়াল সমান্তরালতার ফর্ম হিসাবে সময়-কাটা কাটা অন্তর্ভুক্ত করতে পারে।

  • সমান্তরালতা: একটি শর্ত যা উত্থাপিত হয় যখন কমপক্ষে দুটি থ্রেড একই সাথে কার্যকর করা হয়।


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

24
আমি অ্যাড্রিয়ান মৌআতের মন্তব্যটি খুব পছন্দ করি। এই দুর্দান্ত ব্যাখ্যাটিও দেখুন: haskell.org/haskellwiki/Parallelism_vs._Concurrency
jberryman

9
@ রাজ: একক কোর প্রসেসরের মাধ্যমে সঠিক, সমান্তরালতা (মাল্টিথ্রেডিংয়ের অর্থে) সম্ভব নয়।
রিচিহিন্দল

5
যদি সিক্যুয়াল এবং সমান্তরাল উভয়ই একটি গণনায় মান হয় তবে সেই গণনার নাম কী হবে?
টুডমো

11
Concurrency: একটি শর্ত বিদ্যমান যখন, একটি প্রদত্ত সময়: - যে শেষে, সূর্যের উদ্ধৃতি হিসাবে reworded যাবে সময়ের সময়, দুই থ্রেড অগ্রগতি হয় - সমান্তরালতা: একটি শর্তে যে দেখা দেয় যখন একটি নির্দিষ্ট দেওয়া বিন্দু সময়, দুই থ্রেড একসাথে সম্পাদন করছে
ফিলিপ

494

কেন বিভ্রান্তি বিদ্যমান

বিভ্রান্তি বিদ্যমান কারণ উভয় শব্দের অভিধানের অর্থ প্রায় একই রকম:

  • সমবর্তী : একই সাথে বিদ্যমান, ঘটছে, বা সম্পন্ন হয়েছে (অভিধান.কম)
  • সমান্তরাল : খুব অনুরূপ এবং প্রায়শই একই সময়ে ঘটছে (মেরিলিয়াম ওয়েবস্টার)।

তবুও তারা কম্পিউটার বিজ্ঞান এবং প্রোগ্রামিংয়ে যেভাবে ব্যবহৃত হয় তা একেবারেই আলাদা। এখানে আমার ব্যাখ্যা:

  • সংমেয় : বাধা
  • সমান্তরালতা : স্বতন্ত্রতা

সুতরাং উপরের সংজ্ঞা দ্বারা আমি কী বোঝাতে চাই?

আমি একটি বাস্তব বিশ্বের উপমা দিয়ে পরিষ্কার করব। ধরা যাক আপনাকে এক দিনে 2 টি খুব গুরুত্বপূর্ণ কাজ করতে হবে:

  1. পাসপোর্ট পান
  2. একটি উপস্থাপনা সম্পন্ন করুন

এখন, সমস্যাটি হ'ল টাস্ক -১ এর জন্য আপনাকে একটি অত্যন্ত আমলাতান্ত্রিক সরকারী অফিসে যেতে হবে যা আপনাকে নিজের পাসপোর্ট পেতে একটি লাইনে 4 ঘন্টা অপেক্ষা করতে বাধ্য করে। এদিকে, আপনার অফিসের জন্য টাস্ক -২ প্রয়োজন, এবং এটি একটি গুরুত্বপূর্ণ কাজ। উভয় একটি নির্দিষ্ট দিনে শেষ করতে হবে।

কেস 1: সিক্যুয়ালিয়াল এক্সিকিউশন

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

কেস 2: একযোগে কার্যকর

তবে আপনি স্মার্ট। আপনি এগিয়ে পরিকল্পনা। আপনি আপনার সাথে একটি ল্যাপটপ বহন করেন এবং লাইনে অপেক্ষা করার সময় আপনি আপনার উপস্থাপনায় কাজ শুরু করেন। এইভাবে, একবার আপনি ঘরে ফিরে গেলে আপনার 5 টির পরিবর্তে 1 অতিরিক্ত ঘন্টা কাজ করা দরকার।

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

Concurrency, আইএমও, মধ্যে "বিচ্ছিন্নতা" সম্পত্তি হিসাবে বোঝা যাবে ACID । দুটি ডাটাবেস লেনদেনকে বিচ্ছিন্ন হিসাবে বিবেচনা করা হয় যদি উপ-লেনদেন প্রতিটি এবং যে কোনও আন্তঃবাহিত উপায়ে করা যায় এবং চূড়ান্ত ফলাফল একই হয় যেন দুটি কাজ ক্রমানুসারে করা হয়েছিল। মনে রাখবেন, পাসপোর্ট এবং উপস্থাপনা উভয় কাজের জন্যই আপনি একমাত্র নির্বাহক

কেস 3: সমান্তরাল কার্যকর

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

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

এখনও আমার সাথে? ঠিক আছে...

কেস ৪: সমান্তরাল নয় তবে সমান্তরাল

আপনার পাসপোর্টের কাজটি মনে আছে, আপনাকে লাইনে অপেক্ষা করতে হবে? যেহেতু এটি আপনার পাসপোর্ট, তাই আপনার সহকারী আপনার জন্য লাইনে অপেক্ষা করতে পারবেন না। সুতরাং, পাসপোর্ট টাস্কটিতে বাধা রয়েছে (আপনি লাইনে অপেক্ষা করার সময় এটি থামিয়ে দিতে পারেন, এবং আপনার নাম্বারটি কল করার পরে এটি আবার চালু করতে পারেন) তবে কোনও স্বাধীনতা নেই (আপনার সহকারী আপনার স্থানে অপেক্ষা করতে পারবেন না)।

কেস 5: সমান্তরাল তবে একযোগে নয়

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

এই ক্ষেত্রে, পাসপোর্ট টাস্ক না স্বতন্ত্র এবং না বাধাদানযোগ্য । এমনকি আপনি যদি লাইনে অপেক্ষা করছেন তবে প্রয়োজনীয় সরঞ্জামাদি না থাকায় আপনি অন্য কোনও কাজ করতে পারবেন না।

একইভাবে, বলুন উপস্থাপনাটি এতটাই গাণিতিক প্রকৃতির যে আপনার কমপক্ষে 5 ঘন্টার জন্য 100% ঘনত্বের প্রয়োজন। পাসপোর্ট কাজের জন্য লাইনে অপেক্ষা করার সময় আপনি এটি করতে পারবেন না, এমনকি আপনার ল্যাপটপটি আপনার সাথে থাকলেও।

এই ক্ষেত্রে, উপস্থাপনা টাস্কটি স্বতন্ত্র (আপনি বা আপনার সহকারী 5 ঘন্টা কেন্দ্রীভূত প্রচেষ্টা চালাতে পারেন), তবে বাধাযোগ্য নয় ।

কেস।: সমবর্তী এবং সমান্তরাল সম্পাদন

এখন, বলুন যে উপস্থাপনায় আপনার সহকারীকে বরাদ্দ দেওয়ার পাশাপাশি, আপনি পাসপোর্টের কাজে আপনার সাথে একটি ল্যাপটপও বহন করেন। লাইনে অপেক্ষা করার সময় আপনি দেখতে পাবেন যে আপনার সহকারী একটি শেয়ারড ডেকে প্রথম 10 টি স্লাইড তৈরি করেছেন। আপনি কিছু সংশোধন করে তাঁর কাজ সম্পর্কে মন্তব্য পাঠান। পরে, আপনি যখন বাড়িতে ফিরে আসবেন, খসড়াটি চূড়ান্ত করতে 2 ঘন্টার পরিবর্তে আপনার কেবল 15 মিনিটের প্রয়োজন।

এটি সম্ভব হয়েছিল কারণ উপস্থাপনা টাস্কটির স্বতন্ত্রতা রয়েছে (আপনার মধ্যে যে কেউ এটি করতে পারেন) এবং বাধাবদ্ধতা (আপনি এটিকে থামাতে এবং পরে এটি পুনরায় চালু করতে পারেন)। সুতরাং আপনি একইসাথে উভয় কাজ সম্পাদন করেছেন এবং সমান্তরালে উপস্থাপনা টাস্কটি কার্যকর করেছেন।

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

এই ক্ষেত্রে, আপনি পাসপোর্ট এবং উপস্থাপনা উভয় কাজ একই সাথে এবং সমান্তরালভাবে সম্পাদন করতে পারেন। আপনি লুকিয়ে থাকতে পারেন, এবং আপনার অবস্থানটি আপনার সহকারী দ্বারা ধরে আছে। আপনি উভয়ই উপস্থাপনা ইত্যাদিতে কাজ করতে পারেন ইত্যাদি


কম্পিউটার সায়েন্সে ফিরুন

কম্পিউটিং ওয়ার্ল্ডে, এখানে প্রতিটি ক্ষেত্রে সাধারণত উদাহরণস্বরূপ পরিস্থিতিতে রয়েছে:

  • কেস 1: বিঘ্নিত প্রক্রিয়াজাতকরণ।
  • কেস 2: যখন কেবলমাত্র একটি প্রসেসর থাকে তবে সমস্ত নির্বাহী কার্যের I / O এর কারণে অপেক্ষা করার সময় থাকে।
  • কেস 3: প্রায়শই দেখা যায় যখন আমরা মানচিত্র হ্রাস বা হ্যাডোপ ক্লাস্টারগুলির বিষয়ে কথা বলি।
  • কেস 4: আমি মনে করি কেস 4 দুর্লভ। কোনও কাজ সমান্তরাল হওয়া সমান্তরাল নয় তবে এটি অস্বাভাবিক। কিন্তু এটা করতে পারে ঘটে। উদাহরণস্বরূপ, ধরুন আপনার কাজটির জন্য একটি বিশেষ গণনা চিপ অ্যাক্সেসের প্রয়োজন যা কেবলমাত্র প্রসেসর -1 এর মাধ্যমে অ্যাক্সেস করা যায়। সুতরাং, প্রসেসর -২ নিখরচায় এবং প্রসেসর -১ অন্য কোনও কাজ সম্পাদন করলেও বিশেষ গণনার টাস্ক প্রসেসর -২ এ অগ্রসর হতে পারে না।
  • কেস 5: এছাড়াও বিরল, তবে কেস 4 এর মতো ততটা বিরল নয় A একটি অ-সমবর্তী কোডটি মুটেক্সেস দ্বারা সুরক্ষিত একটি সমালোচনামূলক অঞ্চল হতে পারে। একবার এটি শুরু হয়ে গেলে অবশ্যই এটি সমাপ্তির জন্য কার্যকর করা উচিত । তবে দুটি ভিন্ন সমালোচক অঞ্চল দুটি পৃথক প্রসেসরের একযোগে অগ্রসর হতে পারে।
  • কেস:: আইএমও, সমান্তরাল বা সমবর্তী প্রোগ্রামিং সম্পর্কে সর্বাধিক আলোচনার বিষয়টি মূলত কেস are সম্পর্কে কথা বলছে এটি সমান্তরাল এবং সমবর্তী উভয় মৃত্যুদন্ডের মিশ্রণ এবং মিল।

সংমেয় এবং গো

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

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

তবে মূলত, সমান্তরালতা কি সেই সমান্তরালতা?

কমলাগুলির চেয়ে আপেল কি ভাল?


5 কেস জন্য ধন্যবাদ। আমি প্রায়শই আমি সমান্তরাল অন্তর্নিহিত মানে সম্মতি বলে মনে করি।
এইচকিটি

2
নোড.জেএস ইভেন্ট লুপটি কেস ৪ এর জন্য একটি ভাল উদাহরণ process যদিও প্রসেসর বি এর নিখরচায় সম্পদ রয়েছে, অনুরোধ এক্স প্রসেসর এ দ্বারা পরিচালনা করা উচিত যা ওয়াই প্রসেসিংয়ে ব্যস্ত set যদি সেটটাইমআউটকে ওয়াইয়ের জন্য ডাকা হয়, এক্স প্রসেস করা যায়, তবে, সময়সীমা শেষ হওয়ার পরে ওয়াইয়ের প্রক্রিয়াও শেষ হবে।
লুকাস জ্যানন

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

উপরের মন্তব্যের অনুরূপ - মাল্টিথ্রিড পাইথন 4 টির উদাহরণ I আমি মনে করি না এই মামলাটি অস্বাভাবিক। যে কোনও গ্লোবাল ইন্টারপ্রেটার লকটি ফলাফল 4 এর ক্ষেত্রে হবে (যদি তা এক সাথে সম্মতি দেওয়ার অনুমতি দেয়)।
chub500

245

আমি রব পাইকের আলাপ পছন্দ করি: সংহততা সমান্তরালতা নয় (এটি আরও ভাল!) (স্লাইডস) (আলাপ)

রব সাধারণত গো সম্পর্কে কথা বলে এবং সাধারণত একটি ভিজ্যুয়াল এবং স্বজ্ঞাত ব্যাখ্যাতে কনকুরન્સી বনাম প্যারালালিজমের প্রশ্নকে সম্বোধন করে! এখানে একটি সংক্ষিপ্তসার:

কার্য: আসুন অপ্রচলিত ভাষা ম্যানুয়ালগুলির একটি গাদা পুড়িয়ে ফেলা যাক! একবারে একটি!

কার্য

সংহত: টাস্কের এক সাথে অনেকগুলি ক্ষয় হয়! একটি উদাহরণ:

gophers

সমান্তরালতা: একই সময়ে কমপক্ষে 2 জন গোফার কাজ করছে বা না থাকলে সমান্তরালে পূর্ববর্তী কনফিগারেশনটি ঘটে।


9
ভিডিওটির জন্য, দেখুন blog.heroku.com/archives/2013/2/24/…
প্রমোদ

15
দুঃখিত, "এটি আরও ভাল" বিটের জন্য এটি ডাউনভিট করতে হয়েছিল। সঠিক উত্তরটি এটি আলাদা। সংকেত সমস্যা একটি অংশ। সমান্তরালতা সমাধানের একটি অংশ।
পাইওন

@ এডুয়ার্ডোলেন আপনি অবশ্যই আলাপের নামটি যাচাই করেন নি। সংকেত কোনও সমস্যা নয়, এটি কোনও সমস্যা / কার্য সম্পর্কে চিন্তা করার এক উপায়।
অগস্ট

5
@ এসফার কনকুরেন্সি সমস্যা গঠনের একটি অংশ part যাইহোক, "একনীতি" (সমস্যাটি) "সম্মতি নিয়ন্ত্রণ" সাথে সমাধান করবেন না (এমন একটি সমাধান, যা প্রায়শই সমান্তরালতার সাথে একসাথে ব্যবহৃত হয়)।
পায়ন

1
আমি এটি দেখেছি এবং সত্যই আমার পছন্দ হয়নি। এটি এমন কিছুতে অপ্রয়োজনীয় জটিলতা এবং নার্দিতা যুক্ত করেছে যা খুব সহজ উপায়ে ব্যাখ্যা করা উচিত (জাগারদের উত্তর এখানে দেখুন)।
jj_

146

অন্যরা যা বলেছে তা যুক্ত করতে:

কনকুরেন্সি হ'ল এক জাগ্রালকে অনেক বল জাগল। এটি যেভাবেই মনে হচ্ছে তা নির্বিশেষে, জাগলার একবারে কেবল একবার হাতে এক বল ধরে / ফেলছে। সমান্তরালতা এক সাথে একাধিক জাগল বল জাগল।


2
আমি পিকে হয়ে যাব, তবে আপনি যদি এক জোড়া সংখ্যক বল নিয়ে মজাদার হন তবে আপনার একই সাথে দুটি বল থাকতে পারে (আপনি কীভাবে জাগ্রাল করছেন তার উপর নির্ভর করে)।
thebugfinder

52
@ থেগুগফাইন্ডার, এটি নিশ্চিত করার জন্য থমাসের উদাহরণে ত্রুটির আর কোনও স্থান নেই। সংশ্লেষ এমন একজন ব্যক্তির মতো যা কেবল 1 হাত দিয়ে জাগ্রত করে। এটিকে যতটা মনে হয় তা নির্বিশেষে ব্যক্তি একবারে কেবলমাত্র একটি বল ধরে। সমান্তরালতা হ'ল যখন জাগার দু'হাত ব্যবহার করে।
বিগুনটাকান

"বলের জোড় সংখ্যা" বলতে আসলে আমি যা বোঝাতে চেয়েছি তা হ'ল "এমনকি
সমান

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

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

120

বলুন আপনার কাছে এমন একটি প্রোগ্রাম রয়েছে যাতে দুটি থ্রেড থাকে। প্রোগ্রামটি দুটি উপায়ে চলতে পারে:

Concurrency                 Concurrency + parallelism
(Single-Core CPU)           (Multi-Core CPU)
 ___                         ___ ___
|th1|                       |th1|th2|
|   |                       |   |___|
|___|___                    |   |___
    |th2|                   |___|th2|
 ___|___|                    ___|___|
|th1|                       |th1|
|___|___                    |   |___
    |th2|                   |   |th2|

উভয় ক্ষেত্রেই আমাদের একাধিক থ্রেড চলমান নিছক সত্য থেকে একমত হয়।

যদি আমরা একটি কম্পিউটারে একটি সিপিইউ কোর দিয়ে এই প্রোগ্রামটি চালিত করি তবে ওএস দুটি থ্রেডের মধ্যে স্যুইচ করবে, এটি একবারে একটি থ্রেড চালানোর অনুমতি দেবে।

যদি আমরা এই প্রোগ্রামটি একটি বহু-কোর সিপিইউ দিয়ে একটি কম্পিউটারে চালিত করি তবে আমরা ঠিক একই সময়ে দুটি থ্রেডকে সমান্তরালভাবে পাশাপাশি চালাতে সক্ষম হব ।


4
থ্রেড ব্লকগুলি আমার পছন্দ হয়েছে। সরল, তবু নিখুঁত! যেমন একটি দুর্দান্ত উত্তর জন্য আপনাকে ধন্যবাদ।
Bozzmob

53

সংকেত: যদি একা প্রসেসরের মাধ্যমে দু'একটি বেশি সমস্যা সমাধান করা হয়। বিকল্প পাঠ

সমান্তরালতা: যদি একটি সমস্যা একাধিক প্রসেসর দ্বারা সমাধান করা হয়।

বিকল্প পাঠ


55
আমি এর সাথে একমত নই - একটি প্রোগ্রাম সমান্তরালভাবে চালিত হতে পারে বা নাও হতে পারে; সম্মতি একটি প্রোগ্রামের আরও একটি বৈশিষ্ট্য, এটি কার্যকর হলে সমান্তরালতা দেখা দিতে পারে।
অ্যাড্রিয়ান মৌআত

36

আমি একটি আকর্ষণীয় এবং সহজে বোঝার উদাহরণ দিয়ে ব্যাখ্যা করার চেষ্টা করব। :)

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

আশা করি নিম্নলিখিত পরিস্থিতিতেগুলি এই 10 টি গেম পরিচালনা করার একাধিক উপায় সহজেই বর্ণনা করবে:

1) সিরিয়াল - বলতে দিন যে পেশাদার প্রতিটি ব্যক্তির সাথে একে একে খেলে অর্থাৎ এক ব্যক্তির সাথে খেলা শুরু করে এবং শেষ করে এবং তারপরে পরবর্তী ব্যক্তি এবং এর সাথে পরবর্তী খেলা শুরু করে। অন্য কথায়, তারা ক্রমানুসারে গেমগুলি পরিচালনা করার সিদ্ধান্ত নিয়েছে। সুতরাং যদি কোনও গেমটি শেষ হতে 10 মিনিট সময় নেয় তবে 10 গেমস 100 মিনিট সময় নেয়, এছাড়াও ধরে নিন যে একটি গেম থেকে অন্য গানে স্থানান্তর 6 সেকেন্ডে লাগে তবে 10 গেমের জন্য এটি 54 সেকেন্ড (প্রায় 1 মিনিট) হবে।

সুতরাং পুরো ইভেন্টটি 101 মিনিটে প্রায় শেষ হবে ( সবচেয়ে বড় প্রচার )

2) কনসার্ট - বলতে দিন যে পেশাদার তার পালা খেলে এবং পরবর্তী খেলোয়াড়ের দিকে এগিয়ে যায় তাই সমস্ত 10 খেলোয়াড় একই সাথে খেলছে তবে পেশাদার খেলোয়াড় এক সাথে দু'জনের সাথে নয়, তিনি তার পালা খেলেন এবং পরবর্তী ব্যক্তির দিকে চলে যান। এখন ধরে নিন পেশাদার প্লেয়ারটি তার পালা খেলতে 6 সেকেন্ড সময় নেয় এবং পেশাদার প্লেয়ার বি / ডাব্লু ডাব্লু এর দুই প্লেয়ারের পরিবর্তনের সময়টি 6 সেকেন্ড তাই প্রথম প্লেয়ারে ফিরে আসার মোট স্থানান্তরণ সময় 1 মিনিট (10x6 সেক) হবে। সুতরাং, যার সাথে তিনি প্রথম ব্যক্তির সাথে ফিরে আসেন, যার ইভেন্ট শুরু হয়েছিল, 2 মিনিট কেটে গেছে (10xTime_per_turn_by_cha Champion + 10xtransition_Time = 2mins)

ধরে নিই যে সমস্ত খেলোয়াড় সিরিয়াল ইভেন্ট নং থেকে প্রতি গেমটি 10 ​​মিনিটের উপর ভিত্তি করে তাদের পালা সম্পূর্ণ করতে 45 ​​সেকেন্ড নেয়। একটি খেলা শেষ হওয়ার আগে রাউন্ডগুলির 600 / (45 + 6) = 11 রাউন্ড (প্রায়) হওয়া উচিত

সুতরাং পুরো ইভেন্টটি প্রায় 11xটাইম_প্লেয়ার_টেন_বাই_প্লেয়ার _ এবং _ চ্যাম্পিয়ন + 11xtransition_Time_across_10_players = 11x51 + 11x60sec = 561 + 660 = 1221sec = 20.35 মিনিটে (প্রায়)

১০১ মিনিট থেকে ২০.৩৫ মিনিট পর্যন্ত উন্নতি দেখুন ( আরও ভাল পদ্ধতিতে )

৩) পার্লেল - আসুন আয়োজকরা কিছু অতিরিক্ত তহবিল পান এবং এইভাবে দুটি পেশাদার চ্যাম্পিয়ন খেলোয়াড়কে (উভয় সমান সক্ষম) আমন্ত্রিত করার সিদ্ধান্ত নিয়েছিলেন এবং একই সাথে 10 জন খেলোয়াড়ের (চ্যালেঞ্জার) সেটকে 5 টির দুটি গ্রুপে বিভক্ত করে দুটি চ্যাম্পিয়নকে অর্পণ করেন অর্থাৎ একজনকে প্রতিটি গ্রুপ এখন ইভেন্টটি এই দুটি সেটের সমান্তরালে অগ্রগতি করছে অর্থাৎ কমপক্ষে দুজন খেলোয়াড় (প্রতিটি গ্রুপের একজন) স্ব স্ব গ্রুপে থাকা দুই পেশাদার খেলোয়াড়ের বিপক্ষে খেলছেন।

তবে গ্রুপের মধ্যে পেশাদার খেলোয়াড়ের সাথে একবারে একজন খেলোয়াড় নেবেন (অর্থাত ক্রমানুসারে) যাতে কোনও গণনা ছাড়াই আপনি সহজেই সেই পুরো ইভেন্টটি প্রায় 101/2 = 50.5 মিনিটে সম্পূর্ণ করতে শেষ করতে পারবেন

১০০ মিনিট থেকে ৫০.৫ মিনিট পর্যন্ত উন্নতি দেখুন ( ভাল আবেদন )

৪) কনক্যুরেন্ট + পার্লল - উপরের দৃশ্যে , বলুন যে দুটি চ্যাম্পিয়ন খেলোয়াড় স্ব স্ব গ্রুপে ৫ জন খেলোয়াড়ের সাথে একযোগে (২ য় পয়েন্ট পড়ুন) খেলবেন সুতরাং এখন গ্রুপগুলির জুড়ে গেমগুলি সমান্তরালভাবে চলছে তবে গ্রুপের মধ্যে তারা একই সাথে চলছে।

সুতরাং এক গোষ্ঠীর গেমগুলি প্রায় 11xটাইম_প্লে_টর্ন_বাই_প্লেয়ার _ এবং _ চ্যাম্পিয়ন + 11xtransition_Time_across_5_players = 11x51 + 11x30 = 600 + 330 = 930 সেক = 15.5 মিনিট (প্রায়)

সুতরাং পুরো ইভেন্টটি (এরকম দুটি সমান্তরাল চলমান গোষ্ঠী জড়িত) প্রায় 15.5 মিনিটে সম্পূর্ণ হবে

১০১ মিনিট থেকে ১৫.৫ মিনিট পর্যন্ত উন্নত কাজটি দেখুন ( সেরা প্রচার )

দ্রষ্টব্য: উপরের দৃশ্যে আপনি যদি 10 টি খেলোয়াড়কে 10 টি একই কাজের সাথে এবং দুটি পেশাদার প্লেয়ারকে দুটি সিপিইউ কোরের সাথে প্রতিস্থাপন করেন তবে নীচের ক্রমটি আবার সত্য থাকবে:

সিরিয়াল> প্যারালেল> কনসাল্ট> কনকরারেন্ট + পার্লাল

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


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

33

সাধারণ উদাহরণ:

সমবর্তী: "একটি এটিএম মেশিনে প্রবেশের জন্য দুটি সারি"

সমান্তরাল হ'ল: "দুটি সারি এবং দুটি এটিএম মেশিন"


এবং মাল্টিথ্রেডিং? উপরের দৃশ্যে মাল্টিথ্রেডিং শব্দটি কীভাবে খাপ খায় তা ভেবে কেবল। এক্ষেত্রে, প্রতিটি সারি থেকে একটিতে প্রতিটি মুহুর্তে এটিএম-তে যান সমকালীন == বহুগঠনের কি?
খোফি

31

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

এখন আপনি একজন পেশাদার প্রোগ্রামার। এবং আপনি কোডিং করার সময় শান্ত সংগীত শুনতে উপভোগ করেন। এটা সমান্তরালতা।

যেমন অ্যান্ড্রু জেরান্ড GoLang ব্লগে বলেছিলেন

কনকুরেন্সি হ'ল একবারে প্রচুর জিনিস নিয়ে কাজ করার। সমান্তরালতা হ'ল একবারে প্রচুর জিনিস করা।

উপভোগ করুন।


29

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

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


28

একত্রীকরণ: একাধিক সম্পাদন সংস্থানগুলি সংস্থান করার সম্ভাবনার সাথে প্রবাহিত হয়

উদাহরণস্বরূপ: দুটি থ্রেড আই / ও পোর্টের জন্য প্রতিযোগিতা করছে।

paralelism: একাধিক অনুরূপ খণ্ডে সমস্যা বিভক্ত করা।

উদাহরণস্বরূপ: ফাইলের অর্ধেক অংশে দুটি প্রক্রিয়া চালিয়ে একটি বড় ফাইলকে পার্স করা।


21

সমকালীন প্রোগ্রামিং এক্সিকিউশনের 2 প্রকার রয়েছে: অ সমান্তরাল সমবর্তী প্রোগ্রামিং এবং সমান্তরাল সমবর্তী প্রোগ্রামিং (সমান্তরালতা হিসাবেও পরিচিত)।

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

তথ্যসূত্র: প্রোগ্রামিং ভাষাগুলিতে কনকুরেন্সির পরিচিতি


8
হাজার শব্দের মূল্যবান একটি ছবি
সেন্সিওয়ু

21

সমান্তরালতা হ'ল একটি multiple cores per CPUবা উপর প্রক্রিয়াগুলির যুগপত সম্পাদনmultiple CPUs (on a single motherboard)

সামঞ্জস্য হয় যখন সিপিইউর সময়কে (টাইম-স্লাইস) ভাগ করে নেওয়ার সময়সূচী অ্যালগরিদম ব্যবহার করে সমান্তরালতা অর্জন করা হয় । প্রক্রিয়াগুলি ইন্টারলিভড হয়single core/CPU

ইউনিট:

  • একক সিপিইউতে 1 বা বহু কোর (আধুনিক সমস্ত আধুনিক প্রসেসর)
  • মাদারবোর্ডে 1 বা অনেকগুলি সিপিইউ (পুরানো স্কুল সার্ভারগুলি ভাবেন)
  • 1 টি অ্যাপ্লিকেশন হ'ল 1 প্রোগ্রাম (মনে করুন ক্রোম ব্রাউজার)
  • 1 প্রোগ্রামে 1 বা অনেকগুলি প্রক্রিয়া থাকতে পারে (প্রতিটি ক্রোম ব্রাউজার ট্যাব একটি প্রক্রিয়া মনে করুন)
  • 1 প্রক্রিয়াতে 1 টি প্রোগ্রাম থেকে 1 বা বহু থ্রেড থাকতে পারে (ক্রোম ট্যাবটি 1 থ্রেডে ইউটিউব ভিডিও চালাচ্ছে, মন্তব্য বিভাগের জন্য অন্য থ্রেড তৈরি হয়েছে, ব্যবহারকারীদের লগইন তথ্যের জন্য অন্য একটি)
  • সুতরাং, 1 প্রোগ্রামে 1 বা বহু কার্যকর করার থ্রেড থাকতে পারে
  • 1 প্রক্রিয়াটি হ'ল thread(s)+allocated memory resources by OS (গাদা, নিবন্ধন, স্ট্যাক, শ্রেণি মেমরি)

2
আমি মনে করি এটি কম্পিউটার বিজ্ঞান বিশ্বে নিখুঁত উত্তর।
sofs1

1
এই উত্তরটি গ্রহণযোগ্য হওয়া উচিত, উপরের এবং নীচের দর্শনের নয়
ইউজেন সানিক

10

সংক্ষিপ্ত আকার => যখন একাধিক কাজ ভাগ করে নেওয়া সংস্থানগুলির সাথে ওভারল্যাপিং সময় সময়কালে সম্পাদিত হয় (সম্ভাব্যভাবে সংস্থানগুলি সম্পদের ব্যবহার সর্বাধিকীকরণ করা হয়)।

সমান্তরাল => যখন একক কাজ একাধিক সাধারণ স্বতন্ত্র সাব-টাস্কে বিভক্ত হয় যা একই সাথে সম্পাদন করা যায় can


ওভারল্যাপিং প্রসেসিংয়ের চেহারা দেওয়ার জন্য মাল্টি-টাস্ক (টাইম স্লাইস) এমন একক-কোর প্রসেসর সিস্টেমটিকে আপনি কীভাবে বর্ণনা করবেন? ওভারল্যাপিং সময়সীমায় সম্মতিটিকে নির্বাহ হিসাবে সংজ্ঞায়িত করা হলে এতে এই প্রক্রিয়াজাতকরণ অন্তর্ভুক্ত থাকে। আপনি একযোগে কার্যকর হওয়ার বর্ণনা দিয়েছেন যা এটি আপনার সম্মতি সংজ্ঞা অনুসারে বাদ দেয় exc
একারলন

9

এটিকে সার্ভিসিং সারি হিসাবে মনে করুন যেখানে সার্ভার কেবল একটি কাতারে প্রথম পদে কাজ করতে পারে।

1 সার্ভার, 1 টি কাজের সারি (5 টি চাকরি সহ) -> কোনও চুক্তি নয়, কোনও সমান্তরালতা নেই (কেবলমাত্র একটি কাজ শেষ করার জন্য পরিবেশন করা হচ্ছে, সারিতে পরবর্তী কাজটি সার্ভিসড কাজ শেষ হওয়া পর্যন্ত অপেক্ষা করতে হবে এবং অন্য কোনও সার্ভার নেই) এটি পরিষেবা)

1 সার্ভার, 2 বা তারও বেশি আলাদা কাতারে (প্রতি সারিতে 5 টি চাকরি সহ) -> সম্মতি (যেহেতু সার্ভারটি 1 ম কাজের সাথে সারিতে সমান বা ভারিত) ভাগ করে নিচ্ছে, এখনও কোনও তাত্ক্ষণিকভাবে কোনও সমান্তরালতা নেই, কেবলমাত্র একটি এবং কেবল চাকরী পরিবেশন করা হচ্ছে

2 বা ততোধিক সার্ভার, একটি ক্যু -> সমান্তরালতা (একই কাজ তাত্ক্ষণিকভাবে 2 টি কাজ করা হয়েছে) তবে কোনও সন্ধিহীনতা নেই (সার্ভার সময় ভাগ করে নিচ্ছে না, 3 য় কাজটি সার্ভারের একটি সম্পূর্ণ না হওয়া পর্যন্ত অপেক্ষা করতে হবে))

2 বা ততোধিক সার্ভার, 2 বা ততোধিক পৃথক সারিতে -> একত্রীকরণ এবং সমান্তরালতা

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

সমান্তরালভাবে চলতে পারে এমন আরও অনেক সিপিইউ, সার্ভার, লোক ইত্যাদি দিয়ে সমান্তরালতা অর্জন করা হয়।

মনে রাখবেন, যদি সংস্থানগুলি ভাগ করা হয় তবে খাঁটি সমান্তরালতা অর্জন করা যায় না, তবে এখান থেকেই একযোগে এটির সর্বোত্তম ব্যবহারিক ব্যবহার হবে, অন্য একটি কাজ গ্রহণ করা দরকার যা সেই সংস্থার প্রয়োজন হয় না।


7

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

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

সমান্তরালতা সম্পর্কে আরও কিছু বিশদ :

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

প্রোগ্রামাররা সমান্তরালতা প্রকাশ করতে ব্যবহার করেন এমন প্রচুর নিদর্শন এবং ফ্রেমওয়ার্ক রয়েছে: পাইপলাইন, টাস্ক পুল, ডেটা স্ট্রাকচারের সামগ্রিক ক্রিয়াকলাপ ("সমান্তরাল অ্যারে")।

ইন্টারঅ্যাক্টিভিটি সম্পর্কে আরও কিছু বিশদ :

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

নির্ভরযোগ্য সফ্টওয়্যারটির ভালবাসার জন্য, দয়া করে থ্রেড ব্যবহার করবেন না যদি আপনি যা যাচ্ছেন তা ইন্টারঅ্যাক্টিভিটি হয়।

Curmudgeonliness

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


6

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

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

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

আসুন 9 টি বাচ্চা সহ একটি খেলা চিত্রিত করি। যদি আমরা এগুলিকে একটি শৃঙ্খলা হিসাবে নিষ্পত্তি করি, প্রথমে একটি বার্তা দিন এবং শেষে তা পান, আমাদের একটি সিরিয়াল যোগাযোগ হবে। আরও সংখ্যক শব্দ বার্তাটি রচনা করে, যোগাযোগ ইউনিটির ক্রমযুক্ত।

I like ice-cream so much. > X > X > X > X > X > X > X > X > X > ....

এটি সিরিয়াল অবকাঠামোতে পুনরুত্পাত একটি ক্রমিক প্রক্রিয়া

এখন, আসুন আমরা বাচ্চাদের 3 টি গ্রুপে বিভক্ত করার জন্য চিত্রটি তৈরি করি আমরা বাক্যাংশটি তিন ভাগে বিভক্ত করি, প্রথমটি আমাদের বামে রেখার বাচ্চাকে, দ্বিতীয়টি কেন্দ্রের লাইনের সন্তানের কাছে করি etc.

I like ice-cream so much. > I like    > X > X > X > .... > ....
                          > ice-cream > X > X > X > ....
                          > so much   > X > X > X > ....

এটি একটি সমান্তরাল পরিকাঠামোতে পুনরুত্পাত একটি ক্রমিক প্রক্রিয়া (এখনও আংশিকভাবে সিরিয়ালযুক্ত যদিও)।

উভয় ক্ষেত্রেই, মনে করুন বাচ্চাদের মধ্যে একটি নিখুঁত যোগাযোগ রয়েছে, ফলাফলটি আগেই নির্ধারিত হয়।

যদি এমন অন্য ব্যক্তিও থাকে যা আপনার সাথে একই সাথে প্রথম সন্তানের সাথে কথা বলে, তবে আমাদের একযোগে প্রক্রিয়া হবে । কোন প্রক্রিয়াটি অবকাঠামো দ্বারা বিবেচিত হবে তা আমরা জানি না, সুতরাং চূড়ান্ত ফলাফলটি আগেই নির্ধারিত নয়


+1 আকর্ষণীয়। একটি সংজ্ঞায়নের ক্ষেত্রে, বর্তমানে গৃহীত উত্তর অনুসারে সমবর্তী মানে ওভারল্যাপিং সময় সময়কালে মৃত্যুদন্ড কার্যকর করা প্রয়োজন, একইসাথে একই সাথে নয় (যা সমান্তরাল হবে)। ইলেক্ট্রনিক্সে আপনি কীভাবে এমন সার্কিটগুলি বর্ণনা করেন যা একই সাথে ঘটে যাওয়া জিনিসের চেহারা দেওয়ার জন্য ডিজাইন করা হয়েছিল তবে কেবল খুব দ্রুত স্যুইচ করছে। আপনার আইসক্রিম উপমা চালিয়ে যেতে: আমি আইসক্রিমটি অনেক পছন্দ করি> শিশু এ 1 আমি পছন্দ করি> শিশু বি 1 আইসক্রিম> চাইল্ড সি 1 এত বেশি> চাইল্ড এ 2 পছন্দ করি> চাইল্ড বি 2 আইসক্রিম <চাইল্ড সি 2 এত বেশি ...
অ্যাকারলন

আমি এখানে এটি প্রথম দেখেছি: s1l3n0.blogspot.com/2013/04/…
ফ্র্যাঙ্কএইচবি

হ্যাঁ, আমি আমার ব্যক্তিগত ব্লগ-নোটগুলির একটিতে আমার উত্তরটি কিছুটা পরিমার্জন / প্রসারিত করেছি। ;)
s1l3n0

5

সমান্তরালতা সমান্তরালতার সাধারণ রূপ। উদাহরণস্বরূপ, সমান্তরাল প্রোগ্রামকে সমবর্তী বলা যেতে পারে তবে বিপরীতটি সত্য নয়।

  1. একক প্রসেসরে (একাধিক থ্রেড, শিডিয়ুলার বা থ্রেড-পুল দ্বারা পরিচালিত) একযোগে সম্পাদন সম্ভব

  2. একক প্রসেসরের উপর নয় তবে একাধিক প্রসেসরের ক্ষেত্রে সমান্তরাল সম্পাদন সম্ভব। (প্রসেসর প্রতি এক প্রক্রিয়া)

  3. ডিস্ট্রিবিউটেড কম্পিউটিংও একটি সম্পর্কিত বিষয় এবং এটিকে সমবর্তী কম্পিউটারিংও বলা যেতে পারে তবে বিপরীতটি সমান্তরালতার মতো সত্য নয়।

বিশদ জন্য সমঝোতা প্রোগ্রামিং এর এই গবেষণা কাগজ ধারণাগুলি পড়ুন


5

আমি অন্য একটি উত্তর থেকে এই গ্রাফিকাল উপস্থাপনাটি সত্যই পছন্দ করেছি - আমি মনে করি এটি উপরের উত্তরের চেয়ে অনেক উত্তরের চেয়ে প্রশ্নের উত্তর দেয়

সমান্তরালতা বনাম কনক্যুরঞ্জি যখন দুটি থ্রেড সমান্তরালভাবে চলতে থাকে, তখন উভয়ই একই সময়ে চলতে থাকে। উদাহরণস্বরূপ, যদি আমাদের দুটি এবং থ্রেড থাকে, এবং এ, বি, তবে তাদের সমান্তরাল সম্পাদনটি এর মতো দেখাবে:

সিপিইউ 1: এ ------------------------->

সিপিইউ 2: বি ------------------------->

যখন দুটি থ্রেড একই সাথে চলমান থাকে তখন তাদের সম্পাদন ওভারল্যাপ হয়। ওভারল্যাপিং দুটি উপায়ে যেকোন একটিতে ঘটতে পারে: হয় থ্রেডগুলি একই সময়ে কার্যকর করা হয় (যেমন উপরে সমান্তরালভাবে), বা তাদের মৃত্যুদণ্ডগুলি প্রসেসরের উপর ইন্টারলিভ করা হচ্ছে, যেমন:

সিপিইউ 1: এ -----------> বি ----------> এ -----------> বি -------- ->

সুতরাং, আমাদের উদ্দেশ্যগুলির জন্য, সমান্তরালতাটিকে সম্মতির একটি বিশেষ ক্ষেত্রে হিসাবে ভাবা যেতে পারে

সূত্র: এখানে আরও একটি উত্তর

আশা করি এইটি কাজ করবে.


4

আমি এই প্রশ্নের পল বাচারের উত্তরটি সত্যিই পছন্দ করি (সে সেভেন কনকুরન્સી মডেলগুলির সাত সপ্তাহে লেখক ):

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


3

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

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


3

যখন একাধিক জিনিস অগ্রগতিতে থাকে তখন "কনকুরન્સી" হয় ।

"সমান্তরালতা" হ'ল যখন একই সময়ে একই সাথে সামনের জিনিসগুলি অগ্রগতি হয়


সমান্তরালতা ছাড়াই সমাবর্তনের উদাহরণ:

  • একক কোরতে একাধিক থ্রেড।
  • একটি Win32 বার্তা সারিতে একাধিক বার্তা।
  • SqlDataReaderএকটি মার্স সংযোগে একাধিক গুলি ।
  • ব্রাউজার ট্যাবে একাধিক জাভাস্ক্রিপ্ট প্রতিশ্রুতি দেয়

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

সুতরাং আপনি সেখানে যান। বিশ্বটি বরাবরের মতো অগোছালো;)


3

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

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

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

আশাকরি এটা সাহায্য করবে!


3

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

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

আমার উত্তর থেকে অনুলিপি করা হয়েছে: https://stackoverflow.com/a/3982782


2

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

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


এটি স্বীকৃত উত্তর আইএমও হওয়া উচিত কারণ এটি দুটি পদটির সারমর্মকে ধারণ করে।
মিচিড

2

(আমি এই ধরনের একটি মৌলিক প্রশ্ন বছরের পর বছর সঠিকভাবে এবং ঝরঝরে সমাধান করা হয় না যথেষ্ট অবাক ...)

সংক্ষেপে, উভয় সম্মতি এবং সমান্তরালতা কম্পিউটিংয়ের বৈশিষ্ট্য ।

পার্থক্য হিসাবে, রবার্ট হার্পার থেকে ব্যাখ্যা এখানে :

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

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

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

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


2

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

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

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

অন্য কথায়, সমান্তরালতা হয় যখন একই আচরণ একই সাথে সঞ্চালিত হয়। একসাথে অর্থ একই সময়ে, তবে অগত্যা একই আচরণ নয়। সমান্তরাল হ'ল এক বিশেষ ধরণের সম্মিলন যেখানে একই জিনিস একই সাথে ঘটছে।

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

গ্রেগরি অ্যান্ড্রুজের কাজ এটির উপরে একটি শীর্ষ পাঠ্যপুস্তক: মাল্টিথ্রেড, সমান্তরাল এবং বিতরণ প্রোগ্রামিং।


1

দুর্দান্ত, আমি কী বুঝি তা প্রদর্শনের জন্য একটি পরিস্থিতি দেখি। ধরুন এখানে 3 টি বাচ্চা রয়েছে যার নাম রয়েছে: A, B, C. A এবং B টক, সি শুনুন। এ এবং বি এর জন্য এগুলি সমান্তরাল: ক: আমি এ। বি: আমি বি।

তবে সি এর জন্য, তাঁর মস্তিস্ককে এ এবং বি শোনার জন্য একযোগে প্রক্রিয়া করা উচিত, এটি হতে পারে: আমি আইএ, বি।


1

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

সমান্তরালতা মানে তারা আক্ষরিকভাবে সমান্তরালে চলমান। সুতরাং সেই ক্ষেত্রে তিনটিই একই সাথে চলতে হবে।


1

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

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

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.