"সমবর্তী" এবং "সমান্তরাল" প্রয়োগের মধ্যে পার্থক্য?


107

সমবর্তী এবং সমান্তরাল সম্পাদনের শর্তগুলির মধ্যে পার্থক্য কী ? আমি এই পার্থক্যটি বুঝতে পারি না।

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

এছাড়াও, আমরা যদি অ্যাসিক্রোনাস আই / ও এর মতো কিছু বিবেচনা করি, তবে আমরা কি সমঝোতা বা সমান্তরালতা নিয়ে কাজ করছি?


27
সংক্ষেপে - একযোগে: একই সাথে অনেকগুলি বিভিন্ন ক্রিয়াকলাপ ঘটে। সমান্তরাল: একই ক্রিয়াকলাপটি একবারে ছোট ছোট বিটগুলিতে বিভক্ত।
ওডেড

3
@ ওহে, আমি এই শব্দগুলির অর্থ কী তা বুঝতে পেরেছি, তবে এর অর্থগুলি বোঝাতে আমার সমস্যা হচ্ছে। আপনার কি কোন দৃ concrete় উদাহরণ আছে?
blz

7
@ ওহেড, আমি সত্যিই আপনার সাথে একমত নই, তাদের সংজ্ঞা (কোথাও সাধারণ বা প্রোগ্রামিংয়ের ক্ষেত্রে প্রয়োগ করা) কোথাও "সমবর্তী" এবং "সমান্তরাল" এর ক্রিয়াকলাপগুলির সংখ্যা বা "আকার" সম্পর্কে কিছু উল্লেখ করেনি।
শিবান ড্রাগন

2
@ সংযুক্ত যখন আপনি "ছোট বিট" বলেছিলেন ded
অব্নার শাহর-কাশতান

2
@ ওবেদ: হ্যাঁ, তবে এটি আপনার এবং শিবনড্রাগনের মধ্যে ভুল বোঝাবুঝির মূল বলে মনে হচ্ছে।
অব্নার শাহর-কাশতান

উত্তর:


97

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

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

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


4
কেস বি কীভাবে অ্যাসিঙ্ক আইও কাজ করে, না?
blz

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

1
সর্বোত্তম ব্যাখ্যার
হাতছাড়া

@ মেসনওহিলার: আমাদের যদি মাত্র ১ টি সিপিইউ থাকে, তবে আমাদের কেবল কনকুরেন্সি থাকতে পারে, কোনও সমান্তরালতা নেই। রাইট? সমান্তরালতা আরও বেশি সিপিইউ অর্জন করতে পারে by রাইট? এবং যদি এটি সঠিক হয় এবং যদি আমাদের কেবল 1 টি সিপিইউ থাকে তবে জাভা 8 এর স্ট্রিমগুলি কোনও উপকারে আসে না।
আনিস মিত্তাল

1
ঠিক প্রথম কয়েকটি পয়েন্ট সম্পর্কে। শেষের হিসাবে, সমান্তরালতা কি কেবল স্ট্রিম থেকে প্রাপ্ত উপকার? আমি জাভা দেব নই, তবে আমার ধারণাটি হল যে জাভা স্ট্রিমগুলি প্রায় লিনকিউ এর সমতুল্য, এবং এর প্রকাশ এবং বিকাশের স্বাচ্ছন্দ্যে আসল উপকারিতা রয়েছে।
ম্যাসন হুইলার

37

দুটি ধারণা সম্পর্কিত, কিন্তু পৃথক।

কনকুরেন্সির অর্থ হ'ল দুই বা ততোধিক গণনা একই সময়ের ফ্রেমের মধ্যে ঘটে এবং সাধারণত তাদের মধ্যে কিছুটা নির্ভরতা থাকে।

সমান্তরালতা মানে দুই বা ততোধিক গণনা একই সাথে ঘটে।

সাহসের সাথে বলতে গেলে, একত্রে একটি সমস্যা বর্ণনা করা হয় (দুটি জিনিস এক সাথে হওয়া দরকার), যখন সমান্তরালতা একটি সমাধান বর্ণনা করে (দুটি প্রসেসরের কোর দুটি জিনিস একই সাথে কার্যকর করতে ব্যবহৃত হয়)।

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

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


8
আপনি বলছেন যে যে Concurrency means that two or more calculations happen within the same time frame, and there is usually some sort of dependency between them.ব্যবহারকারী যে উত্তর গৃহীত উত্তর বলেছেন Concurrency means, essentially, that task A and task B both need to happen independently of each other। তাহলে উপসংহারটি কী?
এনবিরো 12

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

4
"একই সময়ের ফ্রেমের মধ্যে" দ্বারা, আমি অগত্যা "একইসাথে" বোঝাতে চাই না, কেবলমাত্র সামগ্রিক সময় ফ্রেমগুলির সময় সেগুলি ওভারল্যাপ হয়। এটি সমান্তরালে অর্জন করা যেতে পারে (উদাহরণস্বরূপ দুটি প্রসেসরের কোর, প্রতিটি কার্য সম্পাদনকারী প্রতিটি) তবে এটি কার্যকরভাবে সম্পূর্ণরূপে সিরিয়ালাইজ করেও অর্জন করা যেতে পারে (প্রথমে টাস্ক 1 করুন, ফলাফলটি মনে রাখুন, তারপরে টাস্ক 2 করুন, তারপরে উভয়কে রিপোর্ট করুন) , বা উভয় আপ কেটে এবং খণ্ডগুলি ইন্টারলিভ করে। দ্বিতীয়টি জেএস কী করে।
tmadmers

9

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


কনক্যুরঞ্জি: এমন একটি সিস্টেমের সম্পত্তি যা চূড়ান্ত ফলাফল 1 2 এর প্রভাব ছাড়াই প্রোগ্রামের ইউনিট, অ্যালগরিদম বা সমস্যাটিকে আউট-অফ-অর্ডার বা আংশিক ক্রমে কার্যকর করতে সক্ষম করে ।

এর একটি সাধারণ উদাহরণ ক্রমাগত সংযোজন:

0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45

সংযোজনের ক্রমবর্ধমান সম্পত্তির কারণে এগুলির ক্রম যথার্থতা প্রভাবিত না করে পুনরায় সাজানো যেতে পারে; নিম্নলিখিত ব্যবস্থা একই উত্তর হিসাবে ফলাফল:

(1 + 9) + (2 + 8) + (3 + 7) + (4 + 6) + 5 + 0 = 45

এখানে আমি সংখ্যাগুলি জোড়ায় বিভক্ত করেছি যা 10 এর সমষ্টি হবে, আমার মাথার সঠিক উত্তরটি পৌঁছানো আমার পক্ষে আরও সহজ করে তুলেছে।

সমান্তরাল কম্পিউটিং: এক ধরণের গণনা যেখানে বহু গণনা বা প্রক্রিয়া সম্পাদন একই সাথে সঞ্চালিত হয় 3 4 । সুতরাং সমান্তরাল কম্পিউটিং প্রোগ্রামের একাধিক ইউনিট, অ্যালগরিদম বা একসাথে সমস্যা সম্পাদন করতে সম্মতিযুক্ত সম্পত্তিটি উপস্থাপন করে।

একটানা সংযোজনের উদাহরণ দিয়ে অবিরত, আমরা সমান্তরালভাবে যোগফলের বিভিন্ন অংশ কার্যকর করতে পারি:

Execution unit 1:  0 + 1 + 2 + 3 + 4 = 10
Execution unit 2:  5 + 6 + 7 + 8 + 9 = 35

তারপরে শেষে আমরা প্রতিটি কর্মীর কাছ থেকে ফলাফলগুলি সংযুক্ত করি 10 + 35 = 45

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

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


বিশৃঙ্খলা

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

  • সমবর্তী: একযোগে বা পাশাপাশি পাশাপাশি 5 উপস্থিত বা উপস্থিত ।
  • কনক্যুরঞ্জি: একই সাথে দু'বার বা ততোধিক ঘটনা বা পরিস্থিতি ঘটছে বা বিদ্যমান তা গুগলে অনুসন্ধান করা থেকে: "সংজ্ঞায়িত: একমত হওয়া"

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


ব্যক্তিগত সুপারিশ

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

আমি তাই সমান্তরাল হিসাবে একাধিক কোর একটি জেট ইঞ্জিন অনুকরণ বর্ণনা করব।

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


6

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

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

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


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

3

সমান্তরাল প্রক্রিয়াকরণ সমবর্তী প্রক্রিয়াজাতকরণের একটি উপসেট।

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

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


0

টিডামারের বক্তব্য কাছে আসে, বাকিগুলি বিন্দু বাদে। তিনি বলেন:

"সাহস করে বলুন, একমত হওয়া একটি সমস্যা বর্ণনা করে (দুটি জিনিস একসাথে হওয়া দরকার), যখন সমান্তরালতা একটি সমাধান বর্ণনা করে (দুটি প্রসেসরের কোর দুটি জিনিস এক সাথে কার্যকর করতে ব্যবহৃত হয়")

আসুন শুধু শব্দগুলি বিশ্লেষণ করা যাক।

বর্তমান অর্থ এখন ঘটছে, প্রকৃত, এই মুহুর্তে প্রাসঙ্গিক। কন মানে হ'ল বিপরীত, পাল্টা, সাথে প্রান্তিককরণ নয়।

সমান্তরাল অর্থ একই পথে একই পথের ক্রসিং ছাড়াই, প্রত্যেকের পথে না গিয়ে।

সুতরাং, একত্রে একই সংস্থানটির প্রতিযোগিতা বোঝা যাচ্ছে। সমান্তরালতা হয় না। সমান্তরাল প্রক্রিয়াগুলি একই সংস্থান ব্যবহার করতে পারে তবে এটি কোনও সমস্যা হিসাবে বিবেচিত হয় না, এটি কোনও সমস্যা নয়। সম্মতিতে, এটি মোকাবেলা করা একটি বিষয়।


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

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

@ কোন বোধগম্য এই ক্ষেত্রে (কন-কারেন্ট) এক সাথে চলমান অর্থ আরও ভাল ফিট বলে মনে হচ্ছে। যেহেতু কোনও প্রো-কারেন্ট নেই ... ডাচ ভাষায়, সমবর্তী একটি বিশেষ্য অর্থ প্রতিযোগী। আপনার চারপাশে ঘোরাফেরা করা সাধারণ rant এটি পত্রিকাও। এমন কিছু যা এখন সক্রিয়। "রেইকিং কুরেন্ট" একটি চলমান অ্যাকাউন্ট। আমি মনে করি কনক্যুরન્સી বোঝায় কন (!) বিচ্ছিন্ন। একই সংস্থান উপর একটি লড়াই। একই জায়গায় চলছে। হতে পারে ডাচ অর্থের (প্রতিযোগী) কারণে।
মার্টিন মাট

ডিজকস্ট্রা কী বলবে, আমি অবাক হই?

-1

স্পষ্টতই, পদগুলি বিভিন্ন সংস্কৃতিতে আলাদাভাবে ব্যবহৃত হয়।

আমার বোধগম্যতা নিম্নলিখিত:

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

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

সাধারণত, সমান্তরাল গণনার কাজের ঘোড়াটি সমান্তরালতা সম্পর্কে অবগত নয় বা এটি যত্ন করে না। সমবর্তী কাজগুলি প্রায়শই আন্তঃ-প্রক্রিয়া বা আন্ত-থ্রেড যোগাযোগগুলিকে স্পষ্টভাবে নিয়োগ করে - যেমন সীমাবদ্ধতা ব্লক করা, সিঙ্ক্রোনাইজেশন এবং লকিং প্রক্রিয়া।


-1

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

ম্যাসন হুইলার এবং পেঙ্গুইন একই উত্তর দিয়েছেন। টাস্ক স্যুইচিং এবং বা মাল্টিকোর সহ একটি কোর সমবর্তী, কঠোরভাবে মাল্টিকোর = সমান্তরাল।

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

উদাহরণস্বরূপ, যখন আমি মাল্টিথ্রেডেড সি ++ লিখি কখনও কখনও আমি কয়টি কোর পাব তা নিশ্চিত নই, যদিও এখানে বর্ণিত হিসাবে আপনি কতগুলি কোর পাবেন তা দাবি করার বিভিন্ন উপায় রয়েছে তবে https://stackoverflow.com/questions/2166425/ কিভাবে-কাঠামো-এসি-অ্যাপ্লিকেশন-টু-ব্যবহার-এ-মাল্টিকোর-প্রসেসর । স্পার্কে আমি কেবল মানচিত্র করি এবং অপারেশনগুলি হ্রাস করি এবং জেভিএম কীভাবে তাদের হার্ডওয়্যার স্তরে পরিচালনা করছে সে সম্পর্কে কোনও ধারণা নেই। জিপিইউতে আমার মনে হয়প্রতিটি থ্রেড এটির নিজস্ব সাধারণ প্রসেসরের জন্য বরাদ্দ করা হয়, তবে যেখানেই সমস্যা দেখা দিতে পারে আমি সর্বদা আমার থ্রেডগুলি সিঙ্ক করি। এমপিআই দিয়ে মেশিনের মধ্যে যোগাযোগ স্পষ্টভাবে নির্দিষ্ট করা হয়, তবে আমরা একক কোরতে একাধিক মেশিনে চলমান ফাংশনগুলি ইন্টারলেভ করতে পারি এবং উপযুক্ত একক থ্রেডেড ফাংশনের মাধ্যমে ফলাফলগুলি একত্রিত করতে পারি। এবং যদি আমরা এমপিআই ব্যবহার করি তবে একগুচ্ছ একক কোর মেশিনগুলির সমন্বয় করতে, প্রত্যেকে মাল্টিথ্রেডিং সহ? কি পার্থক্য এটা করতে না? আমি কিছুই বলব না। এটিকে সমস্ত "সমান্তরাল" বলুন এবং এটি দিয়ে কাজ করুন।


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