تمكين إنتل توازي في جافا
-
21-12-2019 - |
سؤال
لدي برنامج متعدد مؤشرات الترابط يعمل على إنتل رباعي النواة 7.عندما أعدم Runtime.getRuntime.availableProcessors()
, ، أحصل على 8 ، وأنا أعلم أن التوازي هو متاح على وحدة المعالجة المركزية هذه.
ومع ذلك ، عندما أقوم بإنشاء مؤشرات ترابط ، تكون مستويات وحدة المعالجة المركزية الخاصة بي بنسبة 100 ٪ (أي.غير صفرية) لـ 4 مؤشرات ترابط ، مما يعني أن 4 مؤشرات ترابط غير مستخدمة.هل هناك أي طريقة لتمكين توازي في جافا?
المحلول
يتم تمكين توازي من خلال حقيقة أن جميع جفمس الحديثة استخدام المواضيع الأصلية ، وبالتالي هذا هو إعداد تكوين نظام التشغيل/وحدة المعالجة المركزية.
ومع ذلك توازي لا تعطيك النوى إضافية ، فإنه يسمح بالوقت غرامة الحبيبات من وحدات المعالجة المركزية الأربعة التي لديك.وهذا هو ، في حين توقف موضوع واحد ، ويقول انتظار صفحة من الذاكرة ليتم نقلها إلى ذاكرة التخزين المؤقت ثم موضوع آخر يمكن انقضاض في والاستفادة من أجزاء من وحدة المعالجة المركزية.يضيف حوالي 10 ٪ إضافية إلى حجم نواة وحدة المعالجة المركزية بسبب متطلبات الجدولة الأكثر تعقيدا ولا يفيد جميع التطبيقات.
إذا كنت قد بلغوا الحد الاقصى وحدات المعالجة المركزية الأربعة مع أربعة المواضيع ، ثم أن من الممكن مع توازي تشغيل أو إيقاف تشغيله.هذا يعني فقط أن هذه الخيوط تعمل ساخنة ، دون عرقلة الكثير.
السبب في أن جافا تقارير وحدة المعالجة المركزية 8 الأساسية ، بدلا من 4 لأن نظام التشغيل يقول جافا أن وحدة المعالجة المركزية لديها 8 النوى.يعتقد نظام التشغيل أنه نظرا لأنه تم إخبار نظام التشغيل بجدولة مؤشرات الترابط كما لو كانت وحدة المعالجة المركزية 8 الأساسية ، فإن هذا جعل إضافة دعم زيادة الترابط إلى أنظمة تشغيل أبسط بكثير.نظام التشغيل يحمل على إدارة المواضيع كما كان من قبل ، غافلين عن الكثير من الأعمال الداخلية من توازي ويسمح وحدة المعالجة المركزية إدارة جدولة مستوى منخفض من التجمع كما وعندما تصبح أجزاء من وحدة المعالجة المركزية المتاحة.
مناقشة أكثر تفصيلا ، مع معايير يمكن قراءتها هنا
نصائح أخرى
استخدم الأمر التالي
$ lscpu
الإخراج يمكن استخدامها لتحديد العدد الفعلي من النوى وإذا كان لديك توازي تمكين أم لا.
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 32
On-line CPU(s) list: 0-31
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 45
Stepping: 7
CPU MHz: 2399.995
BogoMIPS: 4799.35
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31
التوازي الفعلي الذي يمكن تحقيقه سيكون (لا.س (النوى في المقبس) س (المواضيع في النواة).لتحديد ما إذا كان المعالج الخاص بك مفرطا أم لا ، يمكنك استخدام مؤشرات الترابط لكل معلمة أساسية.