2010-10-22 10 views
11

के लिए असतत घटना सिमुलेटर, मैं वर्तमान में सी ++ के लिए लिखे गए एक अलग घटना सिम्युलेटर की तलाश में हूं। मुझे ओओ-स्टाइल में विशेष रूप से लिखे गए वेब पर बहुत कुछ नहीं मिला; कुछ हैं, लेकिन पुराना है। ओपनेट, ओमनेट और एनएस 3 जैसे कुछ अन्य लोग मुझे जो करना चाहते हैं उसके लिए बहुत जटिल हैं। और इसके अलावा, मुझे हजारों नोड्स की प्रणालियों को अनुकरण करने में सक्षम एजेंट-आधारित एल्गोरिदम अनुकरण करने की आवश्यकता है।सी ++

क्या कोई मेरी आवश्यकताओं के लिए उपयुक्त कुछ जानता है?

+0

यदि आप पाइथन के साथ सहज हैं, तो आप GarlicSim को आजमा सकते हैं, जो आपको एजेंट-आधारित सिमुलेशन करने देगा। (मैंने इसे हजारों लोगों के लिए कभी भी कोशिश नहीं की, लेकिन मुझे नहीं लगता कि इसमें कोई समस्या होगी।) –

उत्तर

0

GBL library पर एक नज़र डालें। यह आधुनिक सी ++ में लिखा गया है और यहां तक ​​कि सी ++ 0x फीचर्स जैसे कि सेमेन्टिक्स और लैम्ब्डा फ़ंक्शंस का समर्थन करता है। यह कई मॉडलिंग तंत्र प्रदान करता है: तुल्यकालिक और असीमित घटना हैंडलर, प्रीपेप्टिव थ्रेड, और फाइबर। आप पूरी तरह से व्यवहार, चक्र सटीक, और वास्तविक समय मॉडल, या उनमें से किसी भी मिश्रण बना सकते हैं।

+1

आत्म प्रचार? –

+1

स्वयं prmotions की अनुमति है अगर यह संदर्भ में फिट बैठता है (इसका उत्तर) –

1

सीएसआईएम Mesquite Software से है जो सी, सी ++ और जावा में विकासशील मॉडल का समर्थन करता है। हालांकि, यह भुगतान-वाणिज्यिक, AFAIK है।

3

दूसरों के पास अच्छे सीधा जवाब हैं, लेकिन मैं एक विकल्प का सुझाव देने जा रहा हूं। अगर मैं आपको सही समझता हूं, तो आप सी ++ में एक सिस्टम चाहते हैं या ऐसे में जहां आप भविष्य में आग लगने वाली घटनाओं को पोस्ट कर सकते हैं, और उन घटनाओं को आग लगने पर कोड चलाया जाता है।

मेरे पास ऐसा करने का एक प्रोजेक्ट था, और मैंने सी ++ में ऐसी घटना प्रणाली लिखने की कोशिश की और फिर जल्दी से एहसास हुआ कि मेरे पास एक बेहतर समाधान था।

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

+0

कृपया एक सरल डीईएस उदाहरण प्रदर्शन करने वाले वेरिलोग के उदाहरण के लिए एक लिंक पोस्ट करने पर विचार करें। धन्यवाद – gatorback

+0

@gatorback मुझे यकीन नहीं है कि मैंने कभी ऐसा किया है कि कोई और ऐसा करता है।मुझे यकीन है कि उनके पास है, लेकिन मुझे पता है कि एकमात्र उदाहरण मैंने उपरोक्त प्रोजेक्ट किया है, और मुझे नहीं पता कि मैंने यह कोड कहां रखा है। –

3

मैं ओमनेट ++ पर दूसरा नजर रखने की अनुशंसा करता हूं। पहली नजर में यह काफी जटिल लग सकता है, लेकिन यदि आप इसे अधिक विस्तार से देखते हैं तो आप पाएंगे कि अधिकांश जटिलता नेटवर्क ऐड-ऑन (आईएनईटी फ्रेमवर्क) में है। जब तक आप एक विस्तृत नेटवर्क सिमुलेशन करने जा रहे हैं, आपको आईएनईटी की आवश्यकता नहीं है।

ओमनेट ++ कोर का उपयोग करना विशेष रूप से कठिन नहीं है और यह अन्य समान उपकरणों से भी आसान हो सकता है।

आप http://www.arcos.inf.uc3m.es/~jdaniel/seminarios/omnet2/index.html

बातें OmNet करता है कि ++ मेरे लिए आकर्षक अपने scalability है में से एक पर एक परिचय (शायद थोड़ा पुराना) को देखने के लिए चाहते हो सकता है। डेस्कटॉप में बड़े सिमुलेशन चलाने के लिए संभव है। इसके अलावा, कोड को दोबारा लिखने के बिना क्लस्टर में एक ही सिमुलेशन को स्केल करना संभव है।

2

आपको SystemC पर विचार करना चाहिए, हालांकि मैं ओमनेट ++ पर एक दूसरा रूप लेने की भी सिफारिश करता हूं।

1

हम अपने स्कूल में SIMLIB का उपयोग करते हैं। यह बहुत तेज़, समझने में आसान है, वस्तु उन्मुख, अलग और निरंतर सिम्युलेटर है। यह पुराना लग सकता है लेकिन यह अभी भी बनाए रखा है।