পাইথন ইন্টারপ্রেটার কেবল 12% সিপিইউ পাওয়ার ব্যবহার করে


26

আমি পাঠ্য বিশ্লেষণের জন্য উবুন্টুতে পাইথন ব্যবহার করছি। গুরুতর পরিমাণ কাজ সত্ত্বেও প্রোগ্রামটি সিপিইউ ব্যবহার করছে সিস্টেম মনিটরে প্রদর্শিত হিসাবে 12% এ ধারাবাহিকভাবে থাকে।

আমি থেকে প্রোগ্রামের অগ্রাধিকার পরিবর্তন Normalকরতে Very Highকিন্তু যে কোনো প্রভাব ছিল না।

আমার অজগর প্রোগ্রামটি পেতে পারে এমন পরিমাণ সিপিইউ ব্যবহার সীমিত করছে এবং আমি কীভাবে এটি পরিবর্তন করতে পারি, যাতে প্রোগ্রামটি আরও সিপিইউ শক্তি ব্যবহার করতে পারে?

উত্তর:


73

আমি ধরে নিলাম আপনার 8 টি ভার্চুয়াল কোর (সম্ভবত হাইপার-থ্রেডিং সহ কোয়াড-কোর) সহ একটি সিপিইউ আছে? এর অর্থ একটি সম্পূর্ণ লোড হওয়া সিপিইউ থ্রেড / ভার্চুয়াল কোর মোট লোডের সমান 12.5%।

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

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


এটি আসলে অনেক অর্থবোধ করে। হ্যাঁ আমি 4 কোরের (8 ভার্চুয়াল কোর) সাথে একটি কোয়াড-কোর করছি। Ty
ম্যাথিয়াস হারম্যান

9
@ মাথিয়াসহিরম্যান আপনি প্রতিটি সিপিইউ কত শতাংশ কাজ করছে তা দেখাতে আপনি একটি সিস্টেম মনিটর বিবেচনা করতে পারেন। আপনি 8 টির মধ্যে 1 টি সিপিইউ 100% তে দেখতে পেতেন। বিষয়টিতে এউতে একটি থ্রেড এখানে রয়েছে: উইন্ডোজ "গ্যাজেটস" সমতুল্য (ওয়াইফাই এবং সিপিইউ ব্যবহারের জন্য)?
WinEunuuchs2Unix

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

2
বা ব্যবহার করুন Jythonবা IronPython, যার একটি জিআইএল নেই।
25:44

19

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


5
iotopআইওয়েটের সাথে আবদ্ধ প্রোগ্রামগুলি পর্যবেক্ষণ করার চেষ্টা করুন
বিড়াল

1
অথবা কোডটি নিজেই সিঙ্ক্রোনাস এবং ব্লকিং।
জিডনার

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