2013-01-24 33 views
5
#include <mpi.h> 
double f() { 
    double timer = MPI_Wtime(); 
    return timer; 
} 

जो मैं खोज रहा हूं वह नकली एमपीआई कार्यों का कुछ सेट है, इसलिए मैं mpi.h के बजाय #include <mpi_mocks.h> कर सकता हूं और इसे MPI लाइब्रेरी से लिंक किए बिना संकलित कर सकता हूं। यह #define MOCK जैसा कुछ भी हो सकता है जो इस व्यवहार को mpi.h में ट्रिगर करेगा।एक सी/सी ++ कोड का परीक्षण कैसे कर सकता है जो एमपीआई कॉल का उपयोग करता है: क्या नकली कार्यों का कोई सेट है, जिसका मैं उपयोग कर सकता हूं?

उत्तर

1

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

+0

आपका मतलब क्या है "#inlcude और किया जाना"? मुझे इसे एक लाइब्रेरी से लिंक करना होगा, जिसमें MPI_Wtime का कार्यान्वयन हो और यह ऐसा कुछ है जिसे मैं टालने की कोशिश कर रहा हूं (जैसा कि प्रश्न में उल्लिखित है)। क्या मुझे कुछ याद आती है? –

+0

मैं मानता हूं कि कम से कम MPI_Wtime के लिए यह एक बड़ा सौदा नहीं है, लेकिन फिर मुझे कुछ और चाहिए, और फिर कुछ और, और फिर आपके पास अभी तक एक और पुनर्निर्मित पहिया है। –

+0

"शामिल करें और किया जाना" के साथ मेरा मतलब है कि वहां कोई 'mpi_mocks.h' नहीं है जो एमपीआई के लिए हेडर-केवल मॉकिंग लाइब्रेरी है। कम से कम मुझे संदेह है कि एक है, अन्य चीजें आम हैं क्योंकि आम तौर पर आप मॉकिंग फ्रेमवर्क की शैली में ऐसे मोजे रखना चाहते हैं, और उनके पास अलग-अलग एपीआई हैं (जैसे Google mocks, कछुए mocks आदि)। ऐसी चीज करने के लिए मैं पहली बार कल्पना कर सकता हूं कि # खाली खाली mpi_mocks.h शामिल करें, कंपाइलर चलाएं, अज्ञात एमपीआई_ कुछ कार्यों के बारे में अपनी सभी शिकायतों को इकट्ठा करें और सभी आवश्यक कार्यों के साथ mpi_mocks.h उत्पन्न करने के लिए कुछ स्क्रिप्टिंग भाषा का उपयोग करें। –