2011-08-16 5 views
8

क्या कोई उपकरण है जो सी या सी ++ में लिखे गए अनुप्रयोगों के लिए False Sharing का पता लगाता है और रिपोर्ट करता है?सी/सी ++ अनुप्रयोग में झूठी साझाकरण का पता लगाने के लिए उपकरण

+0

जबकि _false_ नहीं दिखा रहा सीधे साझा करने, इंटेल vtunes कम से कम कुछ CPUs पर साझा करने का पता लगा सकते हैं, लेकिन यह पैसे की लागत और कठिन है परिणाम की व्याख्या करने के लिए। – PlasmaHH

+0

इंटेल उत्पादों का व्यक्तिगत उपयोग लाइसेंस है। – JohnTortugo

उत्तर

2

शेरिफ और शिकारी का प्रयास करें। शेरिफ https://github.com/plasma-umass/sheriff पर है, जबकि शिकारी https://github.com/plasma-umass/Predator पर है। शिकारी एक कंपाइलर-आधारित दृष्टिकोण है जिसे आपको एक नए एलएलवीएम कंपाइलर का उपयोग करके अपने प्रोग्राम को पुन: संकलित करना होगा। यह अब तक का सबसे संपूर्ण पहचान उपकरण है। शेरिफ लाइब्रेरी है लेकिन यदि आप pthreads लाइब्रेरी का उपयोग कर रहे हैं तो यह केवल झूठी साझाकरण का पता लगा सकता है।

4

वाल्ग्रिंड के DRD (डेटा रेस डिटेक्शन) मॉड्यूल का प्रयास करें।

मैनुअल से ऐसा लगता है कि इसका उपयोग गलत साझाकरण का पता लगाने के लिए किया जा सकता है।

+3

दुर्भाग्यवश, डीआरडी को झूठी साझाकरण के सबसे सरल मामलों में भी कुछ पता नहीं लगाया गया है, जैसे कि http://en.wikipedia.org/wiki/False_sharing – gui11aume

+2

पर वर्णित है, वास्तव में, मैन्युअल में कोई दावा नहीं है कि डीआरडी सक्षम है झूठी साझाकरण का पता लगाएं –

0

Perf ("लिनक्स के लिए प्रदर्शन काउंटर")

आदेश:

sudo perf record -e cache-misses,anything_else_you_want ./your_program 
sudo perf report 
संबंधित मुद्दे