আমি সম্প্রতি লক্ষ্য করেছি যে অজগর কাজ করার জন্য একবারে একটি কোর ব্যবহার করে। এটিকে সমস্ত সংস্থান (দ্বিতীয় কোর) ব্যবহার করার জন্য কি কোনও উপায়, সম্ভবত বিশেষ বিল্ড বা কমান্ড রয়েছে?
আমি সম্প্রতি লক্ষ্য করেছি যে অজগর কাজ করার জন্য একবারে একটি কোর ব্যবহার করে। এটিকে সমস্ত সংস্থান (দ্বিতীয় কোর) ব্যবহার করার জন্য কি কোনও উপায়, সম্ভবত বিশেষ বিল্ড বা কমান্ড রয়েছে?
উত্তর:
পাইথন স্ক্রিপ্টের মধ্যে একাধিক কোরগুলির সুবিধা নিতে আপনি সাব-প্রসেসগুলি ব্যবহার করতে পারেন, যাতে বেশ কয়েকটি কার্য সমান্তরালভাবে চলতে পারে। তবে আপনি একক টাস্ককে কয়েকটি কোরকে বিভক্ত করতে পারবেন না। এই FAQ- এর একটি বিশদ বিবরণ দেখুন: আর্কজিআইএস 10 মাল্টি-কোর প্রসেসর এবং / অথবা 64-বিট অপারেটিং সিস্টেমগুলিকে সমর্থন করে?
যদি আপনি একটি পাকা পাইথন ব্যবহারকারী হন তবে আপনি ডেথ সামিট ২০১৪ থেকে এই ব্যবহারকারী উপস্থাপনায় ব্যাখ্যা করা পদ্ধতির বিষয়ে আগ্রহী হতে পারেন, যাকে পাইথন মাল্টিপ্রসেসিং এবং সমালোচনামূলক পাথ পদ্ধতি ব্যবহার করে সমান্তরাল জিওপ্রসেসিং বলা হয় , তবুও এটি আপনাকে কয়েকটি কোর ব্যবহার করার অনুমতি দেয় না একই কাজ।
অন্যথায় আপনাকে মাল্টি-থ্রেডিং কীভাবে সম্পাদন করে তা পরীক্ষা করার জন্য এই বছরের শেষের দিকে আর্কজিআইএস প্রো (সম্পূর্ণ 64 বিট অ্যাপ্লিকেশন) অপেক্ষা করতে হবে ... (বা এখনই বিটা চেষ্টা করুন)
কিছু উল্লিখিত হিসাবে, আর্কজিআইএস ডেস্কটপে মাল্টিপ্রসেসিংয়ের জন্য কোনও সমর্থন নেই। কোনও ডেস্কটপ পরিবেশে জিআইএস ডেটাসেটগুলি প্রক্রিয়াকরণের বিষয়ে কথা বলার সময়, আমি এটি চেষ্টা করার চেষ্টা করছি যে আমি কোনও বৃহত ওয়ার্কফ্লোকে ছোট খণ্ডে বিভক্ত করতে পারি যা একসাথে একাধিক কোর লোড করে গণনা করা হবে। প্রায় প্রতিটি ক্ষেত্রেই পৃথকভাবে তদন্ত করা উচিত যেহেতু জিপি সরঞ্জামগুলির আচরণগুলি উল্লেখযোগ্যভাবে পৃথক হতে পারে।
একটি সাধারণ গণিত সমস্যার সমাধান করার সময় কি করতে হবে তা ভেবে দেখুন। 1 থেকে 100 পর্যন্ত সমস্ত সংখ্যা গণনা করার দ্রুততম উপায় কী?
1) একের পর এক ফলাফলের সংমিশ্রণ করে এবং একে অপরের সাথে ক্রমবর্ধমান পরিমাণ যোগ করে (1 + 2 = 3, 3 + 3 = 6,6 + 4 = 10 এবং আরও)। একটি মূল কাজ এই কাজ করছে।
2) পূর্বে পৃথক মানগুলিতে মানগুলি বিভক্ত করুন এবং সেখানে মানগুলি প্রথমে যোগ করুন (1 থেকে 30, 31 থেকে 60 এবং 60 থেকে 100)। তিনটি কোর একই সাথে কাজ করবে (শেষ পদক্ষেপটি তিনটি মানের সমষ্টি হবে)।
যেহেতু বিভিন্ন জিপি সরঞ্জামগুলি বিভিন্ন বিগ-ও স্বরলিপি সহ বিভিন্ন অ্যালগরিদমের বাস্তবায়ন , তাই আপনাকে সম্ভবত বহুগুণ প্রক্রিয়াগুলি জমা দেওয়ার ক্ষেত্রে তাদের আলাদাভাবে যোগাযোগ করা প্রয়োজন।
পাইথনের মাল্টিপ্রসেসিং লাইব্রেরি কীভাবে কাজ করে তা শিখতে একটি ভাল সূচনা পয়েন্ট হবে । আমি বেশ ভারী ব্যবহার।
আমি আরও লক্ষ্য করেছি যে 64৪-বিট পাইথন ব্যবহার করে একটি কমান্ড লাইন থেকে পাইথন স্ক্রিপ্টগুলি চালানো সাধারণত দ্রুত চলমান হয় (আইডিইর রানের সাথে তুলনা করলেও এটি আপনার মেশিনে নাও হতে পারে)। পটভূমি জিওপ্রসেসিং 10.1 সালে চালু হয়েছিল, তবে 64 বিট পাইথন দিয়ে পাইথন স্ক্রিপ্টগুলি চালনার চেষ্টা করুন এবং দেখুন কীভাবে পারফরম্যান্স প্রভাবিত হচ্ছে।
আরকজিআইএস প্রো অন্য উত্তরে নামযুক্ত ডাউনলোডের জন্য বিটা 5 এ উপলব্ধ (মনে রাখবেন যে কোনও বাগ জমা দেওয়ার জন্য আপনাকে এসরি বিটা সম্প্রদায়ের একজন অংশীদার হতে হবে এবং প্রতিষ্ঠানের অ্যাকাউন্টের জন্য একটি আর্কজিআইএস অনলাইন অ্যাক্সেস রাখতে সক্ষম হবেন) প্রো চালান)।
পাইপাই হল পাইথনের একটি আনুগত্যযোগ্য সংস্করণ যা সিপিথনের ("স্ট্যান্ডার্ড" পাইথন) এর চেয়ে 4-5 গুণ দ্রুত গতিতে চলে।
যদি আপনি উত্স থেকে এটি তৈরি করতে যথেষ্ট সাহসী হন তবে একটি শাখা রয়েছে যা "একই প্রক্রিয়াতে সমান্তরালভাবে একাধিক স্বতন্ত্র সিপিইউ-ক্ষুধার্ত থ্রেড চালাতে পারে।" এর অর্থ আপনি কোনও কোড পুনরায় না লিখে মাল্টি-থ্রেডিংয়ের সুবিধা পান।
সরল উত্তর হ'ল না। ভাল উত্তর এটি নির্ভর করে।
সিপথন (সর্বাধিক ব্যবহৃত পাইথন) প্রয়োগের কারণে, আপনার পাইথনটি মাল্টিথ্রেডিংয়ের সুবিধা নিতে পারে না তা ধরে নেওয়া নিরাপদ। দেখা:
http://en.wikipedia.org/wiki/Global_Interpreter_Lock
https://wiki.python.org/moin/GlobalInterpreterLock
নোট করুন যে আইও জিআইএল প্রতিরোধী।
এখন আপনি এই সম্পর্কে কাজ করতে পারেন। অন্যরা যেমন উল্লেখ করেছে, আপনি উপ-প্রক্রিয়াগুলি ছড়িয়ে দিতে পারেন এবং মাল্টিপ্রসেসিং লাইব্রেরি আপনাকে সহায়তা করতে পারে।
আমি আরকিজিআইএস সমস্যাগুলি সমাধান করতে পারি না, তবে পাইথন ব্যবহার করে একাধিক টাস্কের প্রক্রিয়াজাতকরণ হিসাবে আপনি কি সেলারি (সেলারিপ্রজেক্ট.অর্গ) এর মতো কোনও টাস্ক ম্যানেজার হিসাবে বিবেচনা করেছেন? এর জন্য প্রয়োজন হবে যে আপনি বিভিন্ন প্রক্রিয়াজাতকরণ শনাক্ত করুন, বিতরণ করার জন্য এগুলিকে একজন "ম্যানেজার" এ জমা দিন, "কর্মী" চালান যা পরিচালকের কাছ থেকে কাজগুলি গ্রহণ করে, তাদের প্রক্রিয়াজাত করে এবং ফলাফলগুলি প্রতিবেদন করে।
এটি বাস্তবায়নের জন্য অ-তুচ্ছ, তবে অবিশ্বাস্য নমনীয়তা রয়েছে এবং আপনাকে প্রক্রিয়াজাতকরণের সক্ষমতা (যেমন, নিষ্কলঙ্কগুলি ব্যবহার করে) এর পুরো সুবিধা নিতে দেয়।