2012-11-10 16 views
6

मैं रीयल-टाइम अनुप्रयोगों के लिए एक अल्गर्थिम लिखने वाला हूं, जिसमें कुछ उच्च आयामी एनएलपी (nonlinear प्रोग्रामिंग) शामिल हैं।मैटलैब फाइनकॉन और सी ++ के एनएलपी सॉल्वर के बीच प्रदर्शन अंतर क्या है ipopt?

इम्प्लांटेशन से पहले, मुझे यह देखने के लिए मेरे एल्गोरिदम को समय देने की आवश्यकता है कि क्या यह रीयल-टाइम अनुप्रयोगों के लिए व्यवहार्य है, इसलिए मैं मैटलैब के अंतर्निर्मित फ़ाइनकेन्स को बेसलाइन के रूप में उपयोग करता हूं।

अनुभव दिखाता है कि, मैटलैब एल्गोरिदम धीमी गति से उनके सी ++ समकक्षों की तुलना में धीमी गति से भिन्न होते हैं, इसलिए मैं अनुमान लगा सकता हूं कि इस विशेष मामले के साथ मैं किस तरह के प्रदर्शन लाभ की उम्मीद कर सकता हूं?

जैसा कि मेरा काम ज्यादातर वास्तविक समय के अनुप्रयोगों से संबंधित है, इस प्रकार मैं शायद ही कभी एनएलपी (nonlinear प्रोग्रामिंग) का उपयोग करता हूं, इसलिए मैंने अपने कार्यकर्ताओं से पूछा, वे मुझे शुरुआत के रूप में आईपॉप्ट करने की सलाह देते हैं, मैंने अपनी वेबसाइट पर गुमराह किया, कोई नहीं है Matlab के खिलाफ बेंचमार्क, न ही उनके एल्गोरिदम के विवरण के बारे में बहुत से विषय हैं (कम से कम Matlab में, उनके algorthims के विवरण की जांच करना मुश्किल नहीं है), इसलिए मुझे मूल रूप से सटीकता/मजबूती/इष्टतमता आदि के बारे में थोड़ा सा विचार नहीं है। इसके बारे में।

इसलिए एनएलपी के सी ++ प्रत्यारोपण के संबंध में यहां कोई मदद बहुत उपयोगी होगी, बहुत पहले धन्यवाद।

+1

खोज समस्याएं बहुत डोमेन-निर्भर हैं; एकमात्र निश्चित उत्तर जो आप प्राप्त करने जा रहे हैं, वास्तव में दोनों प्रणालियों में एक वास्तविक समस्या हल हो रही है जिसे आप सामना कर सकते हैं, और देख सकते हैं कि वे कैसे प्रदर्शन करते हैं। – Isaac

उत्तर

2

इनमें से कई प्रकार की समस्याएं बड़े ओ (एन^~ 3) मैट्रिक्स गुणाओं का प्रभुत्व है। यदि ऐसा है और दोनों सिस्टम समान प्रदर्शन के समान एल्गोरिदम का उपयोग कर रहे हैं तो प्रदर्शन समान होगा और भाषा पर निर्भर नहीं होगा, क्योंकि अंतर्निहित मैट्रिक्स गुणात्मक कार्य को वैसे भी मूल रूप से लागू किया जाएगा।

यदि एल्गोरिदम इस तरह के एक साधारण कार्य का प्रभुत्व नहीं है, और इसके बजाय सी ++ लाइब्रेरी की तुलना में बहुत मेमोरी प्रबंधन आवश्यक है (3-10 x तेज)।

(यदि प्रदर्शन कई लोगों की तुलना में महत्वपूर्ण है, तो जीपीयू को कृषि सामग्री के लिए ओपनसीएल का उपयोग कर रहे हैं जो इस प्रकार की संख्यात्मक गणना के लिए डिजाइन कर रहा है, और 20-100x रेंज में मूल्य/प्रदर्शन अंतर है। या आप इसे खेत कर सकते हैं यदि आपको तेज़ी से आवश्यकता हो तो क्लस्टर पर बंद करें।)

+0

कई हिस्सों में आपके साथ सहमत हैं, लेकिन मुझे संदेह है कि जीपीयू एक उदाहरण के रूप में एसक्यूपी का उपयोग करके किसी भी सुधार प्रदान कर सकता है, व्यावहारिक रूप से इस विधि में जीपीयू के बेहद खराब ब्रांचिंग पेफॉर्मेंस और बहुत कम कैश (जो मूल रूप से किसी भी लाभ को पूरी तरह से हटाएं जीपीयू मेमोरी बैंडविड्थ में सीपीयू से अधिक है), मुझे आश्चर्य होगा अगर जीपीयू का इम्प्लांटेशन उनके सीपीयू समकक्ष से काफी धीमा नहीं होगा। – user0002128

+0

सीपीयू पर जीपीयू का लाभ इसकी व्यापक समानांतर वास्तुकला है, जिसने प्रभावी रूप से हजारों प्रोसेसर कोरों को एक सीपीयू बनाम 10 या तो बना दिया है। बशर्ते आपकी समस्या डेटा समांतर संरचना (जिसे सभी नहीं कर सकते) में विभाजित किया जा सके, GPU परिमाण के क्रम (क्रम) से जीत जाएगा। http://www.youtube.com/watch?v=IEWGTpsFtt8 –