2011-09-15 20 views
6

बाद एमपीआई, जो मैं इसे एक कोर i7 सीपीयू (क्वाड-कोर) पर चलाया में मेरे कोड है, लेकिन समस्या यह है कि यह 1 प्रोसेसर सीपीयू, है जिसके तहत चल रहा है कि होने के लिए मुझे पता चलता है 4.एमपीआई प्रोसेसर की संख्या?

int main(int argc, char *argv[]) 
{ 
    int rank, size; 

    MPI_Init(&argc, &argv); 

    MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
    MPI_Comm_size(MPI_COMM_WORLD, &size); 

    printf("Hello world! I am %d of %d\n", rank, size); 

    MPI_Finalize(); 

    return 0; 
} 

मैं सोच रहा था कि समस्या एमपीआई लाइब्रेरी या अन्यथा के साथ है या नहीं?

यहाँ परिणाम है कि यह मुझे पता चलता है:

Hello world! I am 0 of 1 

अतिरिक्त जानकारी: विंडोज 7 - व्यावसायिक x64

+0

आप प्रोग्राम कैसे चला रहे हैं? –

+1

आप यह जोड़ना चाहते हैं कि आप कोड कैसे चला रहे हैं - आम तौर पर एमपीआई निष्पादन योग्य को 'mpirun -np 4 mympiexecutable' जैसे कमांड का उपयोग करके चलाने के लिए 4 प्रोसेसर पर चलाने के लिए, उदाहरण के लिए, लेकिन मैं वास्तव में नहीं विंडोज एमपीआई संस्करणों को जानें। – Aesin

उत्तर

9

प्रथम दृष्टया ऐसा लगता है कि आप इस कार्यक्रम सीधे चला रहे हैं। क्या आपने mpiexec -n 2 या -n 4 का उपयोग करने का प्रयास किया था?

+0

हां, मैंने ऐसा किया और यह ठीक काम करता है, लेकिन मैंने उस उदाहरण को उस पुस्तक से कॉपी किया जो कहा गया है कि उदाहरण के लिए आपके पास दोहरी कोर सीपीयू है, तो आपको परिणाम के लिए 2 मिलेंगे। तो यहां मेरे पास क्वाड कोर सीपीयू है इसलिए मुझे परिणाम में 4 प्राप्त करना चाहिए। – Gabriel

+0

यदि आप इसे एक एमपीआई रैपर का स्पष्ट रूप से उपयोग किए बिना चलाते हैं, तो यह एक कोर मानने के लिए चलाएगा। –

+0

क्या आप इसे और समझा सकते हैं? कैसे? – Gabriel

संबंधित मुद्दे