लिक्विड-पिन - क्लाउड में ऑनलाइन

यह कमांड लिक्विड-पिन है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


लिक्विड-पिन - एक अनुक्रमिक या थ्रेडेड एप्लिकेशन को समर्पित प्रोसेसर पर पिन करें

SYNOPSIS


लिक्विड-पिन [-वीएचक्यूपीएस] [-c ] [-s ] [-d ]

वर्णन


लिक्विड-पिन अनुक्रमिक या बहु-थ्रेडेड अनुप्रयोगों को पिन करने के लिए एक कमांड लाइन एप्लिकेशन है
समर्पित प्रोसेसर के लिए. इसका उपयोग प्रतिस्थापन के रूप में किया जा सकता है टास्कसेट(1). के विपरीत
टास्कसेट में कोई एफ़िनिटी मास्क नहीं है लेकिन एकल प्रोसेसर निर्दिष्ट हैं। मल्टीथ्रेडेड के लिए
pthread लाइब्रेरी पर आधारित अनुप्रयोग pthread_create लाइब्रेरी कॉल अतिभारित है
LD_PRELOAD के माध्यम से और प्रत्येक निर्मित थ्रेड को निर्दिष्ट अनुसार एक समर्पित प्रोसेसर पर पिन किया जाता है
in core_list

डिफ़ॉल्ट रूप से प्रत्येक जेनरेट किए गए थ्रेड को कॉल के क्रम में कोर पर पिन किया जाता है
pthread_create. -s कमांडलाइन विकल्प का उपयोग करके एकल थ्रेड को छोड़ना संभव है।

ओपनएमपी कार्यान्वयन के लिए जीसीसी और आईसीसी कंपाइलर स्पष्ट रूप से समर्थित हैं। अन्य भी हो सकते हैं
काम। लिक्विड-पिन यदि पहले से नहीं है तो आपके लिए पर्यावरण चर OMP_NUM_THREADS सेट करता है
उपस्थित। यह पिन एक्सप्रेशन में मौजूद उतने ही थ्रेड सेट करेगा। अवगत रहें कि
pthreads के साथ मूल थ्रेड को हमेशा पिन किया जाता है। यदि आप उदाहरण के लिए 4 धागे बनाते हैं
pthread_create और कार्यकर्ता के रूप में मूल प्रक्रिया का उपयोग न करें जिसे आपको अभी भी प्रदान करना है
num_threads+1 प्रोसेसर आईडी।

लिक्विड-पिन पिनिंग के लिए अलग-अलग नंबरिंग का समर्थन करता है। प्रति डिफ़ॉल्ट भौतिक क्रमांकन
कोर का उपयोग किया जाता है. यही नंबरिंग भी है तरल-टोपोलॉजी(1) रिपोर्ट. लेकिन
नोड या सॉकेट के अंदर तार्किक क्रमांकन का उपयोग किया जा सकता है। यदि एन के साथ उपयोग कर रहे हैं (जैसे -सी
एन:0-6) कोर पूरे नोड पर तार्किक रूप से क्रमांकित हैं। भौतिक कोर पहले आते हैं। अगर
एक सिस्टम में 8 एसएमटी थ्रेड्स के साथ 16 कोर होते हैं -सी एन:0-7 के साथ आपको सभी भौतिक कोर मिलते हैं।
यदि आप -c N:0-15 निर्दिष्ट करते हैं तो आपको सभी भौतिक कोर और सभी SMT थ्रेड मिलते हैं। एस के साथ आप कर सकते हैं
सॉकेट के अंदर तार्किक संख्या निर्दिष्ट करें, फिर से भौतिक कोर पहले आते हैं। आप मिश्रण कर सकते हैं
विभिन्न डोमेन @ से अलग हो गए। उदाहरण के लिए -c S0:0-3@S2:2-3 आप थ्रेड 0-3 को तार्किक पर पिन करते हैं
सॉकेट 0 पर कोर 3-0 और लॉजिकल कोर पर थ्रेड 4-5 सॉकेट 2 पर 3-2।

ऐसे अनुप्रयोगों के लिए जहां नुमा सिस्टम पर फर्स्ट टच नीति को नियोजित नहीं किया जा सकता है लिक्विड-पिन
इंटरलीव मेमोरी प्लेसमेंट को चालू करने के लिए इसका उपयोग किया जा सकता है। इससे काफी तेजी आ सकती है
मेमोरी बाउंड मल्टीथ्रेडेड कोड का प्रदर्शन। उपयोगकर्ता द्वारा थ्रेड को पिन किए गए सभी नुमा नोड्स
इंटरलीविंग के लिए उपयोग किया जाता है।

विकल्प


-v संस्करण जानकारी को मानक आउटपुट पर प्रिंट करता है, फिर बाहर निकलता है।

-h मानक आउटपुट के लिए एक सहायता संदेश प्रिंट करता है, फिर बाहर निकलता है।

-c OR OR <तितर बितर नीति>
प्रोसेसर की एक संख्यात्मक सूची निर्दिष्ट करें। सूची में अनेक आइटम हो सकते हैं,
अल्पविराम और श्रेणियों द्वारा अलग किया गया। उदाहरण के लिए 0,3,9-11. आप तार्किक का भी उपयोग कर सकते हैं
नंबरिंग, या तो एक नोड (एन), एक सॉकेट (एस) के भीतर ) या एक नुमा डोमेन (एम ).
लिक्विड-पिन एल उपसर्ग के साथ सीपीयूसेट के भीतर तार्किक पिनिंग का भी समर्थन करता है। अगर आप
इस विकल्प को छोड़ दें लिक्विड-पिन थ्रेड को नोड पर प्रोसेसर पर पिन कर देगा
पहले भौतिक कोर के साथ। थ्रेड एक्सप्रेशन का उपयोग करने के विवरण के लिए नीचे देखें
बिखराव नीति

-s
स्किप मास्क को HEX नंबर के रूप में निर्दिष्ट करें। प्रत्येक सेट बिट के लिए संबंधित थ्रेड है
छोड़ दिया

-S निर्दिष्ट थ्रेडलिस्ट से संबंधित सभी ccNUMA मेमोरी डोमेन साफ़ कर दिए जाएंगे
दौड़ने से पहले. Linux पर फ़ाइल बफ़र कैश समस्याओं को हल कर सकता है।

-p तार्किक पिनिंग के लिए उपलब्ध थ्रेड डोमेन प्रिंट करता है। यदि संयोजन में उपयोग किया जाए
-c के साथ, भौतिक प्रोसेसर आईडी को stdout पर मुद्रित किया जाता है।

-i पिनिंग में शामिल सभी नुमा नोड्स को इंटरलीव करने के लिए नुमा मेमोरी नीति सेट करें

-q आउटपुट के बिना मौन निष्पादन

-d
भौतिक प्रोसेसर सूची को आउटपुट करने के लिए सेट डिलीमीटर का उपयोग किया जाता है (-पी और -सी)

उदाहरण


1. मानक पाथ्रेड अनुप्रयोग के लिए:

लिक्विड-पिन -c 0,2,4-6 ./myApp

मूल प्रक्रिया को प्रोसेसर 0 पर पिन किया गया है। थ्रेड 0 को प्रोसेसर 2, थ्रेड 1 को
प्रोसेसर 4, थ्रेड 2 से प्रोसेसर 5 और थ्रेड 3 से प्रोसेसर 6। यदि अधिक थ्रेड हैं
प्रोसेसर सूची में निर्दिष्ट से निर्मित, इन थ्रेड्स को प्रोसेसर 0 पर पिन किया गया है
मैदान छोड़ना।

2. जीसीसी ओपनएमपी के लिए प्रोसेसर सूची में उतने ही आईडी निर्दिष्ट किए जाने चाहिए जितने थ्रेड हैं:

OMP_NUM_THREADS=4; लिक्विड-पिन -c 0,2,1,3 ./myApp

3. स्किप मास्क निर्दिष्ट करके पिनिंग पर पूर्ण नियंत्रण प्राप्त किया जा सकता है। उदाहरण के लिए
निम्न आदेश थ्रेड 1 की पिनिंग को छोड़ देता है:

OMP_NUM_THREADS=4; लिक्विड-पिन -s 0x1 -c 0,2,1,3 ./myApp

4. -सी स्विच एक विशिष्ट एफ़िनिटी डोमेन जैसे थ्रेड की परिभाषा का समर्थन करता है
NUMA नोड या कैश समूह. उपलब्ध एफ़िनिटी डोमेन को -p के साथ पुनः प्राप्त किया जा सकता है
स्विच करें और कमांडलाइन पर कोई और विकल्प नहीं है। सामान्य एफ़िनिटी डोमेन N हैं
(संपूर्ण नोड), एसएक्स (सॉकेट एक्स), सीएक्स (कैश ग्रुप एक्स) और एमएक्स (मेमोरी ग्रुप एक्स)। विभिन्न
एफ़िनिटी डोमेन को @ द्वारा अलग करके सेट किया जा सकता है। प्रत्येक सॉकेट पर 2 धागे पिन करने के लिए
2-सॉकेट प्रणाली का:

OMP_NUM_THREADS=4; लिक्विड-पिन -c S0:0-1@S1:0-1 ./myApp

5. -सी स्विच की एक अन्य तर्क परिभाषा थ्रेड को तदनुसार पिन करने की अनुमति देती है
E:N:4:1:2 जैसी अभिव्यक्ति के लिए। वाक्यविन्यास ई है: :
धागे>(: : ). उदाहरण में 8 धागों को 2 एसएमटी धागों के साथ पिन किया गया है
SMT 4 मशीन पर कोर:

OMP_NUM_THREADS=4; लिक्विड-पिन -c ई:एन:8:2:4 ./myApp

6. -सी स्विच के लिए अंतिम विकल्प धागों का स्वचालित बिखराव है
एफ़िनिटी डोमेन. उदाहरण के लिए सभी मेमोरी डोमेन पर थ्रेड्स को बिखेरना
सिस्टम:

OMP_NUM_THREADS=4; लिक्विड-पिन -c एम:तितर बितर ./myApp

onworks.net सेवाओं का उपयोग करके ऑनलाइन लाइकविड-पिन का उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम