পাইথনে সেরা প্রয়োগকারী মাল্টিপ্রসেসিং কীভাবে করবেন?



এই নিবন্ধটি আপনাকে পাইথনের একাধিক প্রসেসিংয়ের সাথে পরিচয় করিয়ে দেবে এবং প্রক্রিয়াধীনভাবে আপনাকে একটি প্রোগ্রাম্যাটিক প্রদর্শন প্রদর্শন করবে giving

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

নিম্নলিখিত পয়েন্টারগুলি এই নিবন্ধে কভার করা হবে,





জাভাতে অ্যাকশনালিস্টার কী

চলো আমরা শুরু করি,

পাইথনে মাল্টিপ্রসেসিং

মাল্টিপ্রসেসিং কী?

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



মাল্টিপ্রসেসিংয়ের প্রয়োজন

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

অন্যদিকে একটি মাল্টিপ্রসেসিং কম্পিউটারে একটি প্রসেসর থাকতে পারে যার পরিবর্তে এটির অভ্যন্তরে একাধিক কার্যকারী ইউনিট থাকে যার নাম স্বতন্ত্র কোর যা একই সাথে বিভিন্ন সময়ে বিভিন্ন স্বাধীনভাবে চালানোর ক্ষমতা রাখে। এটি কেবলমাত্র সিস্টেমের দক্ষতা বৃদ্ধি করে না তবে দীর্ঘ সময়ে সিস্টেমের রানটাইমকে উল্লেখযোগ্য পরিমাণে হ্রাস করে।



পাইথনে একটি মাল্টিপ্রসেসিং সিস্টেম দুটি ধরণের হতে পারে।

মাল্টি প্রসেসর সিস্টেম

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

মাল্টি-কোর প্রসেসর সিস্টেম

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

পাইথনে মাল্টিপ্রসেসিংয়ের জন্য কোড

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

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

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

উদাহরণ 1

# মাল্টিপ্রসেসিং মডিউল আমদানি মাল্টিপ্রসেসিং ডিএফ মুদ্রণ_কিউব (নম্ব): '' 'প্রদত্ত নাম্বার ঘনক মুদ্রণের জন্য ফাংশন' '' মুদ্রণ ('কিউব: {}'। ফর্ম্যাট (নাম * সংখ্যা * সংখ্যা)) ডিএফ প্রিন্ট_সকোয়ার (সংখ্যা): '' 'প্রদত্ত সংখ্যাটির স্কোয়ারটি মুদ্রণের জন্য ফাংশন' '' মুদ্রণ ('স্কোয়ার: {}'। ফর্ম্যাট (নাম * সংখ্যা)) যদি __name__ == '__main__': # তৈরির প্রক্রিয়া পি 1 = মাল্টিপ্রসেসিং P প্রসেস (লক্ষ্য = মুদ্রণ_স্কোয়ার, আরগস = (10,)) পি 2 = মাল্টিপ্রসেসিং.প্রসেস (টার্গেট = মুদ্রণ_ক्यूब, আরগস = (10,)) # আরম্ভের প্রক্রিয়া 1 পি 1.স্টার্ট () # প্রারম্ভিক প্রক্রিয়া 2 পি 2.স্টার্ট () # প্রক্রিয়া 1 শেষ হওয়া পর্যন্ত অপেক্ষা করুন p1 .জয়েন () # প্রক্রিয়া 2 শেষ হওয়া পর্যন্ত অপেক্ষা করুন p2.join () # উভয় প্রক্রিয়া মুদ্রণ সমাপ্ত ('সম্পন্ন!')

আউটপুট

স্কোয়ার: 100

কিউব: 1000

সম্পন্ন!

এখন আরও ভালভাবে বুঝতে এই প্রোগ্রামটি বিশ্লেষণ করা যাক।

  1. প্রথম পদক্ষেপটি মাল্টিপ্রসেসিং মডিউলটি আমদানি করা। এটি করার জন্য, নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করুন: মাল্টিপ্রসেসিং আমদানি করুন।

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

দ্রষ্টব্য: একটি প্রক্রিয়া কনস্ট্রাক্টরের একাধিক লক্ষ্য এবং তর্কগুলি গ্রহণ করার ক্ষমতা রয়েছে তবে উপরের উদাহরণে আমরা আমাদের প্রক্রিয়াটিকে কেবল দুটি লক্ষ্য এবং তর্কগুলি নীচে দেখানো হিসাবে নির্ধারিত করেছি।

পি 1 = মাল্টিপ্রসেসিং ro প্রসেস (লক্ষ্য = মুদ্রণ_স্কোয়ার, আরগস = (10,))

পি 2 = মাল্টিপ্রসেসিং ro প্রসেস (লক্ষ্য = মুদ্রণ_ক्यूब, আরগস = (10,))

  1. এখন প্রক্রিয়াটি তৈরি করা হয়েছে, আসুন এটি শুরু করার জন্য বাক্য গঠন লিখি।

p1.start ()

p2.start ()

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

p1.join ()

p2.join ()

আপনি একবার এই সিনট্যাক্সটি ইনপুট করে নিলে, দোভাষী তারপরে প্রোগ্রাম পি 1 কার্যকর হওয়া শেষ করবে এবং তারপরে প্রোগ্রাম পি 2 এ চলে যাবে।

এই ধারণাটি আরও বুঝতে, নীচে পাইথনে মাল্টিপ্রসেসিংয়ের জন্য আরেকটি উদাহরণ দেখুন।

উদাহরণ 2

# মাল্টিপ্রসেসিং মডিউল আমদানি মাল্টিপ্রসেসিং আমদানি ওএস ডিএফ কর্মী 1 (): # মুদ্রণ প্রক্রিয়া আইডি প্রিন্ট ('প্রক্রিয়া চলমান কর্মী আইডি 1: {}'। ফর্ম্যাট (os.getpid ())) ডিএফ কর্মী 2 (): # মুদ্রণ প্রক্রিয়া আইডি প্রিন্ট ('প্রক্রিয়া চলমান কর্মী আইডি 2: {}'। ফর্ম্যাট (os.getpid ())) যদি __name__ == '__main__': # মুদ্রণ মূল প্রোগ্রাম প্রক্রিয়া আইডি মুদ্রণ ('প্রধান প্রক্রিয়ার আইডি: {}'। ফর্ম্যাট (ওএস .getpid ()) # তৈরির প্রক্রিয়া পি 1 = মাল্টিপ্রসেসিং roপ্রসেস (টার্গেট = কর্মী 1) পি 2 = মাল্টিপ্রসেসিং Pপ্রসেস (লক্ষ্য = কর্মী 2) # প্রারম্ভিক প্রক্রিয়া p1.start () p2.start () # প্রসেস আইডি মুদ্রণ ('এর আইডি প্রক্রিয়া p1: {} '। ফর্ম্যাট (p1.pid)) মুদ্রণ (' প্রসেসের আইডি p2: {} '। ফর্ম্যাট (p2.pid)) # প্রক্রিয়া শেষ না হওয়া পর্যন্ত অপেক্ষা করুন p1.join () p2.join () # উভয় প্রক্রিয়া মুদ্রণ সমাপ্ত ('উভয় প্রক্রিয়া শেষ হয়েছে!') # প্রক্রিয়াগুলি জীবিত প্রিন্ট কিনা তা পরীক্ষা করে দেখুন ('প্রক্রিয়া পি 1 জীবিত রয়েছে: {}'। ফর্ম্যাট (p1.is_alive ())) মুদ্রণ ('প্রক্রিয়া p2 জীবিত: {Process '। ফর্ম্যাট (p2.is_alive ()))

আউটপুট

প্রধান প্রক্রিয়ার আইডি: 18938

প্রক্রিয়া চলমান কর্মীর আইডি 1: 18939

পাইথ পাইথনে কী করে?

প্রক্রিয়া চলমান কর্মীর আইডি 2: 18940

প্রক্রিয়া আইডি পি 1: 18939

প্রক্রিয়া আইডি পি 2: 18940

উভয় প্রক্রিয়া শেষ হয়েছে কার্যকর!

প্রক্রিয়া পি 1 জীবিত: মিথ্যা

প্রক্রিয়া পি 2 জীবিত: মিথ্যা

উপরের প্রোগ্রামে লক্ষ্য করুন যে p1 এবং p2 উভয়ই তাদের স্বতন্ত্র স্মৃতি থেকে স্বতন্ত্রভাবে চালিত হয়। যতক্ষণ না উভয়ই কার্য সম্পাদন শেষ করে, প্রোগ্রামটি সমাপ্ত হয়।

এটি পাইথনে মাল্টিপ্রসেসিং সম্পর্কিত এই নিবন্ধের শেষে নিয়ে এসেছিল

পাইথনের বিভিন্ন অ্যাপ্লিকেশন সহ গভীরতর জ্ঞান অর্জন করতে, আপনি এটি করতে পারেন 24/7 সমর্থন এবং আজীবন অ্যাক্সেস সহ লাইভ অনলাইন প্রশিক্ষণের জন্য।

আমাদের জন্য একটি প্রশ্ন আছে? নিবন্ধের মন্তব্য বিভাগে তাদের উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব।